blob: 3c379f0e533777b31223daf6abd6fad0a9d700a9 [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 Frittoli (andreaf)db9672e2016-02-23 14:07:24 -050017from tempest.lib import exceptions as lib_exc
Jane Zadorozhna121576d2015-06-23 12:57:13 +030018from tempest import test
19
20
21class EC2CredentialsTest(base.BaseIdentityV2Test):
22
23 @classmethod
24 def skip_checks(cls):
25 super(EC2CredentialsTest, cls).skip_checks()
26 if not test.is_extension_enabled('OS-EC2', 'identity'):
27 msg = "OS-EC2 identity extension not enabled."
28 raise cls.skipException(msg)
29
30 @classmethod
31 def resource_setup(cls):
32 super(EC2CredentialsTest, cls).resource_setup()
33 cls.creds = cls.os.credentials
34
35 @test.idempotent_id('b580fab9-7ae9-46e8-8138-417260cb6f9f')
ghanshyam9c257a72016-06-21 10:15:10 +090036 def test_create_ec2_credential(self):
37 """Create user ec2 credential."""
38 resp = self.non_admin_users_client.create_user_ec2_credential(
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010039 self.creds.user_id,
40 tenant_id=self.creds.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030041 access = resp['access']
42 self.addCleanup(
ghanshyam9c257a72016-06-21 10:15:10 +090043 self.non_admin_users_client.delete_user_ec2_credential,
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010044 self.creds.user_id, access)
Jane Zadorozhna121576d2015-06-23 12:57:13 +030045 self.assertNotEmpty(resp['access'])
46 self.assertNotEmpty(resp['secret'])
Andrea Frittoli (andreaf)848c4a12016-06-09 11:09:02 +010047 self.assertEqual(self.creds.user_id, resp['user_id'])
48 self.assertEqual(self.creds.tenant_id, resp['tenant_id'])
Jane Zadorozhna121576d2015-06-23 12:57:13 +030049
50 @test.idempotent_id('9e2ea42f-0a4f-468c-a768-51859ce492e0')
51 def test_list_ec2_credentials(self):
52 """Get the list of user ec2 credentials."""
53 created_creds = []
54 fetched_creds = []
55 # 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
83 @test.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
99 @test.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)