コード例 #1
0
ファイル: test_aggregates.py プロジェクト: kakawxy/tempest
 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'])
コード例 #2
0
    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'])
コード例 #3
0
    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'])
コード例 #4
0
    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)
コード例 #5
0
    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)
コード例 #6
0
 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'])
コード例 #7
0
    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'])
コード例 #8
0
 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])
コード例 #9
0
 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'])
コード例 #10
0
 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'])
コード例 #11
0
    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'])
コード例 #12
0
ファイル: test_aggregates.py プロジェクト: sapcc/tempest
    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'])
コード例 #13
0
ファイル: test_aggregates.py プロジェクト: sapcc/tempest
    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)
コード例 #14
0
 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'])
コード例 #15
0
    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)
コード例 #16
0
 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)
コード例 #17
0
ファイル: test_volume_quotas.py プロジェクト: yaochi/tempest
 def setUp(self):
     # NOTE(jeremy.zhang): Avoid conflicts with volume quota class tests.
     self.useFixture(fixtures.LockFixture('volume_quotas'))
     super(BaseVolumeQuotasAdminTestJSON, self).setUp()
コード例 #18
0
 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()
コード例 #19
0
ファイル: test_quotas.py プロジェクト: Nick1211/tempest
 def setUp(self):
     # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests.
     self.useFixture(fixtures.LockFixture('compute_quotas'))
     super(QuotasAdminTestJSON, self).setUp()
コード例 #20
0
ファイル: test_quotas.py プロジェクト: Nick1211/tempest
 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()
コード例 #21
0
 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)
コード例 #22
0
 def test_get_configured_credentials_unfilled(self):
     self.useFixture(fixtures.LockFixture('auth_version'))
     self._verify_credentials(credentials_class=self.credentials_class,
                              filled=False)
コード例 #23
0
 def setUp(self):
     # NOTE(mriedem): Avoid conflicts with os-quota-class-sets tests.
     self.useFixture(fixtures.LockFixture('compute_quotas'))
     super(AbsoluteLimitsNegativeTestJSON, self).setUp()
コード例 #24
0
 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)
コード例 #25
0
 def test_get_default_credentials(self):
     self.useFixture(fixtures.LockFixture('auth_version'))
     self._verify_credentials(credentials_class=self.credentials_class)