def test_aggregate_add_host_create_server_with_az(self): # Add a host to the given aggregate and create a server. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) az_name = data_utils.rand_name(self.az_name_prefix) aggregate = self.client.create_aggregate( name=aggregate_name, availability_zone=az_name)['aggregate'] self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], host=self.host) self.addCleanup(self.client.remove_host, aggregate['id'], host=self.host) admin_servers_client = self.os_adm.servers_client server = self.create_test_server(availability_zone=az_name, wait_until='ACTIVE') body = admin_servers_client.show_server(server['id'])['server'] self.assertEqual(self.host, body['OS-EXT-SRV-ATTR:host'])
def test_aggregate_add_host_list(self): # Add an host to the given aggregate and list. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) resp, aggregate = self.client.create_aggregate(name=aggregate_name) self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], self.host) self.addCleanup(self.client.remove_host, aggregate['id'], self.host) resp, aggregates = self.client.list_aggregates() aggs = filter(lambda x: x['id'] == aggregate['id'], aggregates) self.assertEqual(1, len(aggs)) agg = aggs[0] self.assertEqual(aggregate_name, agg['name']) self.assertEqual(None, agg['availability_zone']) self.assertIn(self.host, agg['hosts'])
def test_aggregate_add_host_get_details(self): # Add a host to the given aggregate and get details. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = (self.client.create_aggregate( name=aggregate_name)['aggregate']) self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], host=self.host) self.addCleanup(self.client.remove_host, aggregate['id'], host=self.host) body = self.client.show_aggregate(aggregate['id'])['aggregate'] self.assertEqual(aggregate_name, body['name']) self.assertIsNone(body['availability_zone']) self.assertIn(self.host, body['hosts'])
def test_aggregate_remove_host_as_user(self): # Regular user is not allowed to remove a host from an aggregate. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = (self.client.create_aggregate( name=aggregate_name)['aggregate']) self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], host=self.host) self.addCleanup(self.client.remove_host, aggregate['id'], host=self.host) self.assertRaises(lib_exc.Forbidden, self.user_client.remove_host, aggregate['id'], host=self.host)
def test_aggregate_add_existent_host(self): self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = (self.client.create_aggregate( name=aggregate_name)['aggregate']) self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], host=self.host) self.addCleanup(self.client.remove_host, aggregate['id'], host=self.host) self.assertRaises(lib_exc.Conflict, self.client.add_host, aggregate['id'], host=self.host)
def test_resize_server_using_overlimit_ram(self): # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) quota_set = self.quotas_client.show_quota_set( self.tenant_id)['quota_set'] ram = quota_set['ram'] if ram == -1: raise self.skipException("ram quota set is -1," " cannot test overlimit") ram += 1 vcpus = 1 disk = 5 flavor_ref = self.create_flavor(ram=ram, vcpus=vcpus, disk=disk) self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit), self.client.resize_server, self.s1_id, flavor_ref['id'])
def test_aggregate_add_host_list(self): # Add a host to the given aggregate and list. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = self._create_test_aggregate(name=aggregate_name) self.client.add_host(aggregate['id'], host=self.host) self.addCleanup(self.client.remove_host, aggregate['id'], host=self.host) aggregates = self.client.list_aggregates()['aggregates'] aggs = [agg for agg in aggregates if agg['id'] == aggregate['id']] self.assertEqual(1, len(aggs)) agg = aggs[0] self.assertEqual(aggregate_name, agg['name']) self.assertIsNone(agg['availability_zone']) self.assertIn(self.host, agg['hosts'])
def test_aggregate_add_host_create_server_with_az(self): # Add an host to the given aggregate and create a server. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) az_name = data_utils.rand_name(self.az_name_prefix) resp, aggregate = self.client.create_aggregate( name=aggregate_name, availability_zone=az_name) self.addCleanup(self.client.delete_aggregate, aggregate['id']) self.client.add_host(aggregate['id'], self.host) self.addCleanup(self.client.remove_host, aggregate['id'], self.host) server_name = data_utils.rand_name('test_server_') admin_servers_client = self.servers_admin_client resp, server = self.create_test_server(name=server_name, availability_zone=az_name, wait_until='ACTIVE') resp, body = admin_servers_client.get_server(server['id']) self.assertEqual(self.host, body[self._host_key])
def test_resize_server_using_overlimit_vcpus(self): """Test resizing server using over limit vcpus should fail""" # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) quota_set = self.quotas_client.show_quota_set( self.tenant_id)['quota_set'] vcpus = quota_set['cores'] if vcpus == -1: raise self.skipException("cores quota set is -1," " cannot test overlimit") vcpus += 1 ram = 512 disk = 5 flavor_ref = self.create_flavor(ram=ram, vcpus=vcpus, disk=disk) self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit), self.client.resize_server, self.s1_id, flavor_ref['id'])
def test_resize_server_using_overlimit_vcpus(self): # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) flavor_name = data_utils.rand_name("flavor") flavor_id = self._get_unused_flavor_id() ram = 512 quota_set = self.quotas_client.show_default_quota_set(self.tenant_id) vcpus = int(quota_set['cores']) + 1 disk = 10 flavor_ref = self.flavors_client.create_flavor(name=flavor_name, ram=ram, vcpus=vcpus, disk=disk, id=flavor_id) self.addCleanup(self.flavors_client.delete_flavor, flavor_id) self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit), self.client.resize, self.servers[0]['id'], flavor_ref['id'])
def test_aggregate_add_remove_host(self): # Add an host to the given aggregate and remove. self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = self.client.create_aggregate(name=aggregate_name) self.addCleanup(self.client.delete_aggregate, aggregate['id']) body = self.client.add_host(aggregate['id'], host=self.host) self.assertEqual(aggregate_name, body['name']) self.assertEqual(aggregate['availability_zone'], body['availability_zone']) self.assertIn(self.host, body['hosts']) body = self.client.remove_host(aggregate['id'], host=self.host) self.assertEqual(aggregate_name, body['name']) self.assertEqual(aggregate['availability_zone'], body['availability_zone']) self.assertNotIn(self.host, body['hosts'])
def test_aggregate_add_remove_host(self): """Test adding host to and removing host from aggregate""" self.useFixture(fixtures.LockFixture('availability_zone')) aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) aggregate = self._create_test_aggregate(name=aggregate_name) body = (self.client.add_host(aggregate['id'], host=self.host)['aggregate']) self.assertEqual(aggregate_name, body['name']) self.assertEqual(aggregate['availability_zone'], body['availability_zone']) self.assertIn(self.host, body['hosts']) body = (self.client.remove_host(aggregate['id'], host=self.host)['aggregate']) self.assertEqual(aggregate_name, body['name']) self.assertEqual(aggregate['availability_zone'], body['availability_zone']) self.assertNotIn(self.host, body['hosts'])
def test_create_update_show_aggregate_add_remove_host(self): """Test response schema of aggregates API Test response schema of aggregates API(create/update/show/add host/ remove host) with compute microversion greater than 2.40. """ # Update and add a host to the given aggregate and get details. self.useFixture(fixtures.LockFixture('availability_zone')) # Checking create aggregate API response schema aggregate = self._create_test_aggregate() new_aggregate_name = data_utils.rand_name(self.aggregate_name_prefix) # Checking update aggregate API response schema self.client.update_aggregate(aggregate['id'], name=new_aggregate_name) # Checking show aggregate API response schema self.client.show_aggregate(aggregate['id'])['aggregate'] # Checking add host to aggregate API response schema self.client.add_host(aggregate['id'], host=self.host) # Checking rempve host from aggregate API response schema self.client.remove_host(aggregate['id'], host=self.host)
def test_resize_server_using_overlimit_ram(self): # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) flavor_name = data_utils.rand_name("flavor") flavor_id = self._get_unused_flavor_id() quota_set = (self.quotas_client.show_default_quota_set(self.tenant_id) ['quota_set']) ram = int(quota_set['ram']) if ram == -1: raise self.skipException("default ram quota set is -1," " cannot test overlimit") ram += 1 vcpus = 8 disk = 10 flavor_ref = self.flavors_client.create_flavor(name=flavor_name, ram=ram, vcpus=vcpus, disk=disk, id=flavor_id)['flavor'] self.addCleanup(self.flavors_client.delete_flavor, flavor_id) self.assertRaises((lib_exc.Forbidden, lib_exc.OverLimit), self.client.resize_server, self.servers[0]['id'], flavor_ref['id'])
def test_aggregate_basic_ops(self): self.useFixture(fixtures.LockFixture('availability_zone')) az = 'foo_zone' aggregate_name = data_utils.rand_name('aggregate-scenario') aggregate = self._create_aggregate(name=aggregate_name, availability_zone=az) metadata = {'meta_key': 'meta_value'} self._set_aggregate_metadata(aggregate, metadata) host = self._get_host_name() self._add_host(aggregate, host) self._check_aggregate_details(aggregate, aggregate_name, az, [host], metadata) aggregate_name = data_utils.rand_name('renamed-aggregate-scenario') aggregate = self._update_aggregate(aggregate, aggregate_name, None) additional_metadata = {'foo': 'bar'} self._set_aggregate_metadata(aggregate, additional_metadata) metadata.update(additional_metadata) self._check_aggregate_details(aggregate, aggregate.name, az, [host], metadata)
def test_get_credentials_not_filled(self): self.useFixture(fixtures.LockFixture('auth_version')) self._verify_credentials(credentials_class=self.credentials_class, filled=False, creds_dict=self.attributes)
def setUp(self): # NOTE(jeremy.zhang): Avoid conflicts with volume quota class tests. self.useFixture(fixtures.LockFixture('volume_quotas')) super(BaseVolumeQuotasAdminTestJSON, self).setUp()
def setUp(self): # Note(jeremy.zhang): All test cases in this class need to externally # lock on doing anything with default quota values. self.useFixture(fixtures.LockFixture('volume_quotas')) super(VolumeQuotaClassesTest, self).setUp()
def setUp(self): # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) super(QuotasAdminTestJSON, self).setUp()
def setUp(self): # All test cases in this class need to externally lock on doing # anything with default quota values. self.useFixture(fixtures.LockFixture('compute_quotas')) super(QuotaClassesAdminTestJSON, self).setUp()
def test_get_configured_credentials_version(self): # version specified and not loaded from config self.useFixture(fixtures.LockFixture('auth_version')) self._verify_credentials(credentials_class=self.credentials_class, identity_version=self.identity_version)
def test_get_configured_credentials_unfilled(self): self.useFixture(fixtures.LockFixture('auth_version')) self._verify_credentials(credentials_class=self.credentials_class, filled=False)
def setUp(self): # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests. self.useFixture(fixtures.LockFixture('compute_quotas')) super(AbsoluteLimitsNegativeTestJSON, self).setUp()
def test_default(self): self.useFixture(fixtures.LockFixture('auth_version')) for ctype in self.credentials_class.TYPES: self.assertRaises(NotImplementedError, self.credentials_class.get_default, credentials_type=ctype)
def test_get_default_credentials(self): self.useFixture(fixtures.LockFixture('auth_version')) self._verify_credentials(credentials_class=self.credentials_class)