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;
}