Exemplo n.º 1
0
 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);
 }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
        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) {