|  |  |  | @@ -171,36 +171,38 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_create_instance_with_img_ref_associates_config_drive(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure create associates a config drive.""" | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance(params={'config_drive': '1234', }) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance( | 
		
	
		
			
				|  |  |  |  |                         params={'config_drive': '1234', }) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         try: | 
		
	
		
			
				|  |  |  |  |             self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |             self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |             instances = db.instance_get_all(context.get_admin_context()) | 
		
	
		
			
				|  |  |  |  |             instance = instances[0] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             self.assertTrue(instance.config_drive) | 
		
	
		
			
				|  |  |  |  |         finally: | 
		
	
		
			
				|  |  |  |  |             db.instance_destroy(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |             db.instance_destroy(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_create_instance_associates_config_drive(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure create associates a config drive.""" | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance(params={'config_drive': True, }) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance( | 
		
	
		
			
				|  |  |  |  |                         params={'config_drive': '1234', }) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         try: | 
		
	
		
			
				|  |  |  |  |             self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |             self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |             instances = db.instance_get_all(context.get_admin_context()) | 
		
	
		
			
				|  |  |  |  |             instance = instances[0] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |             self.assertTrue(instance.config_drive) | 
		
	
		
			
				|  |  |  |  |         finally: | 
		
	
		
			
				|  |  |  |  |             db.instance_destroy(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |             db.instance_destroy(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_run_terminate(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure it is possible to  run and terminate instance""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instances = db.instance_get_all(context.get_admin_context()) | 
		
	
		
			
				|  |  |  |  |         LOG.info(_("Running instances: %s"), instances) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -219,7 +221,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['launched_at'], None) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['deleted_at'], None) | 
		
	
		
			
				|  |  |  |  |         launch = utils.utcnow() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assert_(instance['launched_at'] > launch) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['deleted_at'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -235,7 +237,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.stop_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -244,7 +246,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.stop_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.start_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -269,7 +271,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.rescue_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['rescued']) | 
		
	
		
			
				|  |  |  |  |         self.compute.unrescue_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -290,7 +292,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.power_on_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['power_on']) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -309,7 +311,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.power_off_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['power_off']) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -319,7 +321,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.pause_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.unpause_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -329,7 +331,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.suspend_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.resume_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -339,7 +341,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.rebuild_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -349,7 +351,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, instance_id, | 
		
	
		
			
				|  |  |  |  |                            {'task_state': task_states.REBOOTING}) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -368,7 +370,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, instance_id, | 
		
	
		
			
				|  |  |  |  |                            {'task_state': task_states.REBOOTING_HARD}) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -386,7 +388,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, instance_id, | 
		
	
		
			
				|  |  |  |  |                            {'task_state': task_states.UPDATING_PASSWORD}) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -415,7 +417,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |                        fake_driver_inject_file) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute.inject_file(self.context, instance['uuid'], "/tmp/test", | 
		
	
		
			
				|  |  |  |  |                 "File Contents") | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['inject']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -434,7 +436,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.inject_network_info(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['inject']) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -452,7 +454,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.reset_network(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['reset']) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -470,7 +472,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |                        fake_driver_agent_update) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute.agent_update(self.context, instance['uuid'], | 
		
	
		
			
				|  |  |  |  |                                   'http://fake/url/', 'fakehash') | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(called['agent_update']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -482,14 +484,14 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         name = "myfakesnapshot" | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.compute.snapshot_instance(self.context, instance_uuid, name) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_console_output(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure we can get console output from instance""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         console = self.compute.get_console_output(self.context, | 
		
	
		
			
				|  |  |  |  |                                                   instance['uuid']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -499,7 +501,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_ajax_console(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure we can get console output from instance""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         console = self.compute.get_ajax_console(self.context, | 
		
	
		
			
				|  |  |  |  |                                                 instance['uuid']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -509,7 +511,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_vnc_console(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure we can a vnc console for an instance.""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         console = self.compute.get_vnc_console(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.assert_(console) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -518,7 +520,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_diagnostics(self): | 
		
	
		
			
				|  |  |  |  |         """Make sure we can get diagnostics for an instance.""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         diagnostics = self.compute.get_diagnostics(self.context, | 
		
	
		
			
				|  |  |  |  |                                                    instance['uuid']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -569,8 +571,9 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_run_instance_usage_notification(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure run instance generates apropriate usage notification""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         inst_ref = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = inst_ref['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.assertEquals(len(test_notifier.NOTIFICATIONS), 1) | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         msg = test_notifier.NOTIFICATIONS[0] | 
		
	
	
		
			
				
					
					|  |  |  | @@ -596,7 +599,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         """Ensure terminate_instance generates apropriate usage notification""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |         test_notifier.NOTIFICATIONS = [] | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -624,17 +627,18 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_run_instance_existing(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure failure when running an instance that already exists""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(exception.Error, | 
		
	
		
			
				|  |  |  |  |                           self.compute.run_instance, | 
		
	
		
			
				|  |  |  |  |                           self.context, | 
		
	
		
			
				|  |  |  |  |                           instance_id) | 
		
	
		
			
				|  |  |  |  |                           instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_instance_set_to_error_on_uncaught_exception(self): | 
		
	
		
			
				|  |  |  |  |         """Test that instance is set to error state when exception is raised""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.mox.StubOutWithMock(self.compute.network_api, | 
		
	
		
			
				|  |  |  |  |                                  "allocate_for_instance") | 
		
	
	
		
			
				
					
					|  |  |  | @@ -651,7 +655,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(quantum_client.QuantumServerException, | 
		
	
		
			
				|  |  |  |  |                           self.compute.run_instance, | 
		
	
		
			
				|  |  |  |  |                           self.context, | 
		
	
		
			
				|  |  |  |  |                           instance_id) | 
		
	
		
			
				|  |  |  |  |                           instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context.get_admin_context(), instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(vm_states.ERROR, instance['vm_state']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -660,8 +664,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_network_is_deallocated_on_spawn_failure(self): | 
		
	
		
			
				|  |  |  |  |         """When a spawn fails the network must be deallocated""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.mox.StubOutWithMock(self.compute, "_setup_block_device_mapping") | 
		
	
		
			
				|  |  |  |  |         self.compute._setup_block_device_mapping(mox.IgnoreArg(), | 
		
	
	
		
			
				
					
					|  |  |  | @@ -673,7 +676,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(rpc.common.RemoteError, | 
		
	
		
			
				|  |  |  |  |                           self.compute.run_instance, | 
		
	
		
			
				|  |  |  |  |                           self.context, | 
		
	
		
			
				|  |  |  |  |                           instance_id) | 
		
	
		
			
				|  |  |  |  |                           instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -682,7 +685,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         non_admin_context = context.RequestContext(None, None, False, False) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -730,7 +733,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |         test_notifier.NOTIFICATIONS = [] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, instance_id, {'host': 'foo'}) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -763,7 +766,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, inst_ref['uuid'], | 
		
	
		
			
				|  |  |  |  |                            {'host': 'foo'}) | 
		
	
		
			
				|  |  |  |  |         self.compute.prep_resize(context, inst_ref['uuid'], 1) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -776,7 +779,9 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_finish_revert_resize(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure that the flavor is reverted to the original on revert""" | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         def fake(*args, **kwargs): | 
		
	
		
			
				|  |  |  |  |             pass | 
		
	
	
		
			
				
					
					|  |  |  | @@ -785,7 +790,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.stubs.Set(self.compute.driver, 'finish_revert_migration', fake) | 
		
	
		
			
				|  |  |  |  |         self.stubs.Set(self.compute.network_api, 'get_instance_nw_info', fake) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         # Confirm the instance size before the resize starts | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(context, instance_id) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -833,12 +838,12 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_resize_same_source_fails(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance fails to migrate when source and destination are | 
		
	
		
			
				|  |  |  |  |         the same host""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(exception.Error, self.compute.prep_resize, | 
		
	
		
			
				|  |  |  |  |                 self.context, inst_ref['uuid'], 1) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |                 self.context, instance['uuid'], 1) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_resize_instance_handles_migration_error(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure vm_state is ERROR when MigrationError occurs""" | 
		
	
	
		
			
				
					
					|  |  |  | @@ -852,7 +857,7 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, inst_ref['uuid']) | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, inst_ref['uuid'], {'host': 'foo'}) | 
		
	
		
			
				|  |  |  |  |         self.compute.prep_resize(context, inst_ref['uuid'], 1) | 
		
	
		
			
				|  |  |  |  |         migration_ref = db.migration_get_by_instance_and_status(context, | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1028,9 +1033,9 @@ class ComputeTestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.stubs.Set(compute_manager.ComputeManager, | 
		
	
		
			
				|  |  |  |  |                 '_report_driver_status', nop_report_driver_status) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instances = db.instance_get_all(context.get_admin_context()) | 
		
	
		
			
				|  |  |  |  |         LOG.info(_("Running instances: %s"), instances) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1225,10 +1230,10 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_start(self): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.stop_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute.stop_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1241,8 +1246,10 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         db.instance_destroy(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_stop(self): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1255,8 +1262,10 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         db.instance_destroy(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_delete(self): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1269,8 +1278,9 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         db.instance_destroy(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_delete_soft(self): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1284,8 +1294,9 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_force_delete(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be deleted after a soft delete""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.soft_delete(self.context, instance) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1303,7 +1314,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1318,7 +1329,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be resumed""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1333,7 +1344,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be paused""" | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1349,7 +1360,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1364,8 +1375,10 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_restore(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be restored from a soft delete""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.soft_delete(self.context, instance) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1383,7 +1396,8 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |     def test_rebuild(self): | 
		
	
		
			
				|  |  |  |  |         inst_ref = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = inst_ref['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance_uuid = inst_ref['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1401,7 +1415,8 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be soft rebooted""" | 
		
	
		
			
				|  |  |  |  |         inst_ref = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = inst_ref['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance_uuid = inst_ref['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(inst_ref['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1418,7 +1433,8 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can be hard rebooted""" | 
		
	
		
			
				|  |  |  |  |         inst_ref = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = inst_ref['id'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance_uuid = inst_ref['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(inst_ref['task_state'], None) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1443,8 +1459,10 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_set_admin_password(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure instance can have its admin password set""" | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         inst_ref = db.instance_get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(inst_ref['vm_state'], vm_states.ACTIVE) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1462,7 +1480,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         instance_id = instance['id'] | 
		
	
		
			
				|  |  |  |  |         instance_uuid = instance['uuid'] | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get_by_uuid(self.context, instance_uuid) | 
		
	
		
			
				|  |  |  |  |         self.assertEqual(instance['vm_state'], vm_states.ACTIVE) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1536,7 +1554,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.resize(context, instance, '4') | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         # create a fake migration record (manager does this) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1552,7 +1570,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute_api.resize(context, instance, '4') | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1569,7 +1587,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(exception.NotFound, self.compute_api.resize, | 
		
	
		
			
				|  |  |  |  |                 context, instance, 200) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1578,10 +1596,11 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_resize_down_fails(self): | 
		
	
		
			
				|  |  |  |  |         """Ensure resizing down raises and fails""" | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         inst_type = instance_types.get_instance_type_by_name('m1.xlarge') | 
		
	
		
			
				|  |  |  |  |         db.instance_update(self.context, instance_id, | 
		
	
		
			
				|  |  |  |  |                 {'instance_type_id': inst_type['id']}) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1598,7 +1617,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |         self.assertRaises(exception.CannotResizeToSameSize, | 
		
	
		
			
				|  |  |  |  |                           self.compute_api.resize, context, instance, 1) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1609,7 +1628,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         # Migrate simply calls resize() without a flavor_id. | 
		
	
		
			
				|  |  |  |  |         self.compute_api.resize(context, instance, None) | 
		
	
		
			
				|  |  |  |  |         self.compute.terminate_instance(context, instance['uuid']) | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1626,7 +1645,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance(dict(host='host2')) | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         try: | 
		
	
		
			
				|  |  |  |  |             self.compute_api.resize(context, instance, None) | 
		
	
		
			
				|  |  |  |  |         finally: | 
		
	
	
		
			
				
					
					|  |  |  | @@ -1645,7 +1664,7 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         context = self.context.elevated() | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance(dict(host='host2')) | 
		
	
		
			
				|  |  |  |  |         instance = db.instance_get(context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         try: | 
		
	
		
			
				|  |  |  |  |             self.compute_api.resize(context, instance, None) | 
		
	
		
			
				|  |  |  |  |         finally: | 
		
	
	
		
			
				
					
					|  |  |  | @@ -2303,14 +2322,14 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_inject_network_info(self): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         instance = self.compute_api.get(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.inject_network_info(self.context, instance) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.delete(self.context, instance) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_reset_network(self): | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         instance = self.compute_api.get(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         self.compute_api.reset_network(self.context, instance) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
	
		
			
				
					
					|  |  |  | @@ -2331,9 +2350,9 @@ class ComputeAPITestCase(BaseTestCase): | 
		
	
		
			
				|  |  |  |  |         self.assertTrue(self.compute_api.get_lock(self.context, instance)) | 
		
	
		
			
				|  |  |  |  |  | 
		
	
		
			
				|  |  |  |  |     def test_add_remove_security_group(self): | 
		
	
		
			
				|  |  |  |  |         instance_id = self._create_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self.compute_api.get(self.context, instance_id) | 
		
	
		
			
				|  |  |  |  |         instance = self._create_fake_instance() | 
		
	
		
			
				|  |  |  |  |         self.compute.run_instance(self.context, instance['uuid']) | 
		
	
		
			
				|  |  |  |  |         instance = self.compute_api.get(self.context, instance['id']) | 
		
	
		
			
				|  |  |  |  |         security_group_name = self._create_group()['name'] | 
		
	
		
			
				|  |  |  |  |         self.compute_api.add_security_group(self.context, | 
		
	
		
			
				|  |  |  |  |                                             instance, | 
		
	
	
		
			
				
					
					|  |  |  |   |