public function copy_write() { $viewData = new ViewData(); $deployment = $this->getDeployment('timeperiod_error'); $this->checkGroupAuth($deployment); $this->checkDeploymentRevStatus($deployment); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $timeName = $this->getParam('tpName'); $tpArray = $_SESSION[$deployment]['timeperiods']; $timeInfo = $this->fetchTimeperiodInfo($deployment, 'copy_write', $modrevision); if (RevDeploy::existsDeploymentTimeperiod($deployment, $timeName, $modrevision) === true) { $viewData->error = 'Timeperiod information exists for ' . $timeName . ' in ' . $deployment . ' Deployment'; $viewData->timeInfo = $timeInfo; $viewData->action = 'copy_write'; $this->sendResponse('timeperiod_action_stage', $viewData); } if (RevDeploy::createDeploymentTimeperiod($deployment, $timeName, $timeInfo, $tpArray, $modrevision) === false) { $viewData->header = $this->getErrorHeader('timeperiod_error'); $viewData->error = 'Unable to write timeperiod information for ' . $timeName . ' into ' . $deployment . ' Deployment'; $this->sendError('generic_error', $viewData); } unset($_SESSION[$deployment]['timeperiods']); $viewData->deployment = $deployment; $viewData->timeperiod = $timeName; $this->sendResponse('timeperiod_write', $viewData); }
private static function copyTimeperiods($deployment, $revision, array $tpInfo) { if (self::$init === false) { self::init(); } foreach ($tpInfo as $tpName => $tpArray) { if ($tpArray['deployment'] == self::$m_commonrepo && $tpArray['deployment'] == 'common') { continue; } if ($tpArray['deployment'] == self::$m_commonrepo) { continue; } $tpTimes = $tpArray['times']; unset($tpArray['times']); unset($tpArray['deployment']); RevDeploy::createDeploymentTimeperiod($deployment, $tpName, $tpArray, $tpTimes, $revision); } }
} if (!isset($timeperiodInfo['use']) || empty($timeperiodInfo['use'])) { // use flag is undetected, need to exit if no timeperiod directives / times were provided $timeperiodData = timeperiodBuildTimes($app, $deployment, $timeperiodInfo); } else { // detected use flag, don't exit out if nothing is detected. $timeperiodData = timeperiodBuildTimes($app, $deployment, $timeperiodInfo, true); } unset($timeperiodInfo['timeperiods']); check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentTimeperiod($deployment, $timeperiodInfo['timeperiod_name'], $deployRev) === true) { RevDeploy::modifyDeploymentTimeperiod($deployment, $timeperiodInfo['timeperiod_name'], $timeperiodInfo, $timeperiodData, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Modified Timeperiod: " . $timeperiodInfo['timeperiod_name']); } else { RevDeploy::createDeploymentTimeperiod($deployment, $timeperiodInfo['timeperiod_name'], $timeperiodInfo, $timeperiodData, $deployRev); $apiResponse = new APIViewData(0, $deployment, "Successfully Created Timeperiod: " . $timeperiodInfo['timeperiod_name']); } $apiResponse->printJson(); })->name('saigon-api-create-timeperiod'); $app->get('/sapi/timeperiod/:deployment/:timeperiod(/:staged)', function ($deployment, $timeperiod, $staged = false) use($app) { check_deployment_exists($app, $deployment); // Load up Current Timeperiods or Staged Timeperiods if ($staged == 1) { $revs = RevDeploy::getDeploymentRevs($deployment); if ($revs['currrev'] == $revs['nextrev']) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect staged revision to reference"); $app->halt(404, $apiResponse->returnJson()); } $deployRev = $revs['nextrev']; } else {