public listPublicIpAddresses ( Scalr\Service\CloudStack\DataType\ListIpAddressesData | array $requestData = null, Scalr\Service\CloudStack\DataType\PaginationType $pagination = null ) : Scalr\Service\CloudStack\DataType\IpAddressResponseList | null | ||
$requestData | Scalr\Service\CloudStack\DataType\ListIpAddressesData | array | Request data object |
$pagination | Scalr\Service\CloudStack\DataType\PaginationType | Pagination |
return | Scalr\Service\CloudStack\DataType\IpAddressResponseList | null |
public function listPublicIpAddresses($requestData = null, PaginationType $pagination = null)
{
$result = null;
$args = array();
if ($requestData !== null) {
if (!$requestData instanceof ListIpAddressesData) {
$requestData = ListIpAddressesData::initArray($requestData);
}
$args = $requestData->toArray();
}
if ($pagination !== null) {
array_merge($args, $pagination->toArray());
}
$response = $this->getClient()->call('listPublicIpAddresses', $args);
if ($response->hasError() === false) {
$resultObject = $response->getResult();
if (!empty($resultObject) && property_exists($resultObject, 'count') && $resultObject->count > 0) {
$result = $this->_loadIpAddressList($resultObject->publicipaddress);
}
}
return $result;
}
/** * Checks Elastic IP availability * * @param string $ipaddress public IP address * @param \Scalr\Service\CloudStack\CloudStack $cs CloudStack instance * @return boolean Returns true if IP address is available. */ private static function checkStaticNatIp($ipaddress, CloudStack $cs) { \Scalr::getContainer()->logger('Cloudstack_Helpers')->debug(sprintf(_("Checking IP: %s"), $ipaddress)); try { $requestObject = new ListIpAddressesData(); $requestObject->ipaddress = $ipaddress; $info = $cs->listPublicIpAddresses($requestObject); if (count($info) > 0) { return true; } else { return false; } } catch (Exception $e) { return false; } }