blob: 88161a3894e5cbc13a1b70e7e25497b54eb71fe0 [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
16from tempest_lib import exceptions as lib_exc
17
18from tempest.api.identity import base
19from tempest import test
20
21
22class EC2CredentialsTest(base.BaseIdentityV2Test):
23
24 @classmethod
25 def skip_checks(cls):
26 super(EC2CredentialsTest, cls).skip_checks()
27 if not test.is_extension_enabled('OS-EC2', 'identity'):
28 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()
34 cls.creds = cls.os.credentials
35
36 @test.idempotent_id('b580fab9-7ae9-46e8-8138-417260cb6f9f')
37 def test_create_ec2_credentials(self):
38 """Create user ec2 credentials."""
39 resp = self.non_admin_client.create_user_ec2_credentials(
40 self.creds.credentials.user_id,
piyush110786d7dc2d92015-12-07 18:33:13 +053041 tenant_id=self.creds.credentials.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030042 access = resp['access']
43 self.addCleanup(
44 self.non_admin_client.delete_user_ec2_credentials,
45 self.creds.credentials.user_id, access)
46 self.assertNotEmpty(resp['access'])
47 self.assertNotEmpty(resp['secret'])
48 self.assertEqual(self.creds.credentials.user_id, resp['user_id'])
49 self.assertEqual(self.creds.credentials.tenant_id, resp['tenant_id'])
50
51 @test.idempotent_id('9e2ea42f-0a4f-468c-a768-51859ce492e0')
52 def test_list_ec2_credentials(self):
53 """Get the list of user ec2 credentials."""
54 created_creds = []
55 fetched_creds = []
56 # create first ec2 credentials
57 creds1 = self.non_admin_client.create_user_ec2_credentials(
Anusha Ramineni0cfb4612015-08-24 08:49:10 +053058 self.creds.credentials.user_id,
piyush110786d7dc2d92015-12-07 18:33:13 +053059 tenant_id=self.creds.credentials.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030060 created_creds.append(creds1['access'])
61 # create second ec2 credentials
62 creds2 = self.non_admin_client.create_user_ec2_credentials(
Anusha Ramineni0cfb4612015-08-24 08:49:10 +053063 self.creds.credentials.user_id,
piyush110786d7dc2d92015-12-07 18:33:13 +053064 tenant_id=self.creds.credentials.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030065 created_creds.append(creds2['access'])
66 # add credentials to be cleaned up
67 self.addCleanup(
68 self.non_admin_client.delete_user_ec2_credentials,
69 self.creds.credentials.user_id, creds1['access'])
70 self.addCleanup(
71 self.non_admin_client.delete_user_ec2_credentials,
72 self.creds.credentials.user_id, creds2['access'])
73 # get the list of user ec2 credentials
74 resp = self.non_admin_client.list_user_ec2_credentials(
Anusha Ramineni0cfb4612015-08-24 08:49:10 +053075 self.creds.credentials.user_id)["credentials"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030076 fetched_creds = [cred['access'] for cred in resp]
77 # created credentials should be in a fetched list
78 missing = [cred for cred in created_creds
79 if cred not in fetched_creds]
80 self.assertEmpty(missing,
81 "Failed to find ec2_credentials %s in fetched list" %
82 ', '.join(cred for cred in missing))
83
84 @test.idempotent_id('cb284075-b613-440d-83ca-fe0b33b3c2b8')
85 def test_show_ec2_credentials(self):
86 """Get the definite user ec2 credentials."""
87 resp = self.non_admin_client.create_user_ec2_credentials(
88 self.creds.credentials.user_id,
piyush110786d7dc2d92015-12-07 18:33:13 +053089 tenant_id=self.creds.credentials.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030090 self.addCleanup(
91 self.non_admin_client.delete_user_ec2_credentials,
92 self.creds.credentials.user_id, resp['access'])
93
94 ec2_creds = self.non_admin_client.show_user_ec2_credentials(
95 self.creds.credentials.user_id, resp['access']
Anusha Raminenifa5591f2015-09-24 14:25:01 +053096 )["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +030097 for key in ['access', 'secret', 'user_id', 'tenant_id']:
98 self.assertEqual(ec2_creds[key], resp[key])
99
100 @test.idempotent_id('6aba0d4c-b76b-4e46-aa42-add79bc1551d')
101 def test_delete_ec2_credentials(self):
102 """Delete user ec2 credentials."""
103 resp = self.non_admin_client.create_user_ec2_credentials(
104 self.creds.credentials.user_id,
piyush110786d7dc2d92015-12-07 18:33:13 +0530105 tenant_id=self.creds.credentials.tenant_id)["credential"]
Jane Zadorozhna121576d2015-06-23 12:57:13 +0300106 access = resp['access']
107 self.non_admin_client.delete_user_ec2_credentials(
108 self.creds.credentials.user_id, access)
109 self.assertRaises(
110 lib_exc.NotFound,
111 self.non_admin_client.show_user_ec2_credentials,
112 self.creds.credentials.user_id,
113 access)