Scalr\Modules\Platforms\RackspaceNgUs\RackspaceNgUsPlatformModule::GetServerIPAddresses PHP Method

GetServerIPAddresses() public method

See also: Scalr\Modules\Platforms\Openstack\OpenstackPlatformModule::GetServerIPAddresses()
public GetServerIPAddresses ( DBServer $DBServer )
$DBServer DBServer
    public function GetServerIPAddresses(\DBServer $DBServer)
    {
        $config = \Scalr::getContainer()->config;
        $client = $this->getOsClient($DBServer->GetEnvironmentObject(), $DBServer->GetProperty(\OPENSTACK_SERVER_PROPERTIES::CLOUD_LOCATION));
        $result = $client->servers->getServerDetails($DBServer->GetProperty(\OPENSTACK_SERVER_PROPERTIES::SERVER_ID));
        $publicNetworkName = 'public';
        $privateNetworkName = 'private';
        if (is_array($result->addresses->{$publicNetworkName})) {
            foreach ($result->addresses->{$publicNetworkName} as $addr) {
                if ($addr->version == 4) {
                    $remoteIp = $addr->addr;
                    break;
                }
            }
        }
        if (!$remoteIp && $result->accessIPv4) {
            $remoteIp = $result->accessIPv4;
        }
        if (is_array($result->addresses->{$privateNetworkName})) {
            foreach ($result->addresses->{$privateNetworkName} as $addr) {
                if ($addr->version == 4) {
                    $localIp = $addr->addr;
                    break;
                }
            }
        }
        if (!$localIp) {
            $localIp = $remoteIp;
        }
        return array('localIp' => $localIp, 'remoteIp' => $remoteIp);
    }