blob: 237e728c53bd063bea76919a8a8384bb78423c26 [file] [log] [blame]
Jane Zadorozhna121576d2015-06-23 12:57:13 +03001# Copyright 2015 OpenStack Foundation
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
Jane Zadorozhna121576d2015-06-23 12:57:13 +030016from tempest.api.identity import base
Andrea Frittolicd368412017-08-14 21:37:56 +010017from tempest.common import utils
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080018from tempest.lib import decorators
Andrea Frittoli (andreaf)db9672e2016-02-23 14:07:24 -050019from tempest.lib import exceptions as lib_exc
Jane Zadorozhna121576d2015-06-23 12:57:13 +030020
21
22class EC2CredentialsTest(base.BaseIdentityV2Test):
23
24 @classmethod
25 def skip_checks(cls):
26 super(EC2CredentialsTest, cls).skip_checks()
Andrea Frittolicd368412017-08-14 21:37:56 +010027 if not utils.is_extension_enabled('OS-EC2', 'identity'):
Jane Zadorozhna121576d2015-06-23 12:57:13 +030028 msg = "OS-EC2 identity extension not enabled."
29 raise cls.skipException(msg)
30
31 @classmethod
32 def resource_setup(cls):
33 super(EC2CredentialsTest, cls).resource_setup()
Jordan Pittier8160d312017-04-18 11:52:23 +020034 cls.creds = cls.os_primary.credentials
Jane Zadorozhna121576d2015-06-23 12:57:13 +030035
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080036 @decorators.idempotent_id('b580fab9-7ae9-46e8-8138-417260cb6f9f')
ghanshyam9c257a72016-06-21 10:15:10 +090037 def test_create_ec2_credential(self):
38 """Create user ec2 credential."""
39 resp = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010040 self.creds.user_id,
41 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030042 access = resp['access']
43 self.addCleanup(
ghanshyam9c257a72016-06-21 10:15:10 +090044 self.non_admin_users_client.delete_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010045 self.creds.user_id, access)
Jane Zadorozhna121576d2015-06-23 12:57:13 +030046 self.assertNotEmpty(resp['access'])
47 self.assertNotEmpty(resp['secret'])
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010048 self.assertEqual(self.creds.user_id, resp['user_id'])
49 self.assertEqual(self.creds.tenant_id, resp['tenant_id'])
Jane Zadorozhna121576d2015-06-23 12:57:13 +030050
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080051 @decorators.idempotent_id('9e2ea42f-0a4f-468c-a768-51859ce492e0')
Jane Zadorozhna121576d2015-06-23 12:57:13 +030052 def test_list_ec2_credentials(self):
53 """Get the list of user ec2 credentials."""
54 created_creds = []
Jane Zadorozhna121576d2015-06-23 12:57:13 +030055 # create first ec2 credentials
ghanshyam9c257a72016-06-21 10:15:10 +090056 creds1 = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010057 self.creds.user_id,
58 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030059 created_creds.append(creds1['access'])
60 # create second ec2 credentials
ghanshyam9c257a72016-06-21 10:15:10 +090061 creds2 = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010062 self.creds.user_id,
63 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030064 created_creds.append(creds2['access'])
65 # add credentials to be cleaned up
66 self.addCleanup(
ghanshyam9c257a72016-06-21 10:15:10 +090067 self.non_admin_users_client.delete_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010068 self.creds.user_id, creds1['access'])
Jane Zadorozhna121576d2015-06-23 12:57:13 +030069 self.addCleanup(
ghanshyam9c257a72016-06-21 10:15:10 +090070 self.non_admin_users_client.delete_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010071 self.creds.user_id, creds2['access'])
Jane Zadorozhna121576d2015-06-23 12:57:13 +030072 # get the list of user ec2 credentials
Daniel Mellado82c83a52015-12-09 15:16:49 +000073 resp = self.non_admin_users_client.list_user_ec2_credentials(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010074 self.creds.user_id)["credentials"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030075 fetched_creds = [cred['access'] for cred in resp]
76 # created credentials should be in a fetched list
77 missing = [cred for cred in created_creds
78 if cred not in fetched_creds]
79 self.assertEmpty(missing,
80 "Failed to find ec2_credentials %s in fetched list" %
81 ', '.join(cred for cred in missing))
82
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080083 @decorators.idempotent_id('cb284075-b613-440d-83ca-fe0b33b3c2b8')
ghanshyam9c257a72016-06-21 10:15:10 +090084 def test_show_ec2_credential(self):
85 """Get the definite user ec2 credential."""
86 resp = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010087 self.creds.user_id,
88 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030089 self.addCleanup(
ghanshyam9c257a72016-06-21 10:15:10 +090090 self.non_admin_users_client.delete_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010091 self.creds.user_id, resp['access'])
Jane Zadorozhna121576d2015-06-23 12:57:13 +030092
ghanshyam9c257a72016-06-21 10:15:10 +090093 ec2_creds = self.non_admin_users_client.show_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010094 self.creds.user_id, resp['access']
Anusha Raminenifa5591f2015-09-24 14:25:01 +053095 )["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030096 for key in ['access', 'secret', 'user_id', 'tenant_id']:
97 self.assertEqual(ec2_creds[key], resp[key])
98
Ken'ichi Ohmichieeabdd22017-01-27 17:46:00 -080099 @decorators.idempotent_id('6aba0d4c-b76b-4e46-aa42-add79bc1551d')
ghanshyam9c257a72016-06-21 10:15:10 +0900100 def test_delete_ec2_credential(self):
101 """Delete user ec2 credential."""
102 resp = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +0100103 self.creds.user_id,
104 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +0300105 access = resp['access']
ghanshyam9c257a72016-06-21 10:15:10 +0900106 self.non_admin_users_client.delete_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +0100107 self.creds.user_id, access)
Jane Zadorozhna121576d2015-06-23 12:57:13 +0300108 self.assertRaises(
109 lib_exc.NotFound,
ghanshyam9c257a72016-06-21 10:15:10 +0900110 self.non_admin_users_client.show_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +0100111 self.creds.user_id,
Jane Zadorozhna121576d2015-06-23 12:57:13 +0300112 access)