public function copy_write() { $viewData = new ViewData(); $deployment = $this->getDeployment('ngnt_error'); $this->checkGroupAuth($deployment); $this->checkDeploymentRevStatus($deployment); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $ngntInfo = $this->fetchNGNTInfo($deployment, 'copy_write', $modrevision); if (RevDeploy::existsDeploymentNodeTemplate($deployment, $ngntInfo['name'], $modrevision) === true) { $viewData->error = 'Unable to process request, a node template with the same name already exists'; $viewData->nodeInfo = $ngntInfo; $viewData->services = RevDeploy::getCommonMergedDeploymentSvcs($deployment, $modrevision); $viewData->hosttemplates = RevDeploy::getCommonMergedDeploymentHostTemplates($deployment, $modrevision); if ($ngntInfo['type'] == 'dynamic') { $viewData->hostgroups = RevDeploy::getCommonMergedDeploymentHostGroups($deployment, $modrevision); $this->sendResponse('ngnt_action_stage', $viewData); } elseif ($ngntInfo['type'] == 'static') { $viewData->hostgroups = RevDeploy::getCommonMergedDeploymentHostGroups($deployment, $modrevision); $this->sendResponse('ngnt_action_static_stage', $viewData); } elseif ($ngntInfo['type'] == 'standard') { $this->sendResponse('ngnt_action_standard_stage', $viewData); } } if (RevDeploy::createDeploymentNodeTemplate($deployment, $ngntInfo['name'], $ngntInfo, $modrevision) === false) { $viewData->header = $this->getErrorHeader('ngnt_error'); $viewData->error = 'Unable to write node template information for ' . $ngntInfo['name'] . ' to ' . $deployment; $this->sendError('generic_error', $viewData); } $viewData->nodeTemp = $ngntInfo['name']; $viewData->deployment = $deployment; $this->sendResponse('ngnt_write', $viewData); }
private static function copyNodeTemplates($deployment, $revision, array $ntInfo) { if (self::$init === false) { self::init(); } foreach ($ntInfo as $nt => $ntArray) { if (isset($ntArray['services']) && !empty($ntArray['services'])) { $ntArray['services'] = implode(',', $ntArray['services']); } if (isset($ntArray['nservices']) && !empty($ntArray['nservices'])) { $ntArray['nservices'] = implode(',', $ntArray['nservices']); } RevDeploy::createDeploymentNodeTemplate($deployment, $nt, $ntArray, $revision); } }
unset($templateInfo['nregex']); } if (!isset($templateInfo['subdeployment']) || empty($templateInfo['subdeployment'])) { unset($templateInfo['subdeployment']); } check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentNodeTemplate($deployment, $templateInfo['name'], $deployRev) === true) { if (RevDeploy::checkDeploymentNodeTemplateType($deployment, $templateInfo['name'], $deployRev, $templateInfo['type']) === false) { $apiResponse = new APIViewData(1, $deployment, "Template type specified doesn't match template type stored in data store"); $app->halt(404, $apiResponse->returnJson()); } RevDeploy::modifyDeploymentNodeTemplate($deployment, $templateInfo['name'], $templateInfo, $deployRev); $msg = "Successfully Modified Dynamic Template: " . $templateInfo['name']; } else { RevDeploy::createDeploymentNodeTemplate($deployment, $templateInfo['name'], $templateInfo, $deployRev); $msg = "Successfully Created Dynamic Template: " . $templateInfo['name']; } $apiResponse = new APIViewData(0, $deployment, $msg); $apiResponse->printJson(); })->name('saigon-api-create-dynamic-template'); $app->delete('/sapi/matrix/:deployment/dynamic/:template', function ($deployment, $template) use($app) { check_deployment_exists($app, $deployment); check_auth($app, $deployment); check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (preg_match('/,/', $template)) { $results = array(); $templates = preg_split('/\\s?,\\s?/', $template); foreach ($templates as $tmptemplate) { if (RevDeploy::checkDeploymentNodeTemplateType($deployment, $tmptemplate, $deployRev, 'dynamic') === false) {