public function copy_write() { $viewData = new ViewData(); $deployment = $this->getDeployment('svc_template_error'); $this->checkGroupAuth($deployment); $this->checkDeploymentRevStatus($deployment); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $svcName = $this->getParam('svcName'); $svcInfo = $this->fetchSvcTemplateInfo($deployment, 'copy_write', $modrevision); if (RevDeploy::existsDeploymentSvcTemplate($deployment, $svcName, $modrevision) === true) { $viewData->error = 'Service template information exists for ' . $svcName . ' into ' . $deployment . ' Deployment'; $viewData->action = 'copy_write'; $viewData->svctemplate = $svcName; $viewData->deployment = $deployment; $viewData->svctemplates = RevDeploy::getCommonMergedDeploymentSvcTemplates($deployment, $modrevision); $viewData->timeperiods = RevDeploy::getCommonMergedDeploymentTimeperiods($deployment, $modrevision); $viewData->contacts = RevDeploy::getCommonMergedDeploymentContacts($deployment, $modrevision); $viewData->contactgroups = RevDeploy::getCommonMergedDeploymentContactGroups($deployment, $modrevision); $viewData->svcchkcmds = RevDeploy::getCommonMergedDeploymentCommands($deployment, $modrevision); $viewData->svcgroups = RevDeploy::getCommonMergedDeploymentSvcGroups($deployment, $modrevision); $viewData->svcInfo = $svcInfo; $this->sendResponse('svc_template_action_stage', $viewData); } if (RevDeploy::createDeploymentSvcTemplate($deployment, $svcName, $svcInfo, $modrevision) === false) { $viewData->header = $this->getErrorHeader('svc_template_error'); $viewData->error = 'Unable to write service tempalte information for ' . $svcName . ' into ' . $deployment . ' Deployment'; $this->sendError('generic_error', $viewData); } $viewData->deployment = $deployment; $viewData->svc = $svcName; $this->sendResponse('svc_template_write', $viewData); }
private static function copyServiceTemplates($deployment, $revision, array $stInfo) { if (self::$init === false) { self::init(); } foreach ($stInfo as $st => $stArray) { if ($stArray['deployment'] == self::$m_commonrepo && $stArray['deployment'] == 'common') { continue; } if ($stArray['deployment'] == self::$m_commonrepo) { continue; } unset($stArray['deployment']); foreach ($stArray as $key => $value) { if (is_array($stArray[$key])) { $stArray[$key] = implode(',', $stArray[$key]); } } RevDeploy::createDeploymentSvcTemplate($deployment, $st, $stArray, $revision); } }
// Lets make sure we have the minimum required keys for defining a service template validateContacts($app, $deployment, $serviceTemplateInfo); foreach ($required_keys as $rkey) { if (!isset($serviceTemplateInfo[$rkey]) || empty($serviceTemplateInfo[$rkey])) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect required parameter {$rkey} " . servicetemplate_rkeyMessage($rkey)); $app->halt(404, $apiResponse->returnJson()); } } } $serviceTemplateInfo = servicetemplate_validate($app, $deployment, $serviceTemplateInfo); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentSvcTemplate($deployment, $serviceTemplateInfo['name'], $deployRev) === true) { RevDeploy::modifyDeploymentSvcTemplate($deployment, $serviceTemplateInfo['name'], $serviceTemplateInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Modified Service Template " . $serviceTemplateInfo['name']); } else { RevDeploy::createDeploymentSvcTemplate($deployment, $serviceTemplateInfo['name'], $serviceTemplateInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Created Service Template " . $serviceTemplateInfo['name']); } $apiResponse->printJson(); })->name('saigon-api-create-service-template'); $app->delete('/sapi/servicetemplate/:deployment/:servicetemplate', function ($deployment, $servicetemplate) use($app) { check_deployment_exists($app, $deployment); check_auth($app, $deployment); check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (preg_match('/,/', $servicetemplate)) { $servicetemplates = preg_split('/\\s?,\\s?/', $servicetemplate); foreach ($servicetemplates as $stemp) { RevDeploy::deleteDeploymentSvcTemplate($deployment, $stemp, $deployRev); } } else {