Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 1 | # 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 | |
| 16 | from tempest_lib import exceptions as lib_exc |
| 17 | |
| 18 | from tempest.api.identity import base |
| 19 | from tempest import test |
| 20 | |
| 21 | |
| 22 | class 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, |
piyush110786 | d7dc2d9 | 2015-12-07 18:33:13 +0530 | [diff] [blame] | 41 | tenant_id=self.creds.credentials.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 42 | 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 Ramineni | 0cfb461 | 2015-08-24 08:49:10 +0530 | [diff] [blame] | 58 | self.creds.credentials.user_id, |
piyush110786 | d7dc2d9 | 2015-12-07 18:33:13 +0530 | [diff] [blame] | 59 | tenant_id=self.creds.credentials.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 60 | created_creds.append(creds1['access']) |
| 61 | # create second ec2 credentials |
| 62 | creds2 = self.non_admin_client.create_user_ec2_credentials( |
Anusha Ramineni | 0cfb461 | 2015-08-24 08:49:10 +0530 | [diff] [blame] | 63 | self.creds.credentials.user_id, |
piyush110786 | d7dc2d9 | 2015-12-07 18:33:13 +0530 | [diff] [blame] | 64 | tenant_id=self.creds.credentials.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 65 | 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 Ramineni | 0cfb461 | 2015-08-24 08:49:10 +0530 | [diff] [blame] | 75 | self.creds.credentials.user_id)["credentials"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 76 | 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, |
piyush110786 | d7dc2d9 | 2015-12-07 18:33:13 +0530 | [diff] [blame] | 89 | tenant_id=self.creds.credentials.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 90 | 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 Ramineni | fa5591f | 2015-09-24 14:25:01 +0530 | [diff] [blame] | 96 | )["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 97 | 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, |
piyush110786 | d7dc2d9 | 2015-12-07 18:33:13 +0530 | [diff] [blame] | 105 | tenant_id=self.creds.credentials.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 106 | 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) |