Exemplo n.º 1
0
 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;
         }
     }
 }
Exemplo n.º 2
0
    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}");
Exemplo n.º 3
0
//
// 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);
 }