Use helper functions stack_suspend and stack_resume
These wait for the stack state to get to complete,
this wasn't done consistently. In test_autoscaling we were
only waiting for the resource state to get to SUSPEND_COMPLETE
and this lead to a time sensitive bug.
Change-Id: Id985d833dc0b4cab1e3cb9d8f67d5d8cc94b5863
Closes-bug: #1438717
diff --git a/functional/test_autoscaling.py b/functional/test_autoscaling.py
index 932245d..489ae63 100644
--- a/functional/test_autoscaling.py
+++ b/functional/test_autoscaling.py
@@ -318,21 +318,11 @@
nested_ident = self.assert_resource_is_a_stack(stack_identifier,
'JobServerGroup')
- self.client.actions.suspend(stack_id=stack_identifier)
- self._wait_for_resource_status(
- stack_identifier, 'JobServerGroup', 'SUSPEND_COMPLETE')
- for res in self.client.resources.list(nested_ident):
- self._wait_for_resource_status(nested_ident,
- res.resource_name,
- 'SUSPEND_COMPLETE')
+ self.stack_suspend(stack_identifier)
+ self._wait_for_all_resource_status(nested_ident, 'SUSPEND_COMPLETE')
- self.client.actions.resume(stack_id=stack_identifier)
- self._wait_for_resource_status(
- stack_identifier, 'JobServerGroup', 'RESUME_COMPLETE')
- for res in self.client.resources.list(nested_ident):
- self._wait_for_resource_status(nested_ident,
- res.resource_name,
- 'RESUME_COMPLETE')
+ self.stack_resume(stack_identifier)
+ self._wait_for_all_resource_status(nested_ident, 'RESUME_COMPLETE')
class AutoscalingGroupUpdatePolicyTest(AutoscalingGroupTest):
diff --git a/functional/test_aws_stack.py b/functional/test_aws_stack.py
index 5aabe95..d8ba937 100644
--- a/functional/test_aws_stack.py
+++ b/functional/test_aws_stack.py
@@ -203,11 +203,5 @@
url = self.publish_template(self.nested_name, self.nested_template)
self.template = self.test_template.replace('the.yaml', url)
stack_identifier = self.stack_create(template=self.template)
-
- self.client.actions.suspend(stack_id=stack_identifier)
- self._wait_for_resource_status(
- stack_identifier, 'the_nested', 'SUSPEND_COMPLETE')
-
- self.client.actions.resume(stack_id=stack_identifier)
- self._wait_for_resource_status(
- stack_identifier, 'the_nested', 'RESUME_COMPLETE')
+ self.stack_suspend(stack_identifier)
+ self.stack_resume(stack_identifier)
diff --git a/functional/test_remote_stack.py b/functional/test_remote_stack.py
index 7579eb0..868f24e 100644
--- a/functional/test_remote_stack.py
+++ b/functional/test_remote_stack.py
@@ -140,17 +140,5 @@
def test_stack_suspend_resume(self):
files = {'remote_stack.yaml': self.remote_template}
stack_id = self.stack_create(files=files)
- rsrc = self.client.resources.get(stack_id, 'my_stack')
- remote_id = rsrc.physical_resource_id
-
- # suspend stack
- self.client.actions.suspend(stack_id)
- self._wait_for_stack_status(stack_id, 'SUSPEND_COMPLETE')
- rsrc = self.client.stacks.get(remote_id)
- self.assertEqual('SUSPEND_COMPLETE', rsrc.stack_status)
-
- # resume stack
- self.client.actions.resume(stack_id)
- self._wait_for_stack_status(stack_id, 'RESUME_COMPLETE')
- rsrc = self.client.stacks.get(remote_id)
- self.assertEqual('RESUME_COMPLETE', rsrc.stack_status)
+ self.stack_suspend(stack_id)
+ self.stack_resume(stack_id)