RBAC tests for os-extended-status policies
This commit adds RBAC tests for os-extended-status policies, the documentation for which can be found here: https://github.com/openstack/nova/blob/master/nova/policies/extended_status.py Tests for both APIs that enforce each policy were added. Change-Id: I2eb9c7f62d8adbff77dd36f39c3030751d21a894 Implements: blueprint rbac-tests-for-compute-extended-status Depends-On: I1c14646dc8d102cd093be09833c23846781e5e73
This commit is contained in:
parent
7b9ae3fbc8
commit
0328650758
|
@ -154,6 +154,40 @@ class MiscPolicyActionsRbacTest(rbac_base.BaseV2ComputeRbacTest):
|
|||
# Force-deleting a server enforces os-deferred-delete.
|
||||
self.servers_client.force_delete_server(self.server_id)
|
||||
|
||||
@decorators.idempotent_id('82053c27-3134-4003-9b55-bc9fafdb0e3b')
|
||||
@test.requires_ext(extension='OS-EXT-STS', service='compute')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-extended-status")
|
||||
def test_list_servers_extended_status(self):
|
||||
"""Test list servers with extended properties in response body."""
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
body = self.servers_client.list_servers(detail=True)['servers']
|
||||
|
||||
expected_attrs = ('OS-EXT-STS:task_state', 'OS-EXT-STS:vm_state',
|
||||
'OS-EXT-STS:power_state')
|
||||
for attr in expected_attrs:
|
||||
if attr not in body[0]:
|
||||
raise rbac_exceptions.RbacMalformedResponse(
|
||||
attribute=attr)
|
||||
|
||||
@decorators.idempotent_id('7d2620a5-eea1-4a8b-96ea-86ad77a73fc8')
|
||||
@test.requires_ext(extension='OS-EXT-STS', service='compute')
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-extended-status")
|
||||
def test_show_server_extended_status(self):
|
||||
"""Test show server with extended properties in response body."""
|
||||
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
|
||||
body = self.servers_client.show_server(self.server['id'])['server']
|
||||
|
||||
expected_attrs = ('OS-EXT-STS:task_state', 'OS-EXT-STS:vm_state',
|
||||
'OS-EXT-STS:power_state')
|
||||
for attr in expected_attrs:
|
||||
if attr not in body:
|
||||
raise rbac_exceptions.RbacMalformedResponse(
|
||||
attribute=attr)
|
||||
|
||||
@rbac_rule_validation.action(
|
||||
service="nova",
|
||||
rule="os_compute_api:os-lock-server:lock")
|
||||
|
|
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Add RBAC tests for os_compute_api:os-extended-status, which validate that
|
||||
the following attributes:
|
||||
|
||||
- OS-EXT-STS:task_state
|
||||
- OS-EXT-STS:vm_state
|
||||
- OS-EXT-STS:power_state
|
||||
|
||||
are present in the relevant response bodies.
|
Loading…
Reference in New Issue