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 | |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 16 | from tempest.api.identity import base |
Andrea Frittoli (andreaf) | db9672e | 2016-02-23 14:07:24 -0500 | [diff] [blame] | 17 | from tempest.lib import exceptions as lib_exc |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 18 | from tempest import test |
| 19 | |
| 20 | |
| 21 | class 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') |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 36 | 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) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 39 | self.creds.user_id, |
| 40 | tenant_id=self.creds.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 41 | access = resp['access'] |
| 42 | self.addCleanup( |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 43 | self.non_admin_users_client.delete_user_ec2_credential, |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 44 | self.creds.user_id, access) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 45 | self.assertNotEmpty(resp['access']) |
| 46 | self.assertNotEmpty(resp['secret']) |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 47 | self.assertEqual(self.creds.user_id, resp['user_id']) |
| 48 | self.assertEqual(self.creds.tenant_id, resp['tenant_id']) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 49 | |
| 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 |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 56 | creds1 = self.non_admin_users_client.create_user_ec2_credential( |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 57 | self.creds.user_id, |
| 58 | tenant_id=self.creds.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 59 | created_creds.append(creds1['access']) |
| 60 | # create second ec2 credentials |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 61 | creds2 = self.non_admin_users_client.create_user_ec2_credential( |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 62 | self.creds.user_id, |
| 63 | tenant_id=self.creds.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 64 | created_creds.append(creds2['access']) |
| 65 | # add credentials to be cleaned up |
| 66 | self.addCleanup( |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 67 | self.non_admin_users_client.delete_user_ec2_credential, |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 68 | self.creds.user_id, creds1['access']) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 69 | self.addCleanup( |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 70 | self.non_admin_users_client.delete_user_ec2_credential, |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 71 | self.creds.user_id, creds2['access']) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 72 | # get the list of user ec2 credentials |
Daniel Mellado | 82c83a5 | 2015-12-09 15:16:49 +0000 | [diff] [blame] | 73 | resp = self.non_admin_users_client.list_user_ec2_credentials( |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 74 | self.creds.user_id)["credentials"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 75 | 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') |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 84 | 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) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 87 | self.creds.user_id, |
| 88 | tenant_id=self.creds.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 89 | self.addCleanup( |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 90 | self.non_admin_users_client.delete_user_ec2_credential, |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 91 | self.creds.user_id, resp['access']) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 92 | |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 93 | ec2_creds = self.non_admin_users_client.show_user_ec2_credential( |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 94 | self.creds.user_id, resp['access'] |
Anusha Ramineni | fa5591f | 2015-09-24 14:25:01 +0530 | [diff] [blame] | 95 | )["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 96 | 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') |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 100 | 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) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 103 | self.creds.user_id, |
| 104 | tenant_id=self.creds.tenant_id)["credential"] |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 105 | access = resp['access'] |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 106 | self.non_admin_users_client.delete_user_ec2_credential( |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 107 | self.creds.user_id, access) |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 108 | self.assertRaises( |
| 109 | lib_exc.NotFound, |
ghanshyam | 9c257a7 | 2016-06-21 10:15:10 +0900 | [diff] [blame] | 110 | self.non_admin_users_client.show_user_ec2_credential, |
Andrea Frittoli (andreaf) | 848c4a1 | 2016-06-09 11:09:02 +0100 | [diff] [blame] | 111 | self.creds.user_id, |
Jane Zadorozhna | 121576d | 2015-06-23 12:57:13 +0300 | [diff] [blame] | 112 | access) |