public static function copyDeploymentRevision($deployment, $fromrev, $torev) { if (self::$init === false) { self::init(); } self::$m_commonrepo = RevDeploy::getDeploymentCommonRepo($deployment); $results = array(); $results['timeperiods'] = RevDeploy::getCommonMergedDeploymentTimeperiodswData($deployment, $fromrev); $results['commands'] = RevDeploy::getCommonMergedDeploymentCommands($deployment, $fromrev, false); $results['contacttemplates'] = RevDeploy::getCommonMergedDeploymentContactTemplates($deployment, $fromrev); $results['contactgroups'] = RevDeploy::getCommonMergedDeploymentContactGroups($deployment, $fromrev); $results['contacts'] = RevDeploy::getCommonMergedDeploymentContacts($deployment, $fromrev); $results['hosttemplates'] = RevDeploy::getCommonMergedDeploymentHostTemplates($deployment, $fromrev); $results['hostgroups'] = RevDeploy::getCommonMergedDeploymentHostGroups($deployment, $fromrev); $results['servicetemplates'] = RevDeploy::getCommonMergedDeploymentSvcTemplates($deployment, $fromrev); $results['servicegroups'] = RevDeploy::getCommonMergedDeploymentSvcGroups($deployment, $fromrev); $results['servicedependencies'] = RevDeploy::getCommonMergedDeploymentSvcDependencies($deployment, $fromrev); $results['serviceescalations'] = RevDeploy::getDeploymentSvcEscalationswInfo($deployment, $fromrev); $results['services'] = RevDeploy::getCommonMergedDeploymentSvcs($deployment, $fromrev); $results['nodetemplates'] = RevDeploy::getDeploymentNodeTemplateswInfo($deployment, $fromrev); $results['resourcecfg'] = RevDeploy::getDeploymentResourceCfg($deployment, $fromrev); $results['cgicfg'] = RevDeploy::getDeploymentCgiCfg($deployment, $fromrev); $results['modgearmancfg'] = RevDeploy::getDeploymentModgearmanCfg($deployment, $fromrev); $results['nagioscfg'] = RevDeploy::getDeploymentNagiosCfg($deployment, $fromrev); $results['nrpecmds'] = RevDeploy::getDeploymentNRPECmdswInfo($deployment, $fromrev); $results['nrpecfg'] = RevDeploy::getDeploymentNRPECfg($deployment, $fromrev); $results['nrpeplugins'] = RevDeploy::getDeploymentNRPEPluginswData($deployment, $fromrev); $results['supnrpecfg'] = RevDeploy::getDeploymentSupNRPECfg($deployment, $fromrev); $results['supnrpeplugins'] = RevDeploy::getDeploymentSupNRPEPluginswData($deployment, $fromrev); $results['nagiosplugins'] = RevDeploy::getDeploymentNagiosPluginswData($deployment, $fromrev); foreach ($results as $key => $value) { if (empty($value)) { continue; } switch ($key) { case 'timeperiods': self::copyTimeperiods($deployment, $torev, $results['timeperiods']); break; case 'commands': self::copyCommands($deployment, $torev, $results['commands']); break; case 'contacttemplates': self::copyContactTemplates($deployment, $torev, $results['contacttemplates']); break; case 'contactgroups': self::copyContactGroups($deployment, $torev, $results['contactgroups']); break; case 'contacts': self::copyContacts($deployment, $torev, $results['contacts']); break; case 'hosttemplates': self::copyHostTemplates($deployment, $torev, $results['hosttemplates']); break; case 'hostgroups': self::copyHostGroups($deployment, $torev, $results['hostgroups']); break; case 'servicetemplates': self::copyServiceTemplates($deployment, $torev, $results['servicetemplates']); break; case 'servicegroups': self::copyServiceGroups($deployment, $torev, $results['servicegroups']); break; case 'servicedependencies': self::copyServiceDependencies($deployment, $torev, $results['servicedependencies']); break; case 'serviceescalations': self::copyServiceEscalations($deployment, $torev, $results['serviceescalations']); break; case 'services': self::copyServices($deployment, $torev, $results['services']); break; case 'nodetemplates': self::copyNodeTemplates($deployment, $torev, $results['nodetemplates']); break; case 'resourcecfg': self::copyResourceCfg($deployment, $torev, $results['resourcecfg']); break; case 'cgicfg': self::copyCGICfg($deployment, $torev, $results['cgicfg']); break; case 'modgearmancfg': self::copyModgearmanCfg($deployment, $torev, $results['modgearmancfg']); break; case 'nagioscfg': self::copyNagiosCfg($deployment, $torev, $results['nagioscfg']); break; case 'nrpecmds': self::copyNRPECmds($deployment, $torev, $results['nrpecmds']); break; case 'nrpecfg': self::copyNRPECfg($deployment, $torev, $results['nrpecfg']); break; case 'nrpeplugins': self::copyNRPEPlugins($deployment, $torev, $results['nrpeplugins']); break; case 'supnrpecfg': self::copySupNRPECfg($deployment, $torev, $results['supnrpecfg']); break; case 'supnrpeplugins': self::copySupNRPEPlugins($deployment, $torev, $results['supnrpeplugins']); break; case 'nagiosplugins': self::copyNagiosPlugins($deployment, $torev, $results['nagiosplugins']); break; default: break; } } }
if (empty($pluginData)) { $apiResponse = new APIViewData(1, $deployment, "Unable to fetch plugins for {$deployment}"); $app->halt(403, $apiResponse->returnJson()); } $apiResponse = new APIViewData(0, $deployment, false); $apiResponse->setExtraResponseData('meta', $pluginData); $apiResponse->printJson(); })->name('saigon-api-consumer-nagios-plugins-meta'); /* * Mod-Gearman Config */ $app->get('/sapi/consumer/modgearmanconfig/:deployment', function ($deployment) use($app) { check_deployment_exists($app, $deployment); $deployRev = RevDeploy::getDeploymentRev($deployment); if (RevDeploy::existsDeploymentModgearmanCfg($deployment, $deployRev) === true) { $config = RevDeploy::getDeploymentModgearmanCfg($deployment, $deployRev); $apiResponse = new APIViewData(0, $deployment, false); $apiResponse->setExtraResponseData('config', $config); $apiResponse->printJson(); return; } $apiResponse = new APIViewData(1, $deployment, "Unable to detect modgearman config file for deployment: {$deployment}"); $app->halt(403, $apiResponse->returnJson()); })->name('saigon-api-consumer-modgearman-config'); /* * Cloud.com RouterVM Routine */ $app->get('/sapi/consumer/routervms/:zone', function ($zone) use($app) { $zone = strtoupper($zone); if (CDC_DS::isRouterZone($zone) === false) { $apiResponse = new APIViewData(1, false, "Unable to detect router vm zone specified: {$zone}");
// // Copyright (c) 2013, Zynga Inc. // https://github.com/zynga/saigon // Author: Matt West (https://github.com/mhwest13) // License: BSD 2-Clause // /* * Saigon API - Original v1 API Commands * Here for backwards compatibility, will remove when possible * Modifications were made from APIController to make it function in Slim */ $app->map('/api/getMGCfg/:deployment', function ($deployment) use($app) { check_deployment_exists($app, $deployment); $deployrev = RevDeploy::getDeploymentRev($deployment); if (RevDeploy::existsDeploymentModgearmanCfg($deployment, $deployrev) === true) { $results = RevDeploy::getDeploymentModgearmanCfg($deployment, $deployrev); echo json_encode($results); return; } $apiResponse = new APIViewData(1, $deployment, "Unable to detect modgearman config file for deployment: {$deployment}"); $app->halt(403, $apiResponse->returnJson()); })->via('GET', 'POST'); $app->get('/api/getNagiosCfg/:deployment(/:subdeployment)', function ($deployment, $subdeployment = false) use($app) { check_deployment_exists($app, $deployment); $deployrev = RevDeploy::getDeploymentRev($deployment); $viewData = RevDeploy::getDeploymentData($deployment, $deployrev); if ($subdeployment !== false) { $hostsearchresults = array(); foreach ($viewData['hostsearches'] as $key => $hostsearch) { if ($hostsearch['subdeployment'] == $subdeployment) { unset($hostsearch['subdeployment']);
/** * stage - load up stage view for modifying / creating modgearman config * * @access public * @return void */ public function stage() { $viewData = new ViewData(); $deployment = $this->getDeployment('modgearman_cfg_error'); $modrevision = RevDeploy::getDeploymentNextRev($deployment); if (RevDeploy::existsDeploymentModgearmanCfg($deployment, $modrevision) === true) { $viewData->mgcfg = RevDeploy::getDeploymentModgearmanCfg($deployment, $modrevision); } else { $cfg = array(); // Core $cfg['debug'] = "0"; $cfg['eventhandler'] = "yes"; $cfg['services'] = "yes"; $cfg['hosts'] = "yes"; $cfg['do_hostchecks'] = "yes"; $cfg['encryption'] = "yes"; $cfg['server'] = "10.0.0.1:4370"; $cfg['dupeserver'] = ""; $cfg['hostgroups'] = ""; $cfg['servicegroups'] = ""; $cfg['logfile'] = base64_encode("/var/log/mod_gearman/mod_gearman.log"); $cfg['key'] = hash("md5", file_get_contents("/dev/urandom", 0, null, -1, 16)); // NEB $cfg['result_workers'] = "1"; $cfg['use_uniq_jobs'] = "on"; $cfg['localhostgroups'] = ""; $cfg['localservicegroups'] = ""; $cfg['queue_custom_variable'] = ""; $cfg['perfdata'] = "no"; $cfg['perfdata_mode'] = 1; $cfg['orphan_host_checks'] = "yes"; $cfg['orphan_service_checks'] = "yes"; $cfg['accept_clear_results'] = "no"; // Worker $cfg['job-timeout'] = "60"; $cfg['min-worker'] = "10"; $cfg['max-worker'] = "20"; $cfg['idle-timeout'] = "30"; $cfg['max-jobs'] = "500"; $cfg['max-age'] = "0"; $cfg['spawn-rate'] = "1"; $cfg['fork_on_exec'] = "yes"; $cfg['show_error_output'] = "yes"; $cfg['workaround_rc_25'] = "off"; $cfg['load_limit1'] = "0"; $cfg['load_limit5'] = "0"; $cfg['load_limit15'] = "0"; $cfg['dup_results_are_passive'] = "yes"; $cfg['enable_embedded_perl'] = "on"; $cfg['use_embedded_perl_implicitly'] = "off"; $cfg['use_perl_cache'] = "on"; $cfg['p1_file'] = base64_encode("/usr/share/mod_gearman/mod_gearman_p1.pl"); $viewData->mgcfg = $cfg; } $viewData->deployment = $deployment; $this->sendResponse('modgearman_cfg_stage', $viewData); }