Merge "test.py: stop using aliases for creds manager"
diff --git a/tempest/api/identity/admin/v3/test_domains.py b/tempest/api/identity/admin/v3/test_domains.py
index 9683e93..cddba53 100644
--- a/tempest/api/identity/admin/v3/test_domains.py
+++ b/tempest/api/identity/admin/v3/test_domains.py
@@ -149,11 +149,7 @@
self.addCleanup(self._delete_domain, domain['id'])
self.assertIn('id', domain)
expected_data = {'name': d_name, 'enabled': True}
- # TODO(gmann): there is bug in keystone liberty version where
- # description is not being returned if it is not being passed in
- # request. Bug#1649245. Once bug is fixed then we can enable the below
- # check.
- # self.assertEqual('', domain['description'])
+ self.assertEqual('', domain['description'])
self.assertDictContainsSubset(expected_data, domain)
diff --git a/tempest/api/identity/admin/v3/test_tokens.py b/tempest/api/identity/admin/v3/test_tokens.py
index 491a74d..8c5e63b 100644
--- a/tempest/api/identity/admin/v3/test_tokens.py
+++ b/tempest/api/identity/admin/v3/test_tokens.py
@@ -96,18 +96,18 @@
self.assertEqual(['password'], token_auth['token']['methods'])
self.assertEqual(user['id'], token_auth['token']['user']['id'])
self.assertEqual(user['name'], token_auth['token']['user']['name'])
- self.assertEqual('default',
+ self.assertEqual(CONF.identity.default_domain_id,
token_auth['token']['user']['domain']['id'])
- self.assertEqual('Default',
- token_auth['token']['user']['domain']['name'])
+ self.assertIsNotNone(token_auth['token']['user']['domain']['name'])
self.assertNotIn('catalog', token_auth['token'])
self.assertNotIn('project', token_auth['token'])
self.assertNotIn('roles', token_auth['token'])
# Use the unscoped token to get a scoped token.
- token_auth = self.token.auth(token=token_id,
- project_name=project1_name,
- project_domain_name='Default')
+ token_auth = self.token.auth(
+ token=token_id,
+ project_name=project1_name,
+ project_domain_id=CONF.identity.default_domain_id)
token1_id = token_auth.response['x-subject-token']
self.assertEqual(orig_expires_at, token_auth['token']['expires_at'],
@@ -122,10 +122,9 @@
token_auth['token']['project']['id'])
self.assertEqual(project1['name'],
token_auth['token']['project']['name'])
- self.assertEqual('default',
+ self.assertEqual(CONF.identity.default_domain_id,
token_auth['token']['project']['domain']['id'])
- self.assertEqual('Default',
- token_auth['token']['project']['domain']['name'])
+ self.assertIsNotNone(token_auth['token']['project']['domain']['name'])
self.assertEqual(1, len(token_auth['token']['roles']))
self.assertEqual(role['id'], token_auth['token']['roles'][0]['id'])
self.assertEqual(role['name'], token_auth['token']['roles'][0]['name'])
@@ -134,9 +133,10 @@
self.client.delete_token(token1_id)
# Now get another scoped token using the unscoped token.
- token_auth = self.token.auth(token=token_id,
- project_name=project2_name,
- project_domain_name='Default')
+ token_auth = self.token.auth(
+ token=token_id,
+ project_name=project2_name,
+ project_domain_id=CONF.identity.default_domain_id)
self.assertEqual(project2['id'],
token_auth['token']['project']['id'])
diff --git a/tempest/api/identity/admin/v3/test_trusts.py b/tempest/api/identity/admin/v3/test_trusts.py
index 27163cc..3e6a2de 100644
--- a/tempest/api/identity/admin/v3/test_trusts.py
+++ b/tempest/api/identity/admin/v3/test_trusts.py
@@ -47,7 +47,8 @@
# create a project that trusts will be granted on
trustor_project_name = data_utils.rand_name(name='project')
project = self.projects_client.create_project(
- trustor_project_name, domain_id='default')['project']
+ trustor_project_name,
+ domain_id=CONF.identity.default_domain_id)['project']
self.trustor_project_id = project['id']
self.assertIsNotNone(self.trustor_project_id)
@@ -62,7 +63,7 @@
password=trustor_password,
email=u_email,
project_id=self.trustor_project_id,
- domain_id='default')['user']
+ domain_id=CONF.identity.default_domain_id)['user']
self.trustor_user_id = user['id']
# And two roles, one we'll delegate and one we won't
@@ -96,10 +97,10 @@
identity_version='v3',
username=trustor_username,
password=trustor_password,
- user_domain_id='default',
+ user_domain_id=CONF.identity.default_domain_id,
tenant_name=trustor_project_name,
- project_domain_id='default',
- domain_id='default')
+ project_domain_id=CONF.identity.default_domain_id,
+ domain_id=CONF.identity.default_domain_id)
os = clients.Manager(credentials=creds)
self.trustor_client = os.trusts_client
diff --git a/tempest/api/identity/admin/v3/test_users_negative.py b/tempest/api/identity/admin/v3/test_users_negative.py
index 09d1b9b..11dcdb0 100644
--- a/tempest/api/identity/admin/v3/test_users_negative.py
+++ b/tempest/api/identity/admin/v3/test_users_negative.py
@@ -14,10 +14,13 @@
# under the License.
from tempest.api.identity import base
+from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
from tempest.lib import exceptions as lib_exc
+CONF = config.CONF
+
class UsersNegativeTest(base.BaseIdentityV3AdminTest):
@@ -43,4 +46,4 @@
self.assertRaises(lib_exc.Unauthorized, self.token.auth,
username=user['name'],
password=password,
- user_domain_id='default')
+ user_domain_id=CONF.identity.default_domain_id)
diff --git a/tempest/api/volume/test_volume_absolute_limits.py b/tempest/api/volume/test_volume_absolute_limits.py
index 836e489..870b9f0 100644
--- a/tempest/api/volume/test_volume_absolute_limits.py
+++ b/tempest/api/volume/test_volume_absolute_limits.py
@@ -21,7 +21,10 @@
CONF = config.CONF
-class AbsoluteLimitsTests(base.BaseVolumeTest):
+# NOTE(zhufl): This inherits from BaseVolumeAdminTest because
+# it requires force_tenant_isolation=True, which need admin
+# credentials to create non-admin users for the tests.
+class AbsoluteLimitsTests(base.BaseVolumeAdminTest):
# avoid existing volumes of pre-defined tenant
force_tenant_isolation = True
diff --git a/tempest/api/volume/test_volumes_negative.py b/tempest/api/volume/test_volumes_negative.py
index 0516c69..fc3bcab 100644
--- a/tempest/api/volume/test_volumes_negative.py
+++ b/tempest/api/volume/test_volumes_negative.py
@@ -37,6 +37,25 @@
cls.volume = cls.create_volume()
cls.mountpoint = "/dev/vdc"
+ def create_image(self):
+ # Create image
+ image_name = data_utils.rand_name(self.__class__.__name__ + "-image")
+ image = self.images_client.create_image(
+ name=image_name,
+ container_format=CONF.image.container_formats[0],
+ disk_format=CONF.image.disk_formats[0],
+ visibility='private',
+ min_disk=CONF.volume.volume_size + 1)
+ self.addCleanup(test_utils.call_and_ignore_notfound_exc,
+ self.images_client.delete_image, image['id'])
+
+ # Upload image with 1KB data
+ image_file = six.BytesIO(data_utils.random_bytes())
+ self.images_client.store_image_file(image['id'], image_file)
+ waiters.wait_for_image_status(self.images_client,
+ image['id'], 'active')
+ return image
+
@decorators.attr(type=['negative'])
@decorators.idempotent_id('f131c586-9448-44a4-a8b0-54ca838aa43e')
def test_volume_get_nonexistent_volume_id(self):
@@ -276,21 +295,7 @@
@test.services('image')
def test_create_volume_from_image_with_decreasing_size(self):
# Create image
- image_name = data_utils.rand_name(self.__class__.__name__ + "-image")
- image = self.images_client.create_image(
- name=image_name,
- container_format=CONF.image.container_formats[0],
- disk_format=CONF.image.disk_formats[0],
- visibility='private',
- min_disk=CONF.volume.volume_size + 1)
- self.addCleanup(test_utils.call_and_ignore_notfound_exc,
- self.images_client.delete_image, image['id'])
-
- # Upload image with 1KB data
- image_file = six.BytesIO(data_utils.random_bytes())
- self.images_client.store_image_file(image['id'], image_file)
- waiters.wait_for_image_status(self.images_client,
- image['id'], 'active')
+ image = self.create_image()
# Note(jeremyZ): To shorten the test time (uploading a big size image
# is time-consuming), here just consider the scenario that volume size
@@ -299,3 +304,19 @@
self.volumes_client.create_volume,
size=CONF.volume.volume_size,
imageRef=image['id'])
+
+ @decorators.attr(type=['negative'])
+ @decorators.idempotent_id('d15e7f35-2cfc-48c8-9418-c8223a89bcbb')
+ @test.services('image')
+ def test_create_volume_from_deactivated_image(self):
+ # Create image
+ image = self.create_image()
+
+ # Deactivate the image
+ self.images_client.deactivate_image(image['id'])
+ body = self.images_client.show_image(image['id'])
+ self.assertEqual("deactivated", body['status'])
+ # Try creating a volume from deactivated image
+ self.assertRaises(lib_exc.BadRequest,
+ self.create_volume,
+ imageRef=image['id'])