Merge "Clean up test_admin_password_rbac"
diff --git a/patrole_tempest_plugin/tests/api/compute/test_admin_password_rbac.py b/patrole_tempest_plugin/tests/api/compute/test_admin_password_rbac.py
index a0e46a6..38b5f1a 100644
--- a/patrole_tempest_plugin/tests/api/compute/test_admin_password_rbac.py
+++ b/patrole_tempest_plugin/tests/api/compute/test_admin_password_rbac.py
@@ -13,6 +13,9 @@
# License for the specific language governing permissions and limitations
# under the License.
+import testtools
+
+from tempest.common import waiters
from tempest import config
from tempest.lib.common.utils import data_utils
from tempest.lib import decorators
@@ -20,28 +23,22 @@
from patrole_tempest_plugin import rbac_rule_validation
from patrole_tempest_plugin.tests.api.compute import rbac_base
-
CONF = config.CONF
class AdminPasswordRbacTest(rbac_base.BaseV2ComputeRbacTest):
- @classmethod
- def skip_checks(cls):
- super(AdminPasswordRbacTest, cls).skip_checks()
- if not CONF.compute_feature_enabled.change_password:
- raise cls.skipException('Change password not available.')
-
- @classmethod
- def resource_setup(cls):
- super(AdminPasswordRbacTest, cls).resource_setup()
- cls.server_id = cls.create_test_server(wait_until='ACTIVE')['id']
-
+ @testtools.skipUnless(CONF.compute_feature_enabled.change_password,
+ 'Change password not available.')
@rbac_rule_validation.action(
- service="nova", rule="os_compute_api:os-admin-password")
+ service="nova",
+ rule="os_compute_api:os-admin-password")
@decorators.idempotent_id('908a7d59-3a66-441c-94cf-38e57ed14956')
def test_change_server_password(self):
+ server_id = self.create_test_server(wait_until='ACTIVE')['id']
+
self.rbac_utils.switch_role(self, toggle_rbac_role=True)
self.servers_client.change_password(
- self.server_id,
- adminPass=data_utils.rand_password())
+ server_id, adminPass=data_utils.rand_password())
+ waiters.wait_for_server_status(
+ self.os_admin.servers_client, server_id, 'ACTIVE')