Tempest: wait for access rule to be deleted
The tests targeting user based access rules do not wait when deleting such access rules. As multiple tests will create access rules for the same user, this operation will fail if the previous rule was not deleted in time. This patch fixes those tests by waiting for the access rule delete operation to complete. The wait_for_resource_deletion method is updated to work with access rules, re-adding previously existing functionality, removed as unused and also requested by bug/1429952. Closes-Bug: #1489367 Change-Id: Ie48fba56668ad663be84b74cd64927e3e5d6c675
This commit is contained in:
parent
641a5e985e
commit
ddb276f629
|
@ -34,6 +34,8 @@ def _create_delete_ro_access_rule(self):
|
|||
self.shares_client.wait_for_access_rule_status(
|
||||
self.share["id"], rule["id"], "active")
|
||||
self.shares_client.delete_access_rule(self.share["id"], rule["id"])
|
||||
self.shares_client.wait_for_resource_deletion(
|
||||
rule_id=rule["id"], share_id=self.share['id'])
|
||||
|
||||
|
||||
class ShareIpRulesForNFSTest(base.BaseSharesTest):
|
||||
|
@ -63,8 +65,10 @@ class ShareIpRulesForNFSTest(base.BaseSharesTest):
|
|||
self.shares_client.wait_for_access_rule_status(
|
||||
self.share["id"], rule["id"], "active")
|
||||
|
||||
# delete rule
|
||||
# delete rule and wait for deletion
|
||||
self.shares_client.delete_access_rule(self.share["id"], rule["id"])
|
||||
self.shares_client.wait_for_resource_deletion(
|
||||
rule_id=rule["id"], share_id=self.share['id'])
|
||||
|
||||
@test.attr(type=["gate", ])
|
||||
def test_create_delete_access_rule_with_cidr(self):
|
||||
|
@ -79,8 +83,10 @@ class ShareIpRulesForNFSTest(base.BaseSharesTest):
|
|||
self.shares_client.wait_for_access_rule_status(
|
||||
self.share["id"], rule["id"], "active")
|
||||
|
||||
# delete rule
|
||||
# delete rule and wait for deletion
|
||||
self.shares_client.delete_access_rule(self.share["id"], rule["id"])
|
||||
self.shares_client.wait_for_resource_deletion(
|
||||
rule_id=rule["id"], share_id=self.share['id'])
|
||||
|
||||
@test.attr(type=["gate", ])
|
||||
@testtools.skipIf(
|
||||
|
@ -126,8 +132,10 @@ class ShareUserRulesForNFSTest(base.BaseSharesTest):
|
|||
self.shares_client.wait_for_access_rule_status(
|
||||
self.share["id"], rule["id"], "active")
|
||||
|
||||
# delete rule
|
||||
# delete rule and wait for deletion
|
||||
self.shares_client.delete_access_rule(self.share["id"], rule["id"])
|
||||
self.shares_client.wait_for_resource_deletion(
|
||||
rule_id=rule["id"], share_id=self.share['id'])
|
||||
|
||||
@test.attr(type=["gate", ])
|
||||
@testtools.skipIf(
|
||||
|
|
|
@ -365,8 +365,17 @@ class SharesClient(rest_client.RestClient):
|
|||
:raises share_exceptions.InvalidResource
|
||||
"""
|
||||
if "share_id" in kwargs:
|
||||
return self._is_resource_deleted(
|
||||
self.get_share, kwargs.get("share_id"))
|
||||
if "rule_id" in kwargs:
|
||||
rule_id = kwargs.get("rule_id")
|
||||
share_id = kwargs.get("share_id")
|
||||
rules = self.list_access_rules(share_id)
|
||||
for rule in rules:
|
||||
if rule["id"] == rule_id:
|
||||
return False
|
||||
return True
|
||||
else:
|
||||
return self._is_resource_deleted(
|
||||
self.get_share, kwargs.get("share_id"))
|
||||
elif "snapshot_id" in kwargs:
|
||||
return self._is_resource_deleted(
|
||||
self.get_snapshot, kwargs.get("snapshot_id"))
|
||||
|
|
Loading…
Reference in New Issue