protected function tryCall($httpRequest, $attempts = 3, $interval = 200)
{
try {
$response = \Scalr::getContainer()->http->sendRequest($httpRequest);
if (is_callable($this->callback)) {
call_user_func($this->callback, $httpRequest, $response);
}
} catch (\http\Exception $e) {
if (--$attempts > 0) {
usleep($interval);
$response = $this->tryCall($httpRequest, $attempts, $interval * 2);
} else {
throw new RestClientException(sprintf('Cannot establish connection with CloudStack server. (%s).', isset($e->innerException) ? preg_replace('/(\\(.*\\))/', '', $e->innerException->getMessage()) : $e->getMessage()));
}
}
return $response;
}