Merge "Migrate to override_role for compute module (part 1)"
diff --git a/patrole_tempest_plugin/tests/api/image/rbac_base.py b/patrole_tempest_plugin/tests/api/image/rbac_base.py
index dd4e5ed..ed69c3d 100644
--- a/patrole_tempest_plugin/tests/api/image/rbac_base.py
+++ b/patrole_tempest_plugin/tests/api/image/rbac_base.py
@@ -19,21 +19,6 @@
CONF = config.CONF
-class BaseV1ImageRbacTest(image_base.BaseV1ImageTest):
-
- @classmethod
- def skip_checks(cls):
- super(BaseV1ImageRbacTest, cls).skip_checks()
- if not CONF.patrole.enable_rbac:
- raise cls.skipException(
- "%s skipped as RBAC testing not enabled" % cls.__name__)
-
- @classmethod
- def setup_clients(cls):
- super(BaseV1ImageRbacTest, cls).setup_clients()
- cls.rbac_utils = rbac_utils.RbacUtils(cls)
-
-
class BaseV2ImageRbacTest(image_base.BaseV2ImageTest):
@classmethod
diff --git a/patrole_tempest_plugin/tests/api/network/test_ports_rbac.py b/patrole_tempest_plugin/tests/api/network/test_ports_rbac.py
index 2fb26f8..c55935f 100644
--- a/patrole_tempest_plugin/tests/api/network/test_ports_rbac.py
+++ b/patrole_tempest_plugin/tests/api/network/test_ports_rbac.py
@@ -106,9 +106,9 @@
self.create_port(**post_body)
@rbac_rule_validation.action(service="neutron",
- rule="create_port:fixed_ips")
+ rule="create_port:fixed_ips:ip_address")
@decorators.idempotent_id('2551e10d-006a-413c-925a-8c6f834c09ac')
- def test_create_port_fixed_ips(self):
+ def test_create_port_fixed_ips_ip_address(self):
ip_list = self._get_unused_ip_address()
fixed_ips = [{'ip_address': ip_list[0]},
@@ -269,9 +269,9 @@
mac_address=original_mac_address)
@rbac_rule_validation.action(service="neutron",
- rule="update_port:fixed_ips")
+ rule="update_port:fixed_ips:ip_address")
@decorators.idempotent_id('c091c825-532b-4c6f-a14f-affd3259c1c3')
- def test_update_port_fixed_ips(self):
+ def test_update_port_fixed_ips_ip_address(self):
# Pick an ip address within the allocation_pools range.
post_body = {'network': self.network}
diff --git a/patrole_tempest_plugin/tests/api/volume/test_qos_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_qos_rbac.py
index 3ac59be..adfd397 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_qos_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_qos_rbac.py
@@ -64,7 +64,8 @@
self.qos_client.show_qos(qos['id'])['qos_specs']
@rbac_rule_validation.action(service="cinder",
- rule="volume_extension:qos_specs_manage:get")
+ rule="volume_extension:"
+ "qos_specs_manage:get_all")
@decorators.idempotent_id('ff1e98f3-d456-40a9-96d4-c7e4a55dcffa')
def test_get_association_qos(self):
qos = self._create_test_qos_specs()
diff --git a/patrole_tempest_plugin/tests/api/volume/test_snapshots_actions_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_snapshots_actions_rbac.py
index 96243d8..f7a4151 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_snapshots_actions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_snapshots_actions_rbac.py
@@ -13,6 +13,7 @@
# License for the specific language governing permissions and limitations
# under the License.
+from tempest.common import waiters
from tempest import config
from tempest.lib import decorators
@@ -37,15 +38,26 @@
cls.snapshot = cls.create_snapshot(volume_id=cls.volume['id'])
cls.snapshot_id = cls.snapshot['id']
+ def tearDown(self):
+ # Set snapshot's status to available after test
+ status = 'available'
+ self.snapshots_client.reset_snapshot_status(self.snapshot_id,
+ status)
+ waiters.wait_for_volume_resource_status(self.snapshots_client,
+ self.snapshot_id, status)
+ super(SnapshotsActionsV3RbacTest, self).tearDown()
+
@rbac_rule_validation.action(
service="cinder",
rule="volume_extension:snapshot_admin_actions:reset_status")
@decorators.idempotent_id('ea430145-34ef-408d-b678-95d5ae5f46eb')
def test_reset_snapshot_status(self):
status = 'error'
- self.rbac_utils.switch_role(self, toggle_rbac_role=True)
- self.snapshots_client.reset_snapshot_status(self.snapshot['id'],
- status)
+ with self.rbac_utils.override_role(self):
+ self.snapshots_client.reset_snapshot_status(
+ self.snapshot['id'], status)
+ waiters.wait_for_volume_resource_status(
+ self.snapshots_client, self.snapshot['id'], status)
@rbac_rule_validation.action(
service="cinder",
@@ -57,3 +69,19 @@
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.snapshots_client.force_delete_snapshot(temp_snapshot['id'])
self.snapshots_client.wait_for_resource_deletion(temp_snapshot['id'])
+
+ @decorators.idempotent_id('a95eab2a-c441-4609-9235-f7478627da88')
+ @rbac_rule_validation.action(
+ service="cinder",
+ rule="snapshot_extension:snapshot_actions:update_snapshot_status")
+ def test_update_snapshot_status(self):
+ status = 'creating'
+ self.snapshots_client.reset_snapshot_status(
+ self.snapshot['id'], status)
+ waiters.wait_for_volume_resource_status(self.snapshots_client,
+ self.snapshot['id'], status)
+ with self.rbac_utils.override_role(self):
+ self.snapshots_client.update_snapshot_status(self.snapshot['id'],
+ status="creating")
+ waiters.wait_for_volume_resource_status(
+ self.snapshots_client, self.snapshot['id'], status)
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volume_hosts_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volume_hosts_rbac.py
index 726f84e..9519cea 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volume_hosts_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volume_hosts_rbac.py
@@ -28,7 +28,6 @@
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.volume_hosts_client.list_hosts()
- @decorators.skip_because(bug="1732808")
@decorators.idempotent_id('9ddf321e-788f-4787-b8cc-dfa59e264143')
@rbac_rule_validation.action(service="cinder",
rule="volume_extension:hosts")
diff --git a/patrole_tempest_plugin/tests/api/volume/test_volume_transfers_rbac.py b/patrole_tempest_plugin/tests/api/volume/test_volume_transfers_rbac.py
index 9640dc6..a33ebe0 100644
--- a/patrole_tempest_plugin/tests/api/volume/test_volume_transfers_rbac.py
+++ b/patrole_tempest_plugin/tests/api/volume/test_volume_transfers_rbac.py
@@ -72,6 +72,13 @@
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.transfers_client.list_volume_transfers()
+ @decorators.idempotent_id('e84e45b0-9872-40bf-bf44-971266161a86')
+ @rbac_rule_validation.action(service="cinder",
+ rule="volume:get_all_transfers")
+ def test_list_volume_transfers_details(self):
+ with self.rbac_utils.override_role(self):
+ self.transfers_client.list_volume_transfers(detail=True)
+
@rbac_rule_validation.action(service="cinder",
rule="volume:accept_transfer")
@decorators.idempotent_id('987f2a11-d657-4984-a6c9-28f06c1cd014')