$app->halt(404, $apiResponse->returnJson()); } if (!isset($serviceGroupsInfo['alias']) || empty($serviceGroupsInfo['alias'])) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect alias parameter (longer human readable information about service, one simple line)"); $app->halt(404, $apiResponse->returnJson()); } elseif (preg_match_all('/[^\\w.-\\s]/s', $serviceGroupsInfo['alias'], $forbidden)) { $apiResponse = new APIViewData(1, $deployment, "Unable to use service groups alias specified, detected forbidden characters " . implode('', array_unique($forbidden[0]))); $app->halt(404, $apiResponse->returnJson()); } $serviceGroupsInfo = servicegroup_validate($app, $deployment, $serviceGroupsInfo); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentSvcGroup($deployment, $serviceGroupsInfo['name'], $deployRev) === true) { RevDeploy::modifyDeploymentSvcGroup($deployment, $serviceGroupsInfo['name'], $serviceGroupsInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Modified Service Group " . $serviceGroupsInfo['name']); } else { RevDeploy::createDeploymentSvcGroup($deployment, $serviceGroupsInfo['name'], $serviceGroupsInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Created Service Group " . $serviceGroupsInfo['name']); } $apiResponse->printJson(); })->name('saigon-api-create-service-groups'); $app->delete('/sapi/servicegroup/:deployment/:servicegroup', function ($deployment, $servicegroup) use($app) { check_deployment_exists($app, $deployment); check_auth($app, $deployment); check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (preg_match('/,/', $servicegroup)) { $servicegroups = preg_split('/\\s?,\\s?/', $servicegroup); foreach ($servicegroups as $stemp) { RevDeploy::deleteDeploymentSvcGroup($deployment, $stemp, $deployRev); } } else {
private static function copyServiceGroups($deployment, $revision, array $sgInfo) { if (self::$init === false) { self::init(); } foreach ($sgInfo as $sg => $sgArray) { if ($sgArray['deployment'] == self::$m_commonrepo && $sgArray['deployment'] == 'common') { continue; } if ($sgArray['deployment'] == self::$m_commonrepo) { continue; } unset($sgArray['deployment']); foreach ($sgArray as $key => $value) { if (is_array($sgArray[$key])) { $sgArray[$key] = implode(',', $sgArray[$key]); } } RevDeploy::createDeploymentSvcGroup($deployment, $sg, $sgArray, $revision); } }
public function copy_write() { $viewData = new ViewData(); $deployment = $this->getDeployment('svc_group_error'); $this->checkGroupAuth($deployment); $this->checkDeploymentRevStatus($deployment); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $svcGrpName = $this->getParam('svcName'); $svcGrpInfo = $this->fetchSvcInfo($deployment, 'copy_write'); if (RevDeploy::existsDeploymentSvcGroup($deployment, $svcGrpName, $modrevision) === true) { $viewData->error = 'Service information exists for ' . $svcGrpName . ' in ' . $deployment . ' Deployment'; $viewData->svcGrpInfo = $svcGrpInfo; $viewData->action = 'copy_write'; $this->sendResponse('svc_group_action_stage', $viewData); } if (RevDeploy::createDeploymentSvcGroup($deployment, $svcGrpName, $svcGrpInfo, $modrevision) === false) { $viewData->header = $this->getErrorHeader('svc_group_error'); $viewData->error = 'Unable to write service information for ' . $svcGrpName . ' into ' . $deployment . ' Deployment'; $this->sendError('generic_error', $viewData); } $viewData->deployment = $deployment; $viewData->svc = $svcGrpName; $this->sendResponse('svc_group_write', $viewData); }