def wait_for_status(self, value, status, failures=[], interval=2, wait=120): """Wait for a resource to be in a particular status. :param value: The resource to wait on to reach the status. The resource must have a status attribute. :type value: :class:`~ecl.resource2.Resource` :param status: Desired status of the resource2. :param list failures: Statuses that would indicate the transition failed such as 'ERROR'. :param interval: Number of seconds to wait between checks. :param wait: Maximum number of seconds to wait for the change. :return: Method returns resource on success. :raises: :class:`~ecl.exceptions.ResourceTimeout` transition to status failed to occur in wait seconds. :raises: :class:`~ecl.exceptions.ResourceFailure` resource transitioned to one of the failure states. :raises: :class:`~AttributeError` if the resource does not have a status attribute """ return resource2.wait_for_status(self.session, value, status, failures, interval, wait)
def wait_for_create(self, session, status='ACTIVE', failures=['ERROR'], interval=2, wait=120): return resource2.wait_for_status(session, self, status, failures, interval, wait)
def test_immediate_status(self): status = "loling" resource = mock.Mock() resource.status = status result = resource2.wait_for_status("session", resource, status, "failures", "interval", "wait") self.assertEqual(result, resource)
def wait_for_server(self, server, status='ACTIVE', failures=['ERROR'], interval=2, wait=120): """Not supported """ return resource2.wait_for_status(self.session, server, status, failures, interval, wait)
def test_status_match(self, mock_sleep): status = "loling" resource = mock.Mock() # other gets past the first check, two anothers gets through # the sleep loop, and the third matches statuses = ["other", "another", "another", status] type(resource).status = mock.PropertyMock(side_effect=statuses) result = resource2.wait_for_status("session", resource, status, None, 1, 5) self.assertEqual(result, resource)
def wait_for_server(self, instance, status='ACTIVE', failures=['ERROR'], interval=2, wait=120): return resource2.wait_for_status(self.session, instance, status, failures, interval, wait)