Scalr\Modules\Platforms\Cloudstack\CloudstackPlatformModule::GetServerExtendedInformation PHP Méthode

GetServerExtendedInformation() public méthode

See also: Scalr\Modules\PlatformModuleInterface::GetServerExtendedInformation()
public GetServerExtendedInformation ( DBServer $DBServer, $extended = false )
$DBServer DBServer
    public function GetServerExtendedInformation(DBServer $DBServer, $extended = false)
    {
        $cs = $DBServer->GetEnvironmentObject()->cloudstack($this->platform);
        if (!$DBServer->GetProperty(CLOUDSTACK_SERVER_PROPERTIES::SERVER_ID)) {
            return false;
        }
        try {
            $iinfo = $cs->instance->describe(array('id' => $DBServer->GetProperty(CLOUDSTACK_SERVER_PROPERTIES::SERVER_ID)));
            $iinfo = !empty($iinfo[0]) ? $iinfo[0] : null;
            if (!empty($iinfo->id)) {
                $localIp = null;
                $remoteIp = null;
                $addr = $iinfo->nic[0]->ipaddress;
                if (strpos($addr, "10.") === 0 || strpos($addr, "192.168") === 0) {
                    $localIp = $addr;
                } else {
                    $remoteIp = $addr;
                }
                $retval = array('Cloud Server ID' => $iinfo->id, 'Name' => $iinfo->name, 'State' => $iinfo->state, 'Group' => $iinfo->group, 'Zone' => $iinfo->zonename, 'Template name' => $iinfo->templatename, 'Template ID' => $iinfo->templateid, 'Offering name' => $iinfo->serviceofferingname, 'Root device type' => $iinfo->rootdevicetype, 'Internal IP' => $localIp, 'Public IP' => $remoteIp, 'Hypervisor' => $iinfo->hypervisor);
                if (!empty($iinfo->publicip)) {
                    $retval['Public IP'] = $iinfo->publicip;
                }
                if (!empty($iinfo->securitygroup)) {
                    $retval['Security groups'] = "";
                    foreach ($iinfo->securitygroup as $sg) {
                        $retval['Security groups'] .= "{$sg->name}, ";
                    }
                    $retval['Security groups'] = trim($retval['Security groups'], ", ");
                }
                return $retval;
            }
        } catch (NotFoundException $e) {
            return false;
        } catch (Exception $e) {
            throw $e;
        }
        return false;
    }