def test_migrate_migrating_instance(self): instance_uuid = utils.create_instance(self.context, {"task_state":task_states.MIGRATING}) # Create a service so that one can be found by the api. utils.create_cobalt_service(self.context) try: self.cobalt_api.migrate_instance(self.context, instance_uuid, None) self.fail("Should not be able to migrate a migrating instance.") except exception.NovaException: pass
def test_migrate_inactive_instance(self): instance_uuid = utils.create_instance(self.context, {"vm_state":vm_states.BUILDING}) # Create a service so that one can be found by the api. utils.create_cobalt_service(self.context) try: self.cobalt_api.migrate_instance(self.context, instance_uuid, None) self.fail("Should not be able to migrate an inactive instance.") except exception.NovaException: pass
def test_migrate_instance_no_destination(self): instance_uuid = utils.create_instance(self.context, {"vm_state":vm_states.ACTIVE}) # Create a service so that one can be found by the api. utils.create_cobalt_service(self.context) self.cobalt_api.migrate_instance(self.context, instance_uuid, None) instance_ref = db.instance_get_by_uuid(self.context, instance_uuid) self.assertEquals(task_states.MIGRATING, instance_ref['task_state']) self.assertEquals(vm_states.ACTIVE, instance_ref['vm_state'])
def test_install_policy_wait(self): # create five cobalt hosts for i in range(5): utils.create_cobalt_service(self.context) self.cobalt_api.install_policy(self.context, "", True) # This should result in six RPC calls (for the 5 created hosts and the # default test host). Since we are waiting they should all be calls. self.assertTrue('install_policy' in self.mock_rpc.call_log) self.assertEquals(6, len(self.mock_rpc.call_log['install_policy'])) self.assertFalse('install_policy' in self.mock_rpc.cast_log)
def test_install_policy_nowait(self): # create five cobalt hosts for i in range(5): utils.create_cobalt_service(self.context) self.cobalt_api.install_policy(self.context, "", False) # This should result in six RPC calls (for the 5 created hosts and the # default test host). It should be a single call and 5 casts. self.assertTrue('install_policy' in self.mock_rpc.call_log) self.assertEquals(1, len(self.mock_rpc.call_log['install_policy'])) self.assertTrue('install_policy' in self.mock_rpc.cast_log) self.assertEquals(5, len(self.mock_rpc.cast_log['install_policy']))
def test_list_cobalt_hosts(self): hosts = [self.cobalt_service['host']] for i in range(3): hosts.append(utils.create_cobalt_service(self.context)['host']) gc_hosts = self.cobalt_api._list_cobalt_hosts(self.context) hosts.sort() gc_hosts.sort() self.assertEquals(hosts, gc_hosts)
def test_migrate_instance_with_destination(self): instance_uuid = utils.create_instance(self.context, {"vm_state":vm_states.ACTIVE}) gc_service = utils.create_cobalt_service(self.context) dest = gc_service['host'] self.cobalt_api.migrate_instance(self.context, instance_uuid, dest) instance_ref = db.instance_get_by_uuid(self.context, instance_uuid) self.assertEquals(task_states.MIGRATING, instance_ref['task_state']) self.assertEquals(vm_states.ACTIVE, instance_ref['vm_state'])
def test_list_cobalt_hosts_availability_zone(self): hosts_in_zone = [] for i in range(3): hosts_in_zone.append(utils.create_cobalt_service(self.context)['host']) az = utils.create_availability_zone(self.context, hosts_in_zone) gc_hosts = self.cobalt_api._list_cobalt_hosts(self.context, availability_zone=az) hosts_in_zone.sort() gc_hosts.sort() self.assertEquals(hosts_in_zone, gc_hosts)
def setUp(self): CONF.connection_type = 'fake' # Copy the clean database over shutil.copyfile(os.path.join(CONF.state_path, CONF.sqlite_clean_db), os.path.join(CONF.state_path, CONF.sqlite_db)) self.mock_rpc = utils.mock_rpc self.mock_rpc.reset() # Mock out all of the policy enforcement (the tests don't have a defined policy) utils.mock_policy() # Mock quota checking utils.mock_quota() self.cobalt_api = gc_api.API(image_service=utils.mock_image_service()) utils.mock_scheduler_rpcapi(self.cobalt_api.scheduler_rpcapi) self.context = nova_context.RequestContext('fake', 'fake', True) self.cobalt_service = utils.create_cobalt_service(self.context)