blob: 1cf22aec74bd4cda509308d930712a2d2883695f [file] [log] [blame]
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +03001# -*- coding: utf-8 -*-
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +03002# Licensed under the Apache License, Version 2.0 (the "License"); you may
3# not use this file except in compliance with the License. You may obtain
4# a copy of the License at
5#
6# http://www.apache.org/licenses/LICENSE-2.0
7#
8# Unless required by applicable law or agreed to in writing, software
9# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11# License for the specific language governing permissions and limitations
12# under the License.
13
Masayuki Igawabfa07602015-01-20 18:47:17 +090014from tempest_lib import exceptions as lib_exc
15
Adam Gandelman2a86f1c2014-06-18 11:34:42 -070016from tempest.api.baremetal.admin import base
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030017from tempest.common.utils import data_utils
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030018from tempest import test
19
20
21class TestChassis(base.BaseBaremetalTest):
22 """Tests for chassis."""
23
Mh Raiesa9bb79d2014-04-17 16:20:17 +053024 @classmethod
Andrea Frittoliba240c32014-09-15 13:14:53 +010025 def resource_setup(cls):
26 super(TestChassis, cls).resource_setup()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053027 _, cls.chassis = cls.create_chassis()
28
29 def _assertExpected(self, expected, actual):
30 # Check if not expected keys/values exists in actual response body
31 for key, value in expected.iteritems():
32 if key not in ('created_at', 'updated_at'):
33 self.assertIn(key, actual)
34 self.assertEqual(value, actual[key])
35
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030036 @test.attr(type='smoke')
37 def test_create_chassis(self):
38 descr = data_utils.rand_name('test-chassis-')
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000039 _, chassis = self.create_chassis(description=descr)
Mh Raiesa9bb79d2014-04-17 16:20:17 +053040 self.assertEqual(chassis['description'], descr)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030041
42 @test.attr(type='smoke')
43 def test_create_chassis_unicode_description(self):
44 # Use a unicode string for testing:
45 # 'We ♡ OpenStack in Ukraine'
46 descr = u'В Україні ♡ OpenStack!'
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000047 _, chassis = self.create_chassis(description=descr)
Mh Raiesa9bb79d2014-04-17 16:20:17 +053048 self.assertEqual(chassis['description'], descr)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030049
50 @test.attr(type='smoke')
51 def test_show_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000052 _, chassis = self.client.show_chassis(self.chassis['uuid'])
Mh Raiesa9bb79d2014-04-17 16:20:17 +053053 self._assertExpected(self.chassis, chassis)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030054
55 @test.attr(type="smoke")
56 def test_list_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000057 _, body = self.client.list_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053058 self.assertIn(self.chassis['uuid'],
59 [i['uuid'] for i in body['chassis']])
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030060
61 @test.attr(type='smoke')
62 def test_delete_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000063 _, body = self.create_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053064 uuid = body['uuid']
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030065
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000066 self.delete_chassis(uuid)
Masayuki Igawabfa07602015-01-20 18:47:17 +090067 self.assertRaises(lib_exc.NotFound, self.client.show_chassis, uuid)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030068
69 @test.attr(type='smoke')
70 def test_update_chassis(self):
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000071 _, body = self.create_chassis()
Mh Raiesa9bb79d2014-04-17 16:20:17 +053072 uuid = body['uuid']
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030073
74 new_description = data_utils.rand_name('new-description-')
Swapnil Kulkarniaa57d6e2014-08-19 10:40:35 +000075 _, body = (self.client.update_chassis(uuid,
76 description=new_description))
77 _, chassis = self.client.show_chassis(uuid)
Roman Prykhodchenko62b1ed12013-10-16 21:51:47 +030078 self.assertEqual(chassis['description'], new_description)
Adam Gandelman00682612014-09-02 17:10:36 -070079
80 @test.attr(type='smoke')
81 def test_chassis_node_list(self):
82 _, node = self.create_node(self.chassis['uuid'])
83 _, body = self.client.list_chassis_nodes(self.chassis['uuid'])
84 self.assertIn(node['uuid'], [n['uuid'] for n in body['nodes']])