RBAC tests for key_name in response

Adds tests for os-keypairs that looks for "key_name" in the
response body from a call to list or show server. Also adds a
skip exception to test_keypairs_rbac if os-keypairs extension
is not enabled.

Implements bp:rbac-tests-for-key-name-in-response

Change-Id: I2dc5332bfd59ea7c7a0e4a32b69d94ccd19ffaac
This commit is contained in:
Samantha Blanco 2017-08-25 16:01:10 -04:00 committed by Felipe Monteiro
parent 2a4bc7e28a
commit 72430755e2
2 changed files with 28 additions and 0 deletions

View File

@ -304,6 +304,29 @@ class MiscPolicyActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
raise rbac_exceptions.RbacMalformedResponse(
attribute='events.traceback')
@rbac_rule_validation.action(
service="nova",
rule="os_compute_api:os-keypairs")
@decorators.idempotent_id('81e6fa34-c06b-42ca-b195-82bf8699b940')
def test_show_server_keypair(self):
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
result =\
self.servers_client.show_server(self.server['id'])['server']
if 'key_name' not in result:
raise rbac_exceptions.RbacMalformedResponse(
attribute='key_name')
@rbac_rule_validation.action(
service="nova",
rule="os_compute_api:os-keypairs")
@decorators.idempotent_id('41ca4280-ec59-4b80-a9b1-6bc6366faf39')
def test_list_servers_keypairs(self):
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
result = self.servers_client.list_servers(detail=True)['servers']
if 'key_name' not in result[0]:
raise rbac_exceptions.RbacMalformedResponse(
attribute='key_name')
@rbac_rule_validation.action(
service="nova",
rule="os_compute_api:os-lock-server:lock")

View File

@ -0,0 +1,5 @@
---
features:
- |
Adds tests to see if key_name is returned in server
response to test_server_misc_policy_actions_rbac.