public function stage() { $viewData = new ViewData(); $deployment = $this->getDeployment('nrpe_cmd_error'); $modrevision = RevDeploy::getDeploymentNextRev($deployment); $viewData->nrpecmds = RevDeploy::getCommonMergedDeploymentNRPECmds($deployment, $modrevision); $viewData->deployment = $deployment; $this->sendResponse('nrpe_cmd_stage', $viewData); }
/** * buildNRPECmdLines * * @param mixed $deployment * @param mixed $revision * @param array $cherrypick * @static * @access public * @return void */ public static function buildNRPECmdLines($deployment, $revision, array $cherrypick = array()) { $nrpecmds = RevDeploy::getCommonMergedDeploymentNRPECmds($deployment, $revision); if (!empty($nrpecmds)) { $results = array(); if (empty($cherrypick)) { foreach ($nrpecmds as $nrpecmd => $nrpecmdInfo) { $cmdline = "command[{$nrpecmd}]=" . base64_decode($nrpecmdInfo['cmd_line']); $results[$nrpecmd] = $cmdline; } } else { foreach ($nrpecmds as $nrpecmd => $nrpecmdInfo) { if (!in_array($nrpecmd, $cherrypick)) { continue; } $cmdline = "command[{$nrpecmd}]=" . base64_decode($nrpecmdInfo['cmd_line']); $results[$nrpecmd] = $cmdline; } } ksort($results); return $results; } return array(); }
$request = $app->request(); $commonMerge = $request->get('common'); // Load up Current Commands or Staged Commands 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 { $deployRev = RevDeploy::getDeploymentRev($deployment); } $apiResponse = new APIViewData(0, $deployment, false); if ($commonMerge == 1) { $apiResponse->setExtraResponseData('commands', RevDeploy::getCommonMergedDeploymentNRPECmds($deployment, $deployRev)); } else { $apiResponse->setExtraResponseData('commands', RevDeploy::getDeploymentNRPECmdswInfo($deployment, $deployRev)); } $apiResponse->printJson(); })->name('saigon-api-get-nrpe-cmds'); $app->post('/sapi/nrpecmd/:deployment', function ($deployment) use($app) { check_deployment_exists($app, $deployment); check_auth($app, $deployment); $request = $app->request(); $contentType = $request->headers('Content-Type'); if ($contentType == 'application/json') { $nrpeCmdInfo = $request->getBody(); $nrpeCmdInfo = json_decode($nrpeCmdInfo, true); if (isset($nrpeCmdInfo['cmd_line']) && !empty($nrpeCmdInfo['cmd_line'])) { if (($b64dec = base64_decode($nrpeCmdInfo['cmd_line'], true)) === false) {