private function doRequest($method, $url, $options)
{
if (isset($options['body']) && is_array($options['body'])) {
$options['body'] = json_encode($options['body']);
}
$this->logger->info(sprintf('%s "%s"', $method, $url));
$this->logger->debug(sprintf("Requesting %s %s", $method, $url), array('options' => $options));
try {
$response = $this->client->request($method, $url, $options);
} catch (TransferException $e) {
$message = sprintf('Something went wrong when calling consul (%s).', $e->getMessage());
$this->logger->error($message);
throw new ServerException($message);
}
$this->logger->debug(sprintf("Response:\n%s", $this->formatResponse($response)));
if (400 <= $response->getStatusCode()) {
$message = sprintf('Something went wrong when calling consul (%s - %s).', $response->getStatusCode(), $response->getReasonPhrase());
$this->logger->error($message);
$message .= "\n" . (string) $response->getBody();
if (500 <= $response->getStatusCode()) {
throw new ServerException($message, $response->getStatusCode());
}
throw new ClientException($message, $response->getStatusCode());
}
return new ConsulResponse($response->getHeaders(), (string) $response->getBody());
}