Merge "Migrate to override_role for compute module (part 3)"
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
index 6a26f2b..8393696 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_auth_rbac.py
@@ -34,12 +34,12 @@
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_auth_projects")
     def test_list_auth_projects(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.identity_client.list_auth_projects()['projects']
+        with self.rbac_utils.override_role(self):
+            self.identity_client.list_auth_projects()
 
     @decorators.idempotent_id('6a40af0d-7265-4657-b6b2-87a2828e263e')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_auth_domains")
     def test_list_auth_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.identity_client.list_auth_domains()
+        with self.rbac_utils.override_role(self):
+            self.identity_client.list_auth_domains()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
index 995c3b0..af6feb6 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_credentials_rbac.py
@@ -34,8 +34,8 @@
     def test_create_credential(self):
         project = self.setup_test_project()
         user = self.setup_test_user(project_id=project['id'])
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_credential(user=user)
+        with self.rbac_utils.override_role(self):
+            self.setup_test_credential(user=user)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_credential")
@@ -45,13 +45,13 @@
         new_keys = [data_utils.rand_uuid_hex(),
                     data_utils.rand_uuid_hex()]
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.creds_client.update_credential(
-            credential['id'],
-            credential=credential,
-            access_key=new_keys[0],
-            secret_key=new_keys[1],
-            project_id=credential['project_id'])['credential']
+        with self.rbac_utils.override_role(self):
+            self.creds_client.update_credential(
+                credential['id'],
+                credential=credential,
+                access_key=new_keys[0],
+                secret_key=new_keys[1],
+                project_id=credential['project_id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_credential")
@@ -59,8 +59,8 @@
     def test_delete_credential(self):
         credential = self._create_user_project_and_credential()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.creds_client.delete_credential(credential['id'])
+        with self.rbac_utils.override_role(self):
+            self.creds_client.delete_credential(credential['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_credential")
@@ -68,12 +68,12 @@
     def test_show_credential(self):
         credential = self._create_user_project_and_credential()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.creds_client.show_credential(credential['id'])
+        with self.rbac_utils.override_role(self):
+            self.creds_client.show_credential(credential['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_credentials")
     @decorators.idempotent_id('3de303e2-12a7-4811-805a-f18906472038')
     def test_list_credentials(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.creds_client.list_credentials()
+        with self.rbac_utils.override_role(self):
+            self.creds_client.list_credentials()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_domain_configuration_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_domain_configuration_rbac.py
index 31f962a..8db8906 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_domain_configuration_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_domain_configuration_rbac.py
@@ -56,31 +56,31 @@
                                  rule="identity:create_domain_config")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd115')
     def test_create_domain_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self._create_domain_config(self.domain_id)
+        with self.rbac_utils.override_role(self):
+            self._create_domain_config(self.domain_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd118')
     def test_show_domain_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_domain_config(self.domain_id)['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_domain_config(self.domain_id)
 
     @decorators.idempotent_id('1b539f95-4991-4e09-960f-fa771e1007d7')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config")
     def test_show_domain_group_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_domain_group_config(
-            self.domain_id, 'identity')['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_domain_group_config(
+                self.domain_id, 'identity')
 
     @decorators.idempotent_id('590c774d-a294-44f8-866e-aac9f4ab3809')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config")
     def test_show_domain_group_option_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_domain_group_option_config(
-            self.domain_id, 'identity', 'driver')['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_domain_group_option_config(
+                self.domain_id, 'identity', 'driver')
 
     @decorators.idempotent_id('21053885-1ce3-4167-b5e3-e470253481da')
     @rbac_rule_validation.action(
@@ -89,77 +89,76 @@
     def test_show_security_compliance_domain_config(self):
         # The "security_compliance" group can only be shown for the default
         # domain.
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_domain_group_config(
-            CONF.identity.default_domain_id, 'security_compliance')
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_domain_group_config(
+                CONF.identity.default_domain_id, 'security_compliance')
 
     @decorators.idempotent_id('d1addd10-9ae4-4360-9961-47324fd22f23')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config_default")
     def test_show_default_config_settings(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_default_config_settings()['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_default_config_settings()
 
     @decorators.idempotent_id('63183377-251f-4622-81f0-6b58a8a285c9')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config_default")
     def test_show_default_group_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_default_group_config('identity')[
-            'config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_default_group_config('identity')
 
     @decorators.idempotent_id('6440e9c1-e8da-474d-9118-89996fffe5f8')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain_config_default")
     def test_show_default_group_option(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.show_default_group_option('identity',
-                                                            'driver')['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.show_default_group_option('identity',
+                                                                'driver')
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_domain_config")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd116')
     def test_update_domain_config(self):
         updated_config = {'ldap': {'url': data_utils.rand_url()}}
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.update_domain_config(
-            self.domain_id, **updated_config)['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.update_domain_config(
+                self.domain_id, **updated_config)
 
     @decorators.idempotent_id('6e32bf96-dbe9-4ac8-b814-0e79fa948285')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_domain_config")
     def test_update_domain_group_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.update_domain_group_config(
-            self.domain_id, 'identity', identity=self.identity)['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.update_domain_group_config(
+                self.domain_id, 'identity', identity=self.identity)
 
     @decorators.idempotent_id('d2c510da-a077-4c67-9522-27745ef2812b')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_domain_config")
     def test_update_domain_group_option_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.update_domain_group_option_config(
-            self.domain_id, 'identity', 'driver', driver='ldap')['config']
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.update_domain_group_option_config(
+                self.domain_id, 'identity', 'driver', driver='ldap')
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_domain_config")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd117')
     def test_delete_domain_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.delete_domain_config(self.domain_id)
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.delete_domain_config(self.domain_id)
 
     @decorators.idempotent_id('f479694b-df02-4d5a-88b6-c8b52f9341eb')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_domain_config")
     def test_delete_domain_group_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.delete_domain_group_config(self.domain_id,
-                                                             'identity')
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.delete_domain_group_config(
+                self.domain_id, 'identity')
 
     @decorators.idempotent_id('f594bde3-31c9-414f-922d-0ddafdc0ca40')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_domain_config")
     def test_delete_domain_group_option_config(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domain_config_client.delete_domain_group_option_config(
-            self.domain_id, 'identity', 'driver')
+        with self.rbac_utils.override_role(self):
+            self.domain_config_client.delete_domain_group_option_config(
+                self.domain_id, 'identity', 'driver')
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
index a8cd022..3837051 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_domains_rbac.py
@@ -26,8 +26,8 @@
                                  rule="identity:create_domain")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd110')
     def test_create_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_domain()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_domain()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_domain")
@@ -36,10 +36,10 @@
         domain = self.setup_test_domain()
         new_domain_name = data_utils.rand_name(
             self.__class__.__name__ + '-test_update_domain')
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domains_client.update_domain(domain['id'],
-                                          domain=domain,
-                                          name=new_domain_name)
+        with self.rbac_utils.override_role(self):
+            self.domains_client.update_domain(domain['id'],
+                                              domain=domain,
+                                              name=new_domain_name)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_domain")
@@ -50,20 +50,20 @@
         self.domains_client.update_domain(domain['id'],
                                           domain=domain,
                                           enabled=False)
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domains_client.delete_domain(domain['id'])
+        with self.rbac_utils.override_role(self):
+            self.domains_client.delete_domain(domain['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_domain")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd113')
     def test_show_domain(self):
         domain = self.setup_test_domain()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domains_client.show_domain(domain['id'])
+        with self.rbac_utils.override_role(self):
+            self.domains_client.show_domain(domain['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_domains")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd114')
     def test_list_domains(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.domains_client.list_domains()
+        with self.rbac_utils.override_role(self):
+            self.domains_client.list_domains()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_endpoints_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_endpoints_rbac.py
index 2659bae..ad1fd9b 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_endpoints_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_endpoints_rbac.py
@@ -27,8 +27,8 @@
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd127')
     def test_create_endpoint(self):
         service = self.setup_test_service()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_endpoint(service=service)
+        with self.rbac_utils.override_role(self):
+            self.setup_test_endpoint(service=service)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_endpoint")
@@ -37,10 +37,10 @@
         endpoint = self.setup_test_endpoint()
         new_url = data_utils.rand_url()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoints_client.update_endpoint(
-            endpoint["id"],
-            url=new_url)
+        with self.rbac_utils.override_role(self):
+            self.endpoints_client.update_endpoint(
+                endpoint["id"],
+                url=new_url)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_endpoint")
@@ -48,8 +48,8 @@
     def test_delete_endpoint(self):
         endpoint = self.setup_test_endpoint()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoints_client.delete_endpoint(endpoint['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoints_client.delete_endpoint(endpoint['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_endpoint")
@@ -57,12 +57,12 @@
     def test_show_endpoint(self):
         endpoint = self.setup_test_endpoint()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoints_client.show_endpoint(endpoint['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoints_client.show_endpoint(endpoint['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_endpoints")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd131')
     def test_list_endpoints(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoints_client.list_endpoints()
+        with self.rbac_utils.override_role(self):
+            self.endpoints_client.list_endpoints()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_groups_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_groups_rbac.py
index 00c9f55..6e58289 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_groups_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_groups_rbac.py
@@ -61,31 +61,31 @@
                                  rule="identity:create_endpoint_group")
     @decorators.idempotent_id('b4765906-52ec-477b-b441-a8508ced68e3')
     def test_create_endpoint_group(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self._create_endpoint_group(ignore_not_found=True)
+        with self.rbac_utils.override_role(self):
+            self._create_endpoint_group(ignore_not_found=True)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_endpoint_groups")
     @decorators.idempotent_id('089aa3a7-ba1f-4f70-a1cf-f298a845058a')
     def test_list_endpoint_groups(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_groups_client.list_endpoint_groups()['endpoint_groups']
+        with self.rbac_utils.override_role(self):
+            self.endpoint_groups_client.list_endpoint_groups()
 
     @decorators.idempotent_id('5c16368d-1485-4c28-9803-db3fa3510623')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_endpoint_group")
     def test_check_endpoint_group(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_groups_client.check_endpoint_group(
-            self.endpoint_group_id)
+        with self.rbac_utils.override_role(self):
+            self.endpoint_groups_client.check_endpoint_group(
+                self.endpoint_group_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_endpoint_group")
     @decorators.idempotent_id('bd2b6fb8-661f-4255-84b2-50fea4a1dc61')
     def test_show_endpoint_group(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_groups_client.show_endpoint_group(
-            self.endpoint_group_id)['endpoint_group']
+        with self.rbac_utils.override_role(self):
+            self.endpoint_groups_client.show_endpoint_group(
+                self.endpoint_group_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_endpoint_group")
@@ -94,9 +94,9 @@
         updated_name = data_utils.rand_name(
             self.__class__.__name__ + '-EPFilterGroup')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_groups_client.update_endpoint_group(
-            self.endpoint_group_id, name=updated_name)['endpoint_group']
+        with self.rbac_utils.override_role(self):
+            self.endpoint_groups_client.update_endpoint_group(
+                self.endpoint_group_id, name=updated_name)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_endpoint_group")
@@ -104,5 +104,6 @@
     def test_delete_endpoint_group(self):
         endpoint_group_id = self._create_endpoint_group(ignore_not_found=True)
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_groups_client.delete_endpoint_group(endpoint_group_id)
+        with self.rbac_utils.override_role(self):
+            self.endpoint_groups_client.delete_endpoint_group(
+                endpoint_group_id)
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_projects_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_projects_rbac.py
index 7a4f2d7..1045b9b 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_projects_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_ep_filter_projects_rbac.py
@@ -48,17 +48,17 @@
     @decorators.idempotent_id('9199ec13-816d-4efe-b8b1-e1cd026b9747')
     def test_add_endpoint_to_project(self):
         # Adding endpoints to projects
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self._add_endpoint_to_project(ignore_not_found=True)
+        with self.rbac_utils.override_role(self):
+            self._add_endpoint_to_project(ignore_not_found=True)
 
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:list_projects_for_endpoint")
     @decorators.idempotent_id('f53dca42-ec8a-48e9-924b-0bbe6c99727f')
     def test_list_projects_for_endpoint(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_filter_client.list_projects_for_endpoint(
-            self.endpoint['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoint_filter_client.list_projects_for_endpoint(
+                self.endpoint['id'])
 
     @rbac_rule_validation.action(
         service="keystone",
@@ -66,18 +66,18 @@
     @decorators.idempotent_id('0c1425eb-833c-4aa1-a21d-52ffa41fdc6a')
     def test_check_endpoint_in_project(self):
         self._add_endpoint_to_project()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_filter_client.check_endpoint_in_project(
-            self.project['id'], self.endpoint['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoint_filter_client.check_endpoint_in_project(
+                self.project['id'], self.endpoint['id'])
 
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:list_endpoints_for_project")
     @decorators.idempotent_id('5d86c659-c6ad-41e0-854e-3823e95c7cc2')
     def test_list_endpoints_in_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_filter_client.list_endpoints_in_project(
-            self.project['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoint_filter_client.list_endpoints_in_project(
+                self.project['id'])
 
     @rbac_rule_validation.action(
         service="keystone",
@@ -85,6 +85,6 @@
     @decorators.idempotent_id('b4e21c10-4f47-427b-9b8a-f5b5601adfda')
     def test_remove_endpoint_from_project(self):
         self._add_endpoint_to_project(ignore_not_found=True)
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.endpoint_filter_client.delete_endpoint_from_project(
-            self.project['id'], self.endpoint['id'])
+        with self.rbac_utils.override_role(self):
+            self.endpoint_filter_client.delete_endpoint_from_project(
+                self.project['id'], self.endpoint['id'])
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_groups_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_groups_rbac.py
index 0fc29b7..06148d9 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_groups_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_groups_rbac.py
@@ -33,8 +33,8 @@
                                  rule="identity:create_group")
     @decorators.idempotent_id('88377f51-9074-4d64-a22f-f8931d048c9a')
     def test_create_group(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_group()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_group()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_group")
@@ -44,9 +44,8 @@
         new_group_name = data_utils.rand_name(
             self.__class__.__name__ + '-group')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.update_group(group['id'],
-                                        name=new_group_name)
+        with self.rbac_utils.override_role(self):
+            self.groups_client.update_group(group['id'], name=new_group_name)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_group")
@@ -54,8 +53,8 @@
     def test_delete_group(self):
         group = self.setup_test_group()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.delete_group(group['id'])
+        with self.rbac_utils.override_role(self):
+            self.groups_client.delete_group(group['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_group")
@@ -63,15 +62,15 @@
     def test_show_group(self):
         group = self.setup_test_group()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.show_group(group['id'])
+        with self.rbac_utils.override_role(self):
+            self.groups_client.show_group(group['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_groups")
     @decorators.idempotent_id('c4d0f76b-735f-4fd0-868b-0006bc420ff4')
     def test_list_groups(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.list_groups()
+        with self.rbac_utils.override_role(self):
+            self.groups_client.list_groups()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:add_user_to_group")
@@ -80,8 +79,8 @@
         group = self.setup_test_group()
         user = self.setup_test_user()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.add_group_user(group['id'], user['id'])
+        with self.rbac_utils.override_role(self):
+            self.groups_client.add_group_user(group['id'], user['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:remove_user_from_group")
@@ -89,8 +88,8 @@
     def test_remove_user_group(self):
         group_id, user_id = self._create_user_and_add_to_new_group()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.delete_group_user(group_id, user_id)
+        with self.rbac_utils.override_role(self):
+            self.groups_client.delete_group_user(group_id, user_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_users_in_group")
@@ -98,8 +97,8 @@
     def test_list_user_group(self):
         group = self.setup_test_group()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.list_group_users(group['id'])
+        with self.rbac_utils.override_role(self):
+            self.groups_client.list_group_users(group['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:check_user_in_group")
@@ -107,5 +106,5 @@
     def test_check_user_group(self):
         group_id, user_id = self._create_user_and_add_to_new_group()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.groups_client.check_group_user_existence(group_id, user_id)
+        with self.rbac_utils.override_role(self):
+            self.groups_client.check_group_user_existence(group_id, user_id)
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
index d3e17f1..f591e15 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_consumers_rbac.py
@@ -37,8 +37,8 @@
                                  rule="identity:create_consumer")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d970')
     def test_create_consumer(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self._create_consumer()
+        with self.rbac_utils.override_role(self):
+            self._create_consumer()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_consumer")
@@ -46,8 +46,8 @@
     def test_delete_consumer(self):
         consumer = self._create_consumer()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.consumers_client.delete_consumer(consumer['id'])
+        with self.rbac_utils.override_role(self):
+            self.consumers_client.delete_consumer(consumer['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_consumer")
@@ -57,9 +57,9 @@
         updated_description = data_utils.rand_name(
             self.__class__.__name__ + '-IdentityConsumer')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.consumers_client.update_consumer(consumer['id'],
-                                              updated_description)
+        with self.rbac_utils.override_role(self):
+            self.consumers_client.update_consumer(consumer['id'],
+                                                  updated_description)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_consumer")
@@ -67,12 +67,12 @@
     def test_show_consumer(self):
         consumer = self._create_consumer()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.consumers_client.show_consumer(consumer['id'])
+        with self.rbac_utils.override_role(self):
+            self.consumers_client.show_consumer(consumer['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_consumers")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d975')
     def test_list_consumers(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.consumers_client.list_consumers()
+        with self.rbac_utils.override_role(self):
+            self.consumers_client.list_consumers()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_tokens_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_tokens_rbac.py
index 0853d12..13731d5 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_tokens_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_oauth_tokens_rbac.py
@@ -85,10 +85,10 @@
     def test_authorize_request_token(self):
         _, request_token = self._create_consumer_and_request_token()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.authorize_request_token(
-            request_token['oauth_token'],
-            self.role_ids)
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.authorize_request_token(
+                request_token['oauth_token'],
+                self.role_ids)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_access_token")
@@ -96,9 +96,9 @@
     def test_get_access_token(self):
         access_token = self._create_access_token()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.get_access_token(self.user_id,
-                                                 access_token)
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.get_access_token(self.user_id,
+                                                     access_token)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_access_token_role")
@@ -106,16 +106,16 @@
     def test_get_access_token_role(self):
         access_token = self._create_access_token()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.get_access_token_role(
-            self.user_id, access_token, self.role_ids[0])
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.get_access_token_role(
+                self.user_id, access_token, self.role_ids[0])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_access_tokens")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d979')
     def test_list_access_tokens(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.list_access_tokens(self.user_id)
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.list_access_tokens(self.user_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_access_token_roles")
@@ -123,9 +123,9 @@
     def test_list_access_token_roles(self):
         access_token = self._create_access_token()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.list_access_token_roles(
-            self.user_id, access_token)
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.list_access_token_roles(
+                self.user_id, access_token)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_access_token")
@@ -133,6 +133,6 @@
     def test_revoke_access_token(self):
         access_token = self._create_access_token()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.oauth_token_client.revoke_access_token(
-            self.user_id, access_token)
+        with self.rbac_utils.override_role(self):
+            self.oauth_token_client.revoke_access_token(
+                self.user_id, access_token)
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_policies_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_policies_rbac.py
index 3e03ac0..a8c10ca 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_policies_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_policies_rbac.py
@@ -26,8 +26,8 @@
                                  rule="identity:create_policy")
     @decorators.idempotent_id('de2f7ecb-fbf0-41f3-abf4-b97b5e082fd5')
     def test_create_policy(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_policy()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_policy()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_policy")
@@ -37,9 +37,9 @@
         updated_policy_type = data_utils.rand_name(
             self.__class__.__name__ + '-policy_type')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.policies_client.update_policy(policy['id'],
-                                           type=updated_policy_type)
+        with self.rbac_utils.override_role(self):
+            self.policies_client.update_policy(policy['id'],
+                                               type=updated_policy_type)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_policy")
@@ -47,8 +47,8 @@
     def test_delete_policy(self):
         policy = self.setup_test_policy()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.policies_client.delete_policy(policy['id'])
+        with self.rbac_utils.override_role(self):
+            self.policies_client.delete_policy(policy['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_policy")
@@ -56,12 +56,12 @@
     def test_show_policy(self):
         policy = self.setup_test_policy()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.policies_client.show_policy(policy['id'])
+        with self.rbac_utils.override_role(self):
+            self.policies_client.show_policy(policy['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_policies")
     @decorators.idempotent_id('35a56161-4054-4237-8a78-7ce805dce202')
     def test_list_policies(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.policies_client.list_policies()['policies']
+        with self.rbac_utils.override_role(self):
+            self.policies_client.list_policies()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
index 51086ae..0b394b4 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_projects_rbac.py
@@ -26,8 +26,8 @@
                                  rule="identity:create_project")
     @decorators.idempotent_id('0f148510-63bf-11e6-1564-080044d0d904')
     def test_create_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_project()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_project()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_project")
@@ -37,9 +37,9 @@
         new_desc = data_utils.rand_name(
             self.__class__.__name__ + '-description')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.projects_client.update_project(project['id'],
-                                            description=new_desc)
+        with self.rbac_utils.override_role(self):
+            self.projects_client.update_project(project['id'],
+                                                description=new_desc)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_project")
@@ -47,8 +47,8 @@
     def test_delete_project(self):
         project = self.setup_test_project()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.projects_client.delete_project(project['id'])
+        with self.rbac_utils.override_role(self):
+            self.projects_client.delete_project(project['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_project")
@@ -56,12 +56,12 @@
     def test_show_project(self):
         project = self.setup_test_project()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.projects_client.show_project(project['id'])
+        with self.rbac_utils.override_role(self):
+            self.projects_client.show_project(project['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_projects")
     @decorators.idempotent_id('0f148510-63bf-11e6-1564-080044d0d908')
     def test_list_projects(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.projects_client.list_projects()
+        with self.rbac_utils.override_role(self):
+            self.projects_client.list_projects()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_regions_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_regions_rbac.py
index 55a2f77..14b9de5 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_regions_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_regions_rbac.py
@@ -26,8 +26,8 @@
                                  rule="identity:create_region")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd119')
     def test_create_region(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_region()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_region()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_region")
@@ -37,9 +37,9 @@
         new_description = data_utils.rand_name(
             self.__class__.__name__ + '-test_update_region')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.regions_client.update_region(region['id'],
-                                          description=new_description)
+        with self.rbac_utils.override_role(self):
+            self.regions_client.update_region(region['id'],
+                                              description=new_description)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_region")
@@ -47,8 +47,8 @@
     def test_delete_region(self):
         region = self.setup_test_region()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.regions_client.delete_region(region['id'])
+        with self.rbac_utils.override_role(self):
+            self.regions_client.delete_region(region['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_region")
@@ -56,12 +56,12 @@
     def test_show_region(self):
         region = self.setup_test_region()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.regions_client.show_region(region['id'])
+        with self.rbac_utils.override_role(self):
+            self.regions_client.show_region(region['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_regions")
     @decorators.idempotent_id('6bdaecd4-0843-4ed6-ab64-3a57ab0cd123')
     def test_list_regions(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.regions_client.list_regions()
+        with self.rbac_utils.override_role(self):
+            self.regions_client.list_regions()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_role_assignments_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_role_assignments_rbac.py
index c1d0369..90cf255 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_role_assignments_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_role_assignments_rbac.py
@@ -25,9 +25,8 @@
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_role_assignments")
     def test_list_role_assignments(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.role_assignments_client.\
-            list_role_assignments()['role_assignments']
+        with self.rbac_utils.override_role(self):
+            self.role_assignments_client.list_role_assignments()
 
     @decorators.idempotent_id('36c7a990-857e-415c-8717-38d7200a9894')
     @rbac_rule_validation.action(
@@ -36,7 +35,7 @@
     def test_list_role_assignments_for_tree(self):
         project = self.setup_test_project()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.role_assignments_client.list_role_assignments(
-            include_subtree=True,
-            **{'scope.project.id': project['id']})['role_assignments']
+        with self.rbac_utils.override_role(self):
+            self.role_assignments_client.list_role_assignments(
+                include_subtree=True,
+                **{'scope.project.id': project['id']})
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_roles_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_roles_rbac.py
index 22b03f5..099c702 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_roles_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_roles_rbac.py
@@ -37,8 +37,8 @@
                                  rule="identity:create_role")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d904')
     def test_create_role(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_role()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_role()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_role")
@@ -47,9 +47,9 @@
         new_role_name = data_utils.rand_name(
             self.__class__.__name__ + '-test_update_role')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.update_role(self.role['id'],
-                                      name=new_role_name)
+        with self.rbac_utils.override_role(self):
+            self.roles_client.update_role(self.role['id'],
+                                          name=new_role_name)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_role")
@@ -57,32 +57,32 @@
     def test_delete_role(self):
         role = self.setup_test_role()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role(role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role(role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_role")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d907')
     def test_show_role(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.show_role(self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.show_role(self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_roles")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d908')
     def test_list_roles(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_roles()
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_roles()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:create_grant")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d909')
     def test_create_user_role_on_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.create_user_role_on_project(
-            self.project['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.create_user_role_on_project(
+                self.project['id'],
+                self.user['id'],
+                self.role['id'])
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.roles_client.delete_role_from_user_on_project,
                         self.project['id'],
@@ -93,11 +93,11 @@
                                  rule="identity:create_grant")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d90c')
     def test_create_group_role_on_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.create_group_role_on_project(
-            self.project['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.create_group_role_on_project(
+                self.project['id'],
+                self.group['id'],
+                self.role['id'])
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.roles_client.delete_role_from_group_on_project,
                         self.project['id'],
@@ -108,11 +108,11 @@
                                  rule="identity:create_grant")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d90f')
     def test_create_user_role_on_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.create_user_role_on_domain(
-            self.domain['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.create_user_role_on_domain(
+                self.domain['id'],
+                self.user['id'],
+                self.role['id'])
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.roles_client.delete_role_from_user_on_domain,
                         self.domain['id'],
@@ -123,11 +123,11 @@
                                  rule="identity:create_grant")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d912')
     def test_create_group_role_on_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.create_group_role_on_domain(
-            self.domain['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.create_group_role_on_domain(
+                self.domain['id'],
+                self.group['id'],
+                self.role['id'])
         self.addCleanup(test_utils.call_and_ignore_notfound_exc,
                         self.roles_client.delete_role_from_group_on_domain,
                         self.domain['id'],
@@ -148,11 +148,11 @@
                         self.user['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.check_user_role_existence_on_project(
-            self.project['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.check_user_role_existence_on_project(
+                self.project['id'],
+                self.user['id'],
+                self.role['id'])
 
     @decorators.idempotent_id('92f8e67d-85bf-407d-9814-edd5664abc47')
     @rbac_rule_validation.action(service="keystone",
@@ -168,11 +168,11 @@
                         self.user['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.check_user_role_existence_on_domain(
-            self.domain['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.check_user_role_existence_on_domain(
+                self.domain['id'],
+                self.user['id'],
+                self.role['id'])
 
     @decorators.idempotent_id('8738d3d2-8c84-4423-b36c-7c59eaa08b73')
     @rbac_rule_validation.action(service="keystone",
@@ -188,11 +188,11 @@
                         self.group['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.check_role_from_group_on_project_existence(
-            self.project['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.check_role_from_group_on_project_existence(
+                self.project['id'],
+                self.group['id'],
+                self.role['id'])
 
     @decorators.idempotent_id('e7d73bd0-cf5e-4c0c-9c93-cf53e23232d6')
     @rbac_rule_validation.action(service="keystone",
@@ -208,11 +208,11 @@
                         self.group['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.check_role_from_group_on_domain_existence(
-            self.domain['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.check_role_from_group_on_domain_existence(
+                self.domain['id'],
+                self.group['id'],
+                self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:revoke_grant")
@@ -228,11 +228,11 @@
                         self.user['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role_from_user_on_project(
-            self.project['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role_from_user_on_project(
+                self.project['id'],
+                self.user['id'],
+                self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:revoke_grant")
@@ -248,11 +248,11 @@
                         self.group['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role_from_group_on_project(
-            self.project['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role_from_group_on_project(
+                self.project['id'],
+                self.group['id'],
+                self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:revoke_grant")
@@ -268,11 +268,11 @@
                         self.user['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role_from_user_on_domain(
-            self.domain['id'],
-            self.user['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role_from_user_on_domain(
+                self.domain['id'],
+                self.user['id'],
+                self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:revoke_grant")
@@ -288,55 +288,55 @@
                         self.group['id'],
                         self.role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role_from_group_on_domain(
-            self.domain['id'],
-            self.group['id'],
-            self.role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role_from_group_on_domain(
+                self.domain['id'],
+                self.group['id'],
+                self.role['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_grants")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d90b')
     def test_list_user_roles_on_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_user_roles_on_project(
-            self.project['id'],
-            self.user['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_user_roles_on_project(
+                self.project['id'],
+                self.user['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_grants")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d90e')
     def test_list_group_roles_on_project(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_group_roles_on_project(
-            self.project['id'],
-            self.group['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_group_roles_on_project(
+                self.project['id'],
+                self.group['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_grants")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d911')
     def test_list_user_roles_on_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_user_roles_on_domain(
-            self.domain['id'],
-            self.user['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_user_roles_on_domain(
+                self.domain['id'],
+                self.user['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_grants")
     @decorators.idempotent_id('0f148510-63bf-11e6-1395-080044d0d914')
     def test_list_group_roles_on_domain(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_group_roles_on_domain(
-            self.domain['id'],
-            self.group['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_group_roles_on_domain(
+                self.domain['id'],
+                self.group['id'])
 
     @decorators.idempotent_id('2aef3eaa-8156-4962-a01d-c9bb0e499e15')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:create_implied_role")
     def test_create_role_inference_rule(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.create_role_inference_rule(
-            self.role['id'], self.implies_role['id'])['role_inference']
+        with self.rbac_utils.override_role(self):
+            self.roles_client.create_role_inference_rule(
+                self.role['id'], self.implies_role['id'])
         self.addCleanup(self.roles_client.delete_role_inference_rule,
                         self.role['id'], self.implies_role['id'])
 
@@ -349,17 +349,16 @@
         self.addCleanup(self.roles_client.delete_role_inference_rule,
                         self.role['id'], self.implies_role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.show_role_inference_rule(
-            self.role['id'], self.implies_role['id'])['role_inference']
+        with self.rbac_utils.override_role(self):
+            self.roles_client.show_role_inference_rule(
+                self.role['id'], self.implies_role['id'])
 
     @decorators.idempotent_id('f7bb39bf-0b06-468e-a8b0-60a4fb1f258d')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_implied_roles")
     def test_list_role_inferences_rules(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_role_inferences_rules(self.role['id'])[
-            'role_inference']
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_role_inferences_rules(self.role['id'])
 
     @decorators.idempotent_id('eca2d502-09bb-45cd-9773-bce2e7bcddd1')
     @rbac_rule_validation.action(service="keystone",
@@ -370,9 +369,9 @@
         self.addCleanup(self.roles_client.delete_role_inference_rule,
                         self.role['id'], self.implies_role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.check_role_inference_rule(
-            self.role['id'], self.implies_role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.check_role_inference_rule(
+                self.role['id'], self.implies_role['id'])
 
     @decorators.idempotent_id('13a5db1e-dd4a-4ca1-81ec-d5452aaaf54b')
     @rbac_rule_validation.action(service="keystone",
@@ -384,13 +383,13 @@
                         self.roles_client.delete_role_inference_rule,
                         self.role['id'], self.implies_role['id'])
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.delete_role_inference_rule(
-            self.role['id'], self.implies_role['id'])
+        with self.rbac_utils.override_role(self):
+            self.roles_client.delete_role_inference_rule(
+                self.role['id'], self.implies_role['id'])
 
     @decorators.idempotent_id('05869f2b-4dd4-425a-905e-eec9a6f06374')
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_role_inference_rules")
     def test_list_all_role_inference_rules(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.roles_client.list_all_role_inference_rules()['role_inferences']
+        with self.rbac_utils.override_role(self):
+            self.roles_client.list_all_role_inference_rules()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_services_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_services_rbac.py
index 44ce1a1..6ab17ff 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_services_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_services_rbac.py
@@ -26,8 +26,8 @@
                                  rule="identity:create_service")
     @decorators.idempotent_id('9a4bb317-f0bb-4005-8df0-4b672885b7c8')
     def test_create_service(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_service()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_service()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_service")
@@ -36,11 +36,11 @@
         service = self.setup_test_service()
         new_name = data_utils.rand_name(self.__class__.__name__ + '-service')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.services_client.update_service(service['id'],
-                                            service=service,
-                                            name=new_name,
-                                            type=service['type'])
+        with self.rbac_utils.override_role(self):
+            self.services_client.update_service(service['id'],
+                                                service=service,
+                                                name=new_name,
+                                                type=service['type'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_service")
@@ -48,8 +48,8 @@
     def test_delete_service(self):
         service = self.setup_test_service()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.services_client.delete_service(service['id'])
+        with self.rbac_utils.override_role(self):
+            self.services_client.delete_service(service['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_service")
@@ -57,12 +57,12 @@
     def test_show_service(self):
         service = self.setup_test_service()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.services_client.show_service(service['id'])
+        with self.rbac_utils.override_role(self):
+            self.services_client.show_service(service['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_services")
     @decorators.idempotent_id('706e6bea-3385-4718-919c-0b5121395806')
     def test_list_services(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.services_client.list_services()
+        with self.rbac_utils.override_role(self):
+            self.services_client.list_services()
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
index 18e5bf1..00d522c 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_negative_rbac.py
@@ -55,11 +55,11 @@
         # Explicit negative test for identity:validate_token policy action.
         # Assert expected exception is Forbidden and then reraise it.
         alt_token_id = self._setup_alt_token()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        e = self.assertRaises(lib_exc.Forbidden,
-                              self.identity_client.show_token,
-                              alt_token_id)
-        raise e
+        with self.rbac_utils.override_role(self):
+            e = self.assertRaises(lib_exc.Forbidden,
+                                  self.identity_client.show_token,
+                                  alt_token_id)
+            raise e
 
     @decorators.idempotent_id('2786a55d-a818-433a-af7a-41ebf72ab4da')
     @decorators.attr(type=['negative'])
@@ -74,11 +74,11 @@
         # Explicit negative test for identity:revoke_token policy action.
         # Assert expected exception is Forbidden and then reraise it.
         alt_token_id = self._setup_alt_token()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        e = self.assertRaises(lib_exc.Forbidden,
-                              self.identity_client.delete_token,
-                              alt_token_id)
-        raise e
+        with self.rbac_utils.override_role(self):
+            e = self.assertRaises(lib_exc.Forbidden,
+                                  self.identity_client.delete_token,
+                                  alt_token_id)
+            raise e
 
     @decorators.idempotent_id('1ea02ac0-9a96-44bd-bdc3-4dae3c10cc2e')
     @decorators.attr(type=['negative'])
@@ -93,8 +93,8 @@
         # Explicit negative test for identity:check_token policy action.
         # Assert expected exception is Forbidden and then reraise it.
         alt_token_id = self._setup_alt_token()
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        e = self.assertRaises(lib_exc.Forbidden,
-                              self.identity_client.check_token_existence,
-                              alt_token_id)
-        raise e
+        with self.rbac_utils.override_role(self):
+            e = self.assertRaises(lib_exc.Forbidden,
+                                  self.identity_client.check_token_existence,
+                                  alt_token_id)
+            raise e
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_rbac.py
index e6d0dd1..23ee768 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_tokens_rbac.py
@@ -37,8 +37,8 @@
         })
     def test_show_token(self):
         token_id = self.setup_test_token(self.user_id, self.password)
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.identity_client.show_token(token_id)
+        with self.rbac_utils.override_role(self):
+            self.identity_client.show_token(token_id)
 
     @decorators.idempotent_id('42a299db-fe0a-4ea0-9824-0bfd13155886')
     @rbac_rule_validation.action(
@@ -50,8 +50,8 @@
         })
     def test_delete_token(self):
         token_id = self.setup_test_token(self.user_id, self.password)
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.identity_client.delete_token(token_id)
+        with self.rbac_utils.override_role(self):
+            self.identity_client.delete_token(token_id)
 
     @decorators.idempotent_id('3554d218-8cd6-4730-a1b2-0e22f9b78f45')
     @rbac_rule_validation.action(
@@ -63,5 +63,5 @@
         })
     def test_check_token_exsitence(self):
         token_id = self.setup_test_token(self.user_id, self.password)
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.identity_client.check_token_existence(token_id)
+        with self.rbac_utils.override_role(self):
+            self.identity_client.check_token_existence(token_id)
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
index 3639520..91dbb53 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_trusts_rbac.py
@@ -70,9 +70,9 @@
             "trust.trustor_user_id": "os_primary.credentials.user_id"
         })
     def test_create_trust(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_trust(trustor_user_id=self.trustor_user_id,
-                              trustee_user_id=self.trustee_user_id)
+        with self.rbac_utils.override_role(self):
+            self.setup_test_trust(trustor_user_id=self.trustor_user_id,
+                                  trustee_user_id=self.trustee_user_id)
 
     @decorators.idempotent_id('bd72d22a-6e11-4840-bd93-17b382e7f0e0')
     @decorators.attr(type=['negative'])
@@ -85,11 +85,11 @@
     def test_create_trust_negative(self):
         # Explicit negative test for identity:create_trust policy action.
         # Assert expected exception is Forbidden and then reraise it.
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        e = self.assertRaises(lib_exc.Forbidden, self.setup_test_trust,
-                              trustor_user_id=self.unauthorized_user_id,
-                              trustee_user_id=self.trustee_user_id)
-        raise e
+        with self.rbac_utils.override_role(self):
+            e = self.assertRaises(lib_exc.Forbidden, self.setup_test_trust,
+                                  trustor_user_id=self.unauthorized_user_id,
+                                  trustee_user_id=self.trustee_user_id)
+            raise e
 
     @decorators.idempotent_id('d9a6fd06-08f6-462c-a86c-ce009adf1230')
     @rbac_rule_validation.action(
@@ -99,39 +99,39 @@
         trust = self.setup_test_trust(trustor_user_id=self.trustor_user_id,
                                       trustee_user_id=self.trustee_user_id)
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.trusts_client.delete_trust(trust['id'])
+        with self.rbac_utils.override_role(self):
+            self.trusts_client.delete_trust(trust['id'])
 
     @decorators.idempotent_id('f2e32896-bf66-4f4e-89cf-e7fba0ef1f38')
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:list_trusts")
     def test_list_trusts(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.trusts_client.list_trusts(
-            trustor_user_id=self.trustor_user_id)['trusts']
+        with self.rbac_utils.override_role(self):
+            self.trusts_client.list_trusts(
+                trustor_user_id=self.trustor_user_id)
 
     @decorators.idempotent_id('3c9ff92f-a73e-4f9b-8865-e017f38c70f5')
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:list_roles_for_trust")
     def test_list_roles_for_trust(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.trusts_client.list_trust_roles(self.trust['id'])['roles']
+        with self.rbac_utils.override_role(self):
+            self.trusts_client.list_trust_roles(self.trust['id'])
 
     @decorators.idempotent_id('3bb4f97b-cecd-4c7d-ad10-b88ee6c5d573')
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:get_role_for_trust")
     def test_show_trust_role(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.trusts_client.show_trust_role(
-            self.trust['id'], self.delegated_role_id)['role']
+        with self.rbac_utils.override_role(self):
+            self.trusts_client.show_trust_role(
+                self.trust['id'], self.delegated_role_id)
 
     @decorators.idempotent_id('0184e0fb-641e-4b52-ab73-81c1ce6ca5c1')
     @rbac_rule_validation.action(
         service="keystone",
         rule="identity:get_trust")
     def test_show_trust(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.trusts_client.show_trust(self.trust['id'])
+        with self.rbac_utils.override_role(self):
+            self.trusts_client.show_trust(self.trust['id'])
diff --git a/patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py b/patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py
index 5812f9e..bd97535 100644
--- a/patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py
+++ b/patrole_tempest_plugin/tests/api/identity/v3/test_users_rbac.py
@@ -31,8 +31,8 @@
                                  rule="identity:create_user")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d904')
     def test_create_user(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.setup_test_user()
+        with self.rbac_utils.override_role(self):
+            self.setup_test_user()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:update_user")
@@ -42,10 +42,10 @@
         new_email = data_utils.rand_name(
             self.__class__.__name__ + '-user_email')
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.update_user(user['id'],
-                                      name=user['name'],
-                                      email=new_email)
+        with self.rbac_utils.override_role(self):
+            self.users_client.update_user(user['id'],
+                                          name=user['name'],
+                                          email=new_email)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:delete_user")
@@ -53,33 +53,33 @@
     def test_delete_user(self):
         user = self.setup_test_user()
 
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.delete_user(user['id'])
+        with self.rbac_utils.override_role(self):
+            self.users_client.delete_user(user['id'])
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_users")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d907')
     def test_list_users(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.list_users()
+        with self.rbac_utils.override_role(self):
+            self.users_client.list_users()
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:get_user")
     @decorators.idempotent_id('0f148510-63bf-11e6-4522-080044d0d908')
     def test_show_own_user(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.show_user(self.default_user_id)
+        with self.rbac_utils.override_role(self):
+            self.users_client.show_user(self.default_user_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_groups_for_user")
     @decorators.idempotent_id('bd5946d4-46d2-423d-a800-a3e7aabc18b3')
     def test_list_own_user_group(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.list_user_groups(self.default_user_id)
+        with self.rbac_utils.override_role(self):
+            self.users_client.list_user_groups(self.default_user_id)
 
     @rbac_rule_validation.action(service="keystone",
                                  rule="identity:list_user_projects")
     @decorators.idempotent_id('0f148510-63bf-11e6-1564-080044d0d909')
     def test_list_own_user_projects(self):
-        self.rbac_utils.switch_role(self, toggle_rbac_role=True)
-        self.users_client.list_user_projects(self.default_user_id)
+        with self.rbac_utils.override_role(self):
+            self.users_client.list_user_projects(self.default_user_id)