$app->halt(404, $apiResponse->returnJson()); } // Lets make sure we have the minimum required keys for defining a service dependency foreach ($required_keys as $rkey) { if (!isset($serviceDependencyInfo[$rkey]) || empty($serviceDependencyInfo[$rkey])) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect required parameter {$rkey} " . servicedependency_rkeyMessage($rkey)); $app->halt(404, $apiResponse->returnJson()); } } $serviceDependencyInfo = servicedependency_validate($app, $deployment, $serviceDependencyInfo); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentSvcDependency($deployment, $serviceDependencyInfo['name'], $deployRev) === true) { RevDeploy::modifyDeploymentSvcDependency($deployment, $serviceDependencyInfo['name'], $serviceDependencyInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Modified Service Dependency " . $serviceDependencyInfo['name']); } else { RevDeploy::createDeploymentSvcDependency($deployment, $serviceDependencyInfo['name'], $serviceDependencyInfo, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Created Service Dependency " . $serviceDependencyInfo['name']); } $apiResponse->printJson(); })->name('saigon-api-create-service-dependency'); $app->delete('/sapi/servicedependency/:deployment/:servicedependency', function ($deployment, $servicedependency) use($app) { check_deployment_exists($app, $deployment); check_auth($app, $deployment); check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (preg_match('/,/', $servicedependency)) { $servicedependencys = preg_split('/\\s?,\\s?/', $servicedependency); foreach ($servicedependencys as $stemp) { RevDeploy::deleteDeploymentSvcDependency($deployment, $stemp, $deployRev); } } else {
private static function copyServiceDependencies($deployment, $revision, array $sdInfo) { if (self::$init === false) { self::init(); } foreach ($sdInfo as $sd => $sdArray) { if ($sdArray['deployment'] == self::$m_commonrepo && $sdArray['deployment'] == 'common') { continue; } if ($sdArray['deployment'] == self::$m_commonrepo) { continue; } unset($sdArray['deployment']); foreach ($sdArray as $key => $value) { if (is_array($sdArray[$key])) { $sdArray[$key] = implode(',', $sdArray[$key]); } } RevDeploy::createDeploymentSvcDependency($deployment, $sd, $sdArray, $revision); } }
public function copy_write() { $viewData = new ViewData(); $deployment = $this->getDeployment('svc_dep_error'); $this->checkGroupAuth($deployment); $this->checkDeploymentRevStatus($deployment); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $svcDepInfo = $this->fetchSvcDepInfo($deployment, 'copy_write', $modrevision); $svcDepName = $svcDepInfo['name']; if (RevDeploy::existsDeploymentSvcDependency($deployment, $svcDepName, $modrevision) === true) { $viewData->error = 'Service information exists for ' . $svcDepName . ' in ' . $deployment . ' Deployment'; $viewData->svcs = RevDeploy::getCommonMergedDeploymentSvcs($deployment, $modrevision); $viewData->svcDepInfo = $svcDepInfo; $viewData->action = 'copy_write'; $this->sendResponse('svc_dep_action_stage', $viewData); } if (RevDeploy::createDeploymentSvcDependency($deployment, $svcDepName, $svcDepInfo, $modrevision) === false) { $viewData->header = $this->getErrorHeader('svc_dep_error'); $viewData->error = 'Unable to write service information for ' . $svcDepName . ' into ' . $deployment . ' Deployment'; $this->sendError('generic_error', $viewData); } $viewData->deployment = $deployment; $viewData->svc = $svcDepName; $this->sendResponse('svc_dep_write', $viewData); }