public function waitUntil($name, array $args, Resource $resource) { $config = isset($args[0]) ? $args[0] : []; $args = []; $waiter = $this->model->search('waiter', $resource->getType(), $name); $this->prepareArgs($waiter['params'], $resource, $args); $this->apiClient->waitUntil($waiter['waiterName'], $args, $config); return $resource; }
public function checkIfExists(Resource $resource) { $args = ['@waiter' => ['maxAttempts' => 1, 'delay' => 0, 'initDelay' => 0]]; if (!($waiter = $this->model->search('waiter', $resource->getType(), 'Exists'))) { throw new \UnexpectedValueException('Resource does not have an Exists waiter.'); } $this->prepareArgs($waiter['params'], $resource, $args); return $this->apiClient->getWaiter($waiter['waiterName'], $args)->promise()->then(function () { return true; }, function () { return false; })->wait(); }