function UpdateSlotsPorts($template, $status) { //Update slots $template->DeleteSlots(); for ($i = 1; $i <= $template->ChassisSlots; $i++) { $slot = new Slot(); $slot->TemplateID = $template->TemplateID; $slot->Position = $i; $slot->BackSide = False; $slot->X = isset($_POST["XF" . $i]) ? $_POST["XF" . $i] : 0; $slot->Y = isset($_POST["YF" . $i]) ? $_POST["YF" . $i] : 0; $slot->W = isset($_POST["WF" . $i]) ? $_POST["WF" . $i] : 0; $slot->H = isset($_POST["HF" . $i]) ? $_POST["HF" . $i] : 0; $status = $slot->CreateSlot() ? $status : __("Error updating front slots"); } for ($i = 1; $i <= $template->RearChassisSlots; $i++) { $slot = new Slot(); $slot->TemplateID = $template->TemplateID; $slot->Position = $i; $slot->BackSide = True; $slot->X = isset($_POST["XR" . $i]) ? $_POST["XR" . $i] : 0; $slot->Y = isset($_POST["YR" . $i]) ? $_POST["YR" . $i] : 0; $slot->W = isset($_POST["WR" . $i]) ? $_POST["WR" . $i] : 0; $slot->H = isset($_POST["HR" . $i]) ? $_POST["HR" . $i] : 0; $status = $slot->CreateSlot() ? $status : __("Error updating rear slots"); } //update template ports $template->DeletePorts(); for ($i = 1; $i <= $template->NumPorts; $i++) { $tport = new TemplatePorts(); $tport->TemplateID = $template->TemplateID; $tport->PortNumber = $i; $tport->Label = isset($_POST["label" . $i]) ? $_POST["label" . $i] : ""; $tport->MediaID = isset($_POST["mt" . $i]) && $_POST["mt" . $i] > 0 ? $_POST["mt" . $i] : 0; $tport->ColorID = isset($_POST["cc" . $i]) && $_POST["cc" . $i] > 0 ? $_POST["cc" . $i] : 0; $tport->PortNotes = isset($_POST["portnotes" . $i]) ? $_POST["portnotes" . $i] : ""; $status = $tport->CreatePort() ? $status : __("Error updating template ports"); } $template->DeletePowerPorts(); //update template power connections for ($i = 1; $i <= $template->PSCount; $i++) { $tport = new TemplatePowerPorts(); $tport->TemplateID = $template->TemplateID; $tport->PortNumber = $i; $tport->Label = isset($_POST["powerlabel" . $i]) ? $_POST["powerlabel" . $i] : ""; $tport->PortNotes = isset($_POST["powerportnotes" . $i]) ? $_POST["powerportnotes" . $i] : ""; $status = $tport->CreatePort() ? $status : __("Error updating template power connections"); } return $status; }
$response['errorcode'] = 200; $response['dataport'] = $tp; } } echoResponse(200, $response); }); // // URL: /api/v1/devicetemplate/:templateid/powerport/:portnum // Method: PUT // Params: // Required: templateid, portnum, portlabel // Optional: everything else // Returns: record as created // $app->put('/devicetemplate/:templateid/powerport/:portnum', function ($templateid, $portnum) use($app, $person) { $tp = new TemplatePowerPorts(); foreach ($app->request->put() as $prop => $val) { $tp->{$prop} = $val; } // This should be in the commit data but if we get a smartass saying it's in the URL $tp->TemplateID = $templateid; $tp->PortNumber = $portnum; if (!$person->WriteAccess) { $response['error'] = true; $response['errorcode'] = 403; $response['message'] = __("Unauthorized"); } else { if (!$tp->CreatePort()) { $response['error'] = true; $response['errorcode'] = 404; $response['message'] = __("Device template port creation failed");
static function createPorts($DeviceID, $update_existing = false) { // If $update_existing is true then we'll try to create all the ports and as a by product // create any new ports. The setting here will ensure we don't log any errors from the // ports that already exist. $dev = new Device(); $dev->DeviceID = $DeviceID; if (!$dev->GetDevice()) { return false; } // Check the user's permissions to modify this device if ($dev->Rights != 'Write') { return false; } $portList = array(); //Search template ports $tports = array(); if ($dev->TemplateID > 0) { $tport = new TemplatePowerPorts(); $tport->TemplateID = $dev->TemplateID; $tports = $tport->getPorts(); } for ($i = 1; $i <= $dev->PowerSupplyCount; $i++) { $portList[$i] = new PowerPorts(); $portList[$i]->DeviceID = $dev->DeviceID; $portList[$i]->PortNumber = $i; if (isset($tports[$i])) { // Get any attributes from the template foreach ($tports[$i] as $key => $value) { if (array_key_exists($key, $portList[$i])) { $portList[$i]->{$key} = $value; } } // Temp fix for issue #632 until the models can be brought into alignment $portList[$i]->Notes = $tports[$i]->PortNotes; } $portList[$i]->Label = $portList[$i]->Label == "" ? __("Power Connection") . " {$i}" : $portList[$i]->Label; $portList[$i]->createPort($update_existing); } return $portList; }
function getPorts() { global $dbh; $this->MakeSafe(); $sql = "SELECT * FROM fac_TemplatePowerPorts WHERE TemplateID={$this->TemplateID} ORDER BY PortNumber ASC;"; $ports = array(); foreach ($dbh->query($sql) as $row) { $ports[$row['PortNumber']] = TemplatePowerPorts::RowToObject($row); } return $ports; }
} } } $mList = $m->getSubscriptionList(); foreach ($mList as $man) { curl_setopt($c, CURLOPT_URL, 'https://repository.opendcim.org/api/template/bymanufacturer/' . $man->GlobalID); curl_setopt($c, CURLOPT_CUSTOMREQUEST, 'GET'); $result = curl_exec($c); $jr = json_decode($result); if (@$jr->errorcode == 200) { if (is_array($jr->templates)) { foreach ($jr->templates as $tem) { $tm = new Manufacturer(); $cs = new Slot(); $tp = new TemplatePorts(); $tpp = new TemplatePowerPorts(); foreach ($t as $prop => $val) { @($t->{$prop} = $tem->{$prop}); } $m->GlobalID = $t->ManufacturerID; $m->getManufacturerByGlobalID(); $t->ManufacturerID = $m->ManufacturerID; // Snag the images if ($t->FrontPictureFile != "") { $tmpname = explode(".", basename($t->FrontPictureFile), 2); $frontname = $picturedir . $tmpname[1]; grab_image($t->FrontPictureFile, $frontname); $t->FrontPictureFile = $tmpname[1]; } if ($t->RearPictureFile != "") { $tmpname = explode(".", basename($t->RearPictureFile), 2);
$response['message'] = __("Port not found for TemplateID: ") . " {$templateid}:{$portnumber}"; } else { $response['error'] = false; $response['errorcode'] = 200; $response['dataports'] = $tp; } echoResponse(200, $response); }); // // URL: /api/v1/devicetemplate/:templateid/powerports // Method: GET // Params: templateid // Returns: Power ports defined for device template with templateid // $app->get('/devicetemplate/:templateid/powerports', function ($templateid) use($app) { $tp = new TemplatePowerPorts(); $tp->TemplateID = $templateid; if (!($ports = $tp->getPorts())) { $response['error'] = true; $response['errorcode'] = 404; $response['message'] = __("No ports found for TemplateID: ") . " {$templateid}"; } else { $response['error'] = false; $response['errorcode'] = 200; $response['powerports'] = $ports; } echoResponse(200, $response); }); // // URL: /api/v1/manufacturer // Method: GET
foreach ($tList as $temp) { if ($temp->ManufacturerID != $m->ManufacturerID) { $m->ManufacturerID = $temp->ManufacturerID; $m->GetManufacturerByID(); } $temp->ManufacturerID = $m->GlobalID; $tp = new TemplatePorts(); $tp->TemplateID = $temp->TemplateID; $tpList = $tp->getPorts(); // Convert the base template object to an associative array for easier manipulation $postData["template"] = json_decode(json_encode($temp), true); $postData["templateports"] = array(); foreach ($tpList as $tport) { array_push($postData["templateports"], json_decode(json_encode($tport), true)); } $tpp = new TemplatePowerPorts(); $tpp->TemplateID = $temp->TemplateID; $tppList = $tpp->getPorts(); $postData["templatepowerports"] = array(); foreach ($tppList as $pport) { array_push($postData["templatepowerports"], json_decode(json_encode($pport), true)); } if ($temp->DeviceType == "Chassis") { $sList = Slot::getSlots($temp->TemplateID); $postData["slots"] = array(); foreach ($sList as $s) { array_push($postData["slots"], json_decode(json_encode($s), true)); } } if ($temp->DeviceType == "CDU") { $ct->TemplateID = $temp->TemplateID;