+
+ def _test_0030_wait_test_servers_to_build(self):
+ """Pseudo-test to wait for VMs to load"""
+ from sys import stdout
+ stdout.write('')
+ stdout.flush()
+ self._wait_for_status(self.server1['id'], 'BUILD')
+ self._wait_for_status(self.server2['id'], 'BUILD')
+
+ def test_get_server_details(self):
+ """Test get_server_details"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._wait_for_status(self.server1['id'], 'BUILD')
+ self._test_0040_get_server_details()
+
+ def _test_0040_get_server_details(self):
+ r = self.client.get_server_details(self.server1['id'])
+ self.assertEqual(r["name"], self.servname1)
+ self.assertEqual(r["flavorRef"], self.flavorid)
+ self.assertEqual(r["imageRef"], self.img)
+ self.assertEqual(r["status"], "ACTIVE")
+
+ def test_update_server_name(self):
+ """Test update_server_name"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._test_0050_update_server_name()
+
+ def _test_0050_update_server_name(self):
+ new_name = self.servname1 + '_new_name'
+ self.client.update_server_name(self.server1['id'], new_name)
+ r = self.client.get_server_details(self.server1['id'],
+ success=(200, 400))
+ self.assertEqual(r['name'], new_name)
+ changed = self.servers.pop(self.servname1)
+ changed['name'] = new_name
+ self.servers[new_name] = changed
+
+ def test_reboot_server(self):
+ """Test reboot server"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._wait_for_status(self.server1['id'], 'BUILD')
+ self.server2 = self._create_server(self.servname2,
+ self.flavorid + 1,
+ self.img)
+ self._wait_for_status(self.server2['id'], 'BUILD')
+ self._test_0060_reboot_server()
+ self._wait_for_status(self.server1['id'], 'REBOOT')
+ self._wait_for_status(self.server2['id'], 'REBOOT')
+
+ def _test_0060_reboot_server(self):
+ self.client.reboot_server(self.server1['id'])
+ self.assertTrue(self._has_status(self.server1['id'], 'REBOOT'))
+ self.client.reboot_server(self.server2['id'], hard=True)
+ self.assertTrue(self._has_status(self.server2['id'], 'REBOOT'))
+
+ def _test_0070_wait_test_servers_to_reboot(self):
+ """Pseudo-test to wait for VMs to load"""
+ from sys import stdout
+ stdout.write('')
+ stdout.flush()
+ self._wait_for_status(self.server1['id'], 'REBOOT')
+ self._wait_for_status(self.server2['id'], 'REBOOT')
+
+ def test_create_server_metadata(self):
+ """Test create_server_metadata"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._test_0080_create_server_metadata()
+
+ def _test_0080_create_server_metadata(self):
+ r1 = self.client.create_server_metadata(self.server1['id'],
+ 'mymeta',
+ 'mymeta val')
+ self.assertTrue('mymeta' in r1)
+ r2 = self.client.get_server_metadata(self.server1['id'], 'mymeta')
+ self.assert_dicts_are_deeply_equal(r1, r2)
+
+ def test_get_server_metadata(self):
+ """Test get server_metadata"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._test_0090_get_server_metadata()
+
+ def _test_0090_get_server_metadata(self):
+ self.client.create_server_metadata(self.server1['id'],
+ 'mymeta_0',
+ 'val_0')
+ r = self.client.get_server_metadata(self.server1['id'], 'mymeta_0')
+ self.assertEqual(r['mymeta_0'], 'val_0')
+
+ def test_update_server_metadata(self):
+ """Test update_server_metadata"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._test_0100_update_server_metadata()
+
+ def _test_0100_update_server_metadata(self):
+ r1 = self.client.create_server_metadata(self.server1['id'],
+ 'mymeta3',
+ 'val2')
+ self.assertTrue('mymeta3'in r1)
+ r2 = self.client.update_server_metadata(self.server1['id'],
+ mymeta3='val3')
+ self.assertTrue(r2['mymeta3'], 'val3')
+
+ def test_delete_server_metadata(self):
+ """Test delete_server_metadata"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._test_0110_delete_server_metadata()
+
+ def _test_0110_delete_server_metadata(self):
+ r1 = self.client.create_server_metadata(self.server1['id'],
+ 'mymeta',
+ 'val')
+ self.assertTrue('mymeta' in r1)
+ self.client.delete_server_metadata(self.server1['id'], 'mymeta')
+ try:
+ self.client.get_server_metadata(self.server1['id'], 'mymeta')
+ raise ClientError('Wrong Error', status=100)
+ except ClientError as err:
+ self.assertEqual(err.status, 404)
+
+ def test_list_flavors(self):
+ """Test flavors_get"""
+ self._test_0120_list_flavors()
+
+ def _test_0120_list_flavors(self):
+ r = self.client.list_flavors()
+ self.assertTrue(len(r) > 1)
+ r = self.client.list_flavors(detail=True)
+ self.assertTrue('SNF:disk_template' in r[0])
+
+ def test_get_flavor_details(self):
+ """Test test_get_flavor_details"""
+ self._test_0130_get_flavor_details()
+
+ def _test_0130_get_flavor_details(self):
+ r = self.client.get_flavor_details(self.flavorid)
+ self.assert_dicts_are_deeply_equal(self._flavor_details, r)
+
+ def test_list_images(self):
+ """Test list_images"""
+ self._test_0140_list_images()
+
+ def _test_0140_list_images(self):
+ r = self.client.list_images()
+ self.assertTrue(len(r) > 1)
+ r = self.client.list_images(detail=True)
+ for detailed_img in r:
+ if detailed_img['id'] == self.img:
+ break
+ self.assert_dicts_are_deeply_equal(detailed_img, self.img_details)
+
+ def test_get_image_details(self):
+ """Test image_details"""
+ self._test_0150_get_image_details()
+
+ def _test_0150_get_image_details(self):
+ r = self.client.get_image_details(self.img)
+ r.pop('updated')
+ self.assert_dicts_are_deeply_equal(r, self.img_details)
+
+ def test_get_image_metadata(self):
+ """Test get_image_metadata"""
+ self._test_0160_get_image_metadata()
+
+ def _test_0160_get_image_metadata(self):
+ r = self.client.get_image_metadata(self.img)
+ self.assert_dicts_are_deeply_equal(
+ self.img_details['metadata']['values'], r)
+ for key, val in self.img_details['metadata']['values'].items():
+ r = self.client.get_image_metadata(self.img, key)
+ self.assertEqual(r[key], val)
+
+ def test_shutdown_server(self):
+ """Test shutdown_server"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._wait_for_status(self.server1['id'], 'BUILD')
+ self._test_0170_shutdown_server()
+
+ def _test_0170_shutdown_server(self):
+ self.client.shutdown_server(self.server1['id'])
+ self._wait_for_status(self.server1['id'], 'ACTIVE')
+ r = self.client.get_server_details(self.server1['id'])
+ self.assertEqual(r['status'], 'STOPPED')
+
+ def test_start_server(self):
+ """Test start_server"""
+ self.server1 = self._create_server(self.servname1,
+ self.flavorid,
+ self.img)
+ self._wait_for_status(self.server1['id'], 'BUILD')
+ self.client.shutdown_server(self.server1['id'])
+ self._wait_for_status(self.server1['id'], 'ACTIVE')
+ self._test_0180_start_server()
+
+ def _test_0180_start_server(self):
+ self.client.start_server(self.server1['id'])
+ self._wait_for_status(self.server1['id'], 'STOPPED')
+ r = self.client.get_server_details(self.server1['id'])
+ self.assertEqual(r['status'], 'ACTIVE')