$status = updatecdu($template, $status); $status = updatesensor($template, $status); } if ($status == __("Updated")) { $status = $template->ExportTemplate() ? __("Exported") : __("Error"); } break; default: // do nothing if the value isn't one we expect } } $templateList = $template->GetTemplateList(); $ManufacturerList = $manufacturer->GetManufacturerList(); $ManufacturerListByID = $manufacturer->GetManufacturerList(true); $mtList = MediaTypes::GetMediaTypeList(); $ccList = ColorCoding::GetCodeList(); $dcaList = DeviceCustomAttribute::GetDeviceCustomAttributeList(); $imageselect = '<div id="preview"></div><div id="filelist">'; $path = './pictures'; $dir = scandir($path); foreach ($dir as $i => $f) { if (is_file($path . DIRECTORY_SEPARATOR . $f)) { // Suppress the getimagesize because it will error out on non-image files @($imageinfo = getimagesize($path . DIRECTORY_SEPARATOR . $f)); if (preg_match('/^image/i', $imageinfo['mime'])) { $imageselect .= "<span>{$f}</span>\n"; } } } $imageselect .= "</div>"; ?>
$response['error'] = false; } else { $response['error'] = true; } } $response['errorcode'] = 200; echoResponse(200, $response); }); // // URL: /api/v1/colorcode/:colorid // Method: DELETE // Params: colorid (passed in URL) // Returns: true/false on update operation // $app->delete('/colorcode/:colorid', function ($colorid) { $cc = new ColorCoding(); $cc->ColorID = $colorid; if (!$cc->DeleteCode()) { $response['error'] = true; $response['errorcode'] = 404; $response['message'] = __("Failed to delete color with ColorID") . " {$cc->ColorID}"; } else { $response['error'] = false; $response['errorcode'] = 200; } echoResponse(200, $response); }); // // URL: /api/v1/device/:deviceid // Method: DELETE // Params: deviceid (passed in URL)
} else { $devarray = array('Server' => __("Server"), 'Appliance' => __("Appliance"), 'Storage Array' => __("Storage Array"), 'Switch' => __("Switch"), 'Chassis' => __("Chassis"), 'Patch Panel' => __("Patch Panel"), 'Physical Infrastructure' => __("Physical Infrastructure"), 'CDU' => __("CDU"), 'Sensor' => __("Sensor")); } if ($config->ParameterArray["mDate"] == "now") { if ($dev->MfgDate <= "1970-01-01") { $dev->MfgDate = date("Y-m-d"); } } if ($config->ParameterArray["wDate"] == "now") { if ($dev->WarrantyExpire <= "1970-01-01") { $dev->WarrantyExpire = date("Y-m-d"); } } $portList = DevicePorts::getPortList($dev->DeviceID); $mediaTypes = MediaTypes::GetMediaTypeList(); $colorCodes = ColorCoding::GetCodeList(); $templateList = $templ->GetTemplateList(); $escTimeList = $escTime->GetEscalationTimeList(); $escList = $esc->GetEscalationList(); $deptList = $Dept->GetDepartmentList(); $templ->TemplateID = $dev->TemplateID; $templ->GetTemplateByID(); $title = $dev->Label != '' ? "{$dev->Label} :: {$dev->DeviceID}" : __("openDCIM Device Maintenance"); function buildESXtable($DeviceID) { $ESX = new ESX(); $ESX->DeviceID = $DeviceID; $vmList = $ESX->GetDeviceInventory(); print "\n<div class=\"table border\"><div><div>" . __("VM Name") . "</div><div>" . __("Status") . "</div><div>" . __("Owner") . "</div><div>" . __("Last Updated") . "</div></div>\n"; foreach ($vmList as $vmRow) { $onOff = preg_match('/off/i', $vmRow->vmState) ? 'off' : 'on';
$graphstr .= "\t\tinvis2 [shape=box,style=invis];\n"; # colorize the cables in the legend foreach ($myCableColorList as $colorKey => $color) { if ($colorType == 0 || $colorType == 1) { $cc = new ColorCoding(); $cc->ColorID = $colorKey; $cc->GetCode(); $label = $cc->Name != "" ? $cc->Name : "Unset"; } elseif ($colorType == 2) { $mt = new MediaTypes(); $mt->MediaID = $colorKey; $mt->GetType(); $label = $mt->MediaType != "" ? $mt->MediaType : "Unset"; } else { $keys = explode(':', $colorKey); $cc = new ColorCoding(); $cc->ColorID = $keys[0]; $cc->GetCode(); $mt = new MediaTypes(); $mt->MediaID = $keys[1]; $mt->GetType(); $colorname = $cc->Name != "" ? $cc->Name : "Unset"; $mediatype = $mt->MediaType != "" ? $mt->MediaType : "Unset"; $label = $mediatype . "--" . $colorname; } $graphstr .= "\t\tinvis1 -- invis2 [color=" . $color . ",label=\"" . $label . "\"];\n"; } $graphstr .= "\t}\n}"; # safe format types. newer versions of graphviz also support pdf. maybe # we should add it when the ability is more prevalent. $formatTypes = array('svg', 'png', 'jpg', 'dot');
function ImportTemplate($file) { $result = array(); $result["status"] = ""; $result["log"] = array(); $ierror = 0; //validate xml template file with openDCIMdevicetemplate.xsd libxml_use_internal_errors(true); $xml = new XMLReader(); $xml->open($file); $resp = $xml->setSchema("openDCIMdevicetemplate.xsd"); while (@$xml->read()) { } // empty loop $errors = libxml_get_errors(); if (count($errors) > 0) { $result["status"] = __("No valid file"); foreach ($errors as $error) { $result["log"][$ierror++] = $error->message; } return $result; } libxml_clear_errors(); $xml->close(); //read xml template file $xmltemplate = simplexml_load_file($file); //manufacturer $manufacturer = new Manufacturer(); $manufacturer->Name = transform($xmltemplate->ManufacturerName); if (!$manufacturer->GetManufacturerByName()) { //New Manufacturer $manufacturer->CreateManufacturer(); } $template = new DeviceTemplate(); $template->ManufacturerID = $manufacturer->ManufacturerID; $template->Model = transform($xmltemplate->TemplateReg->Model); $template->Height = $xmltemplate->TemplateReg->Height; $template->Weight = $xmltemplate->TemplateReg->Weight; $template->Wattage = $xmltemplate->TemplateReg->Wattage; $template->DeviceType = $xmltemplate->TemplateReg->DeviceType; $template->PSCount = $xmltemplate->TemplateReg->PSCount; $template->NumPorts = $xmltemplate->TemplateReg->NumPorts; $template->Notes = trim($xmltemplate->TemplateReg->Notes); $template->Notes = $template->Notes == "<br>" ? "" : $template->Notes; $template->FrontPictureFile = $xmltemplate->TemplateReg->FrontPictureFile; $template->RearPictureFile = $xmltemplate->TemplateReg->RearPictureFile; $template->SNMPVersion = $xmltemplate->TemplateReg->SNMPVersion; $template->ChassisSlots = $template->DeviceType == "Chassis" ? $xmltemplate->TemplateReg->ChassisSlots : 0; $template->RearChassisSlots = $template->DeviceType == "Chassis" ? $xmltemplate->TemplateReg->RearChassisSlots : 0; //Check if picture files exist if ($template->FrontPictureFile != "" && file_exists("pictures/" . $template->FrontPictureFile)) { $result["status"] = __("Import Error"); $result["log"][0] = __("Front picture file already exists"); return $result; } if ($template->RearPictureFile != "" && file_exists("pictures/" . $template->RearPictureFile)) { $result["status"] = __("Import Error"); $result["log"][0] = __("Rear picture file already exists"); return $result; } //create the template if (!$template->CreateTemplate()) { $result["status"] = __("Import Error"); $result["log"][0] = __("An error has occurred creating the template.<br>Possibly there is already a template of the same manufacturer and model"); return $result; } //get template to this object $this->TemplateID = $template->TemplateID; $this->GetTemplateByID(); //slots foreach ($xmltemplate->SlotReg as $xmlslot) { $slot = new Slot(); $slot->TemplateID = $this->TemplateID; $slot->Position = intval($xmlslot->Position); $slot->BackSide = intval($xmlslot->BackSide); $slot->X = intval($xmlslot->X); $slot->Y = intval($xmlslot->Y); $slot->W = intval($xmlslot->W); $slot->H = intval($xmlslot->H); if ($slot->Position <= $this->ChassisSlots && !$slot->BackSide || $slot->Position <= $this->RearChassisSlots && $slot->BackSide) { if (!$slot->CreateSlot()) { $result["status"] = __("Import Warning"); $result["log"][$ierror++] = sprintf(__("An error has occurred creating the slot %s"), $slot->Position . "-" . $slot->BackSide ? __("Rear") : __("Front")); } } else { $result["status"] = __("Import Warning"); $result["log"][$ierror++] = sprintf(__("Ignored slot %s"), $slot->Position . "-" . $slot->BackSide ? __("Rear") : __("Front")); } } //ports foreach ($xmltemplate->PortReg as $xmlport) { //media type $mt = new MediaTypes(); $mt->MediaType = transform($xmlport->PortMedia); if (!$mt->GetTypeByName()) { //New media type $mt->CreateType(); } //color $cc = new ColorCoding(); $cc->Name = transform($xmlport->PortColor); if (!$cc->GetCodeByName()) { //New color $cc->CreateCode(); } $tport = new TemplatePorts(); $tport->TemplateID = $this->TemplateID; $tport->PortNumber = intval($xmlport->PortNumber); $tport->Label = $xmlport->Label; $tport->MediaID = $mt->MediaID; $tport->ColorID = $cc->ColorID; $tport->PortNotes = $xmlport->PortNotes; if ($tport->PortNumber <= $this->NumPorts) { if (!$tport->CreatePort()) { $result["status"] = __("Import Warning"); $result["log"][$ierror++] = sprintf(__("An error has occurred creating the port %s"), $tport->PortNumber); } } else { $result["status"] = __("Import Warning"); $result["log"][$ierror++] = sprintf(__("Ignored port %s"), $tport->PortNumber); } } //files if ($this->FrontPictureFile != "") { $im = base64_decode($xmltemplate->FrontPicture); file_put_contents("pictures/" . $this->FrontPictureFile, $im); } if ($this->RearPictureFile != "" && $this->RearPictureFile != $this->FrontPictureFile) { $im = base64_decode($xmltemplate->RearPicture); file_put_contents("pictures/" . $this->RearPictureFile, $im); } return $result; }
$targetDev->DeviceID = $powerPort->ConnectedDeviceID; $targetDev->GetDevice(); $targetPort->DeviceID = $targetDev->DeviceID; $targetPort->PortNumber = $powerPort->ConnectedPort; $targetPort->getPort(); $sheet->getActiveSheet()->SetCellValue('C' . $row, $targetDev->Label); $sheet->getActiveSheet()->SetCellValue('D' . $row, $targetPort->Label); $sheet->getActiveSheet()->SetCellValue('H' . $row, __("Power Connection")); } $row++; } foreach ($portList as $devPort) { // These are created inside the loop, because they need to be clean instances each time $targetDev = new Device(); $targetPort = new DevicePorts(); $color = new ColorCoding(); $mediaType = new MediaTypes(); if ($devPort->ConnectedDeviceID > 0 || $devPort->Notes != "") { $targetDev->DeviceID = $devPort->ConnectedDeviceID; $targetDev->GetDevice(); $targetPort->DeviceID = $targetDev->DeviceID; $targetPort->PortNumber = $devPort->ConnectedPort; $targetPort->getPort(); if ($targetPort->Label == '') { $targetPort->Label = $devPort->ConnectedDeviceID > 0 ? $devPort->ConnectedPort : ''; } $color->ColorID = $devPort->ColorID; $color->GetCode(); $mediaType->MediaID = $devPort->MediaID; $mediaType->GetType(); $sheet->getActiveSheet()->SetCellValue('A' . $row, '="' . $dev->Label . '"');
} else { echo 'f'; } } else { if ($col->CreateCode()) { echo $col->ColorID; } else { echo 'f'; } } exit; } if (isset($_POST['ccused'])) { $count = ColorCoding::TimesUsed($_POST['ccused']); if ($count == 0) { $col = new ColorCoding(); $col->ColorID = $_POST['ccused']; $col->DeleteCode(); } echo $count; exit; } if (isset($_POST['mt'])) { // Media Types $mt = new MediaTypes(); $mt->MediaType = trim($_POST['mt']); $mt->ColorID = $_POST['mtcc']; if (isset($_POST['mtid'])) { // If set we're updating an existing entry $mt->MediaID = $_POST['mtid']; if (isset($_POST['original'])) {