Merge "RBAC tests for os-extended-status policies"
diff --git a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
index 23dd48c..b1956c2 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_server_misc_policy_actions_rbac.py
@@ -200,6 +200,40 @@
raise rbac_exceptions.RbacMalformedResponse(
attribute='events.traceback')
+ @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")
diff --git a/releasenotes/notes/rbac-tests-for-compute-extended-status-ef00256e58b66223.yaml b/releasenotes/notes/rbac-tests-for-compute-extended-status-ef00256e58b66223.yaml
new file mode 100644
index 0000000..6cf82e6
--- /dev/null
+++ b/releasenotes/notes/rbac-tests-for-compute-extended-status-ef00256e58b66223.yaml
@@ -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.