1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
<?php
namespace OpenCloud\CloudMonitoring\Resource;
use Guzzle\Http\Exception\ClientErrorResponseException;
use OpenCloud\CloudMonitoring\Exception;
use OpenCloud\Common\Http\Message\Formatter;
class Zone extends ReadOnlyResource
{
private $id;
private $country_code;
private $label;
private $source_ips;
protected static $json_name = false;
protected static $json_collection_name = 'values';
protected static $url_resource = 'monitoring_zones';
public function traceroute(array $options)
{
if (!$this->getId()) {
throw new Exception\ZoneException(
'Please specify a zone ID'
);
}
if (!isset($options['target']) || !isset($options['target_resolver'])) {
throw new Exception\ZoneException(
'Please specify a "target" and "target_resolver" value'
);
}
$params = (object) array(
'target' => $options['target'],
'target_resolver' => $options['target_resolver']
);
try {
$response = $this->getService()
->getClient()
->post($this->url('traceroute'), self::getJsonHeader(), json_encode($params))
->send();
$body = Formatter::decode($response);
return (isset($body->result)) ? $body->result : false;
} catch (ClientErrorResponseException $e) {
return false;
}
}
}