// Params: none // Returns: Record as created // $app->put('/manufacturer/:name', function ($name) use($app, $person) { $man = new Manufacturer(); foreach ($app->request->put() as $prop => $val) { $man->{$prop} = $val; } $man->Name = $name; $response['error'] = true; $response['errorcode'] = 404; if (!$person->SiteAdmin) { $response['errorcode'] = 403; $response['message'] = __("Unauthorized"); } else { if (!$man->CreateManufacturer()) { $response['message'] = __("Manufacturer not created: ") . " {$manufacturerid}"; } else { $response['error'] = false; $response['errorcode'] = 200; $response['manufacturer'] = $man; } } echoResponse(200, $response); }); /** * * API DELETE Methods go here * * DELETE Methods are for removing records *
} if (isset($_GET['getTemplateCount']) && isset($_GET['ManufacturerID'])) { $temp = new DeviceTemplate(); $temp->ManufacturerID = $_GET['ManufacturerID']; header('Content-Type: application/json'); echo json_encode($temp->GetTemplateListByManufacturer()); exit; } if (isset($_POST['setManufacturer'])) { $mfg->ManufacturerID = $_POST['ManufacturerID']; $mfg->GetManufacturerByID(); $mfg->GlobalID = $_POST['GlobalID']; $mfg->Name = $_POST['Name']; $mfg->SubscribeToUpdates = isset($_POST['SubscribeToUpdates']) ? 1 : 0; if ($mfg->ManufacturerID == "") { $mfg->CreateManufacturer(); } else { $mfg->UpdateManufacturer(); } header('Content-Type: application/json'); echo json_encode($mfg); exit; } if (isset($_POST['action']) && $_POST["action"] == "Delete") { header('Content-Type: application/json'); $response = false; if (isset($_POST["TransferTo"])) { $mfg->ManufacturerID = $_POST['ManufacturerID']; if ($mfg->DeleteManufacturer($_POST["TransferTo"])) { $response = true; }
$m->GlobalID = $tmpman->ManufacturerID; if ($m->getManufacturerByGlobalID()) { $m->Name = $tmpman->Name; $m->UpdateManufacturer(); } else { // We don't already have this one linked, so search for a candidate or add as a new one $m->Name = $tmpman->Name; if ($m->GetManufacturerByName()) { // Reset to the values from the repo (especially CaSe) $m->GlobalID = $tmpman->ManufacturerID; $m->Name = $tmpman->Name; $m->UpdateManufacturer(); } else { $m->ManufacturerID = $tmpman->ManufacturerID; $m->Name = $tmpman->Name; $m->CreateManufacturer(); } } } } } //Installation Complete if ($nodept == "" && $nodc == "" && $nocab == "") { // All three primary sections have had at least one item created //enable the finish menu option $complete = true; } ?> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=Edge">
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; }