/** * _getNRPECfg - get core nrpe config file * * @param mixed $deployment deployment we are referencing * @param mixed $revision revision we are referencing * * @static * @access private * @return void */ private static function _getNRPECfg($deployment, $revision) { $results = ""; if (RevDeploy::existsDeploymentNRPECfg($deployment, $revision) !== false) { $nrpecfgInfo = RevDeploy::getDeploymentNRPECfg($deployment, $revision); $results = NRPECreate::buildNRPEFile($deployment, $revision, $nrpecfgInfo); return $results; } return $results; }
$viewData->b64 = ""; $viewData->location = ""; $viewData->md5 = ""; $viewData->plugins = $plugins; } elseif (!empty($nrpeCfgInfo) && empty($plugins)) { $msg = NRPECreate::buildNRPEFile($deployment, $deployrev, $nrpeCfgInfo); $viewData->b64 = base64_encode($msg); $viewData->location = $nrpeCfgInfo['location']; $viewData->md5 = md5($msg); $viewData->plugins = array(); } else { foreach ($plugins as $plugin => $pArray) { unset($plugins[$plugin]['desc']); unset($plugins[$plugin]['deployment']); } $msg = NRPECreate::buildNRPEFile($deployment, $deployrev, $nrpeCfgInfo); $viewData->b64 = base64_encode($msg); $viewData->location = $nrpeCfgInfo['location']; $viewData->md5 = md5($msg); $viewData->plugins = $plugins; } echo json_encode($viewData); })->via('GET', 'POST'); $app->map('/api/getSupNRPECfg/:deployment', function ($deployment) use($app) { check_deployment_exists($app, $deployment); $deployrev = RevDeploy::getDeploymentRev($deployment); $nrpeCfgInfo = RevDeploy::getDeploymentSupNRPECfg($deployment, $deployrev); $plugins = RevDeploy::getCommonMergedDeploymentSupNRPEPluginsMetaData($deployment, $deployrev); $viewData = new ViewData(); if (empty($nrpeCfgInfo) && empty($plugins)) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect supplemental nrpe config information for deployment: {$deployment}");
$nrpeCfgInfo = RevDeploy::getDeploymentNRPECfg($deployment, $deployRev); $plugins = RevDeploy::getCommonMergedDeploymentNRPEPluginsMetaData($deployment, $deployRev); if (empty($nrpeCfgInfo) && empty($plugins)) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect nrpe config information for deployment: {$deployment}"); $app->halt(403, $apiResponse->returnJson()); } $apiResponse = new APIViewData(0, $deployment, false); if (empty($nrpeCfgInfo) && !empty($plugins)) { $apiResponse->setExtraResponseData('plugins', $plugins); } elseif (!empty($nrpeCfgInfo) && empty($plugins)) { $config = NRPECreate::buildNRPEFile($deployment, $deployRev, $nrpeCfgInfo); $apiResponse->setExtraResponseData('contents', base64_encode($config)); $apiResponse->setExtraResponseData('location', $nrpeCfgInfo['location']); $apiResponse->setExtraResponseData('md5', md5($config)); } else { $config = NRPECreate::buildNRPEFile($deployment, $deployRev, $nrpeCfgInfo); $apiResponse->setExtraResponseData('contents', base64_encode($config)); $apiResponse->setExtraResponseData('location', $nrpeCfgInfo['location']); $apiResponse->setExtraResponseData('md5', md5($config)); $apiResponse->setExtraResponseData('plugins', $plugins); } $apiResponse->printJson(); })->name('saigon-api-consumer-nrpe-config'); $app->get('/sapi/consumer/supnrpeconfig/:deployment', function ($deployment) use($app) { check_deployment_exists($app, $deployment); $deployRev = RevDeploy::getDeploymentRev($deployment); $nrpeCfgInfo = RevDeploy::getDeploymentSupNRPECfg($deployment, $deployRev); $plugins = RevDeploy::getCommonMergedDeploymentSupNRPEPluginsMetaData($deployment, $deployRev); if (empty($nrpeCfgInfo) && empty($plugins)) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect supplemental nrpe config information for deployment: {$deployment}"); $app->halt(403, $apiResponse->returnJson());
public function show() { $viewData = new ViewData(); $deployment = $this->getDeployment('nrpe_cfg_error'); $modrevision = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentNRPECfg($deployment, $modrevision) !== false) { $nrpecfgInfo = RevDeploy::getDeploymentNRPECfg($deployment, $modrevision); $filecontents = NRPECreate::buildNRPEFile($deployment, $modrevision, $nrpecfgInfo); $viewData->deployment = $deployment; $viewData->md5 = md5($filecontents); $viewData->location = $nrpecfgInfo['location']; $viewData->msg = $filecontents; $this->sendResponse('nrpe_cfg_output', $viewData); } $viewData->header = $this->getErrorHeader('nrpe_cfg_error'); $viewData->error = 'NRPE Config File for Deployment Specified Does not Exist'; $this->sendError('generic_error', $viewData); }
$app->halt(404, $apiResponse->returnJson()); } elseif (!isset($nrpeCfgInfo['allowed_hosts']) || empty($nrpeCfgInfo['allowed_hosts'])) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect allowed_hosts parameter (hosts allowed to connect to service)"); $app->halt(404, $apiResponse->returnJson()); } elseif (!isset($nrpeCfgInfo['cmds']) || empty($nrpeCfgInfo['cmds'])) { $apiResponse = new APIViewData(1, $deployment, "Unable to detect cmds parameter (commands to activate in nrpe config)"); $app->halt(404, $apiResponse->returnJson()); } // Param manipulation depending on what is detected if (is_array($nrpeCfgInfo['cmds'])) { $nrpeCfgInfo['cmds'] = implode(',', $nrpeCfgInfo['cmds']); } if (!isset($nrpeCfgInfo['include_dir']) || empty($nrpeCfgInfo['include_dir'])) { unset($nrpeCfgInfo['include_dir']); } check_revision_status($deployment); $deployRev = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentNRPECfg($deployment, $deployRev) === true) { RevDeploy::modifyDeploymentNRPECfg($deployment, $nrpeCfgInfo, $deployRev); $msg = "Successfully Modified NRPE Config"; } else { RevDeploy::createDeploymentNRPECfg($deployment, $nrpeCfgInfo, $deployRev); $msg = "Successfully Created NRPE Config"; } unset($nrpeCfgInfo); $nrpeCfgInfo = RevDeploy::getDeploymentNRPECfg($deployment, $deployRev); $fileContents = NRPECreate::buildNRPEFile($deployment, $deployRev, $nrpeCfgInfo); $apiResponse = new APIViewData(0, $deployment, $msg); $apiResponse->setExtraResponseData('md5', md5($fileContents)); $apiResponse->printJson(); })->name('saigon-api-create-nrpe-cfg');