You are here

function monitoring_icinga_objects_definitions_output in Monitoring 7

Creates the object definitions output part.

Parameters

bool $active_checks:

bool $check_freshness:

Return value

array Renderable array.

3 calls to monitoring_icinga_objects_definitions_output()
monitoring_icinga_config_active_page in modules/monitoring_icinga/monitoring_icinga.admin.inc
Icinga config active page callback.
monitoring_icinga_config_passive_page in modules/monitoring_icinga/monitoring_icinga.admin.inc
Icinga config passive page callback.
monitoring_icinga_config_passive_with_freshness_page in modules/monitoring_icinga/monitoring_icinga.admin.inc
Icinga config active page callback.

File

modules/monitoring_icinga/monitoring_icinga.admin.inc, line 164
Monitoring Icinga admin pages.

Code

function monitoring_icinga_objects_definitions_output($active_checks = TRUE, $check_freshness = FALSE) {
  $host = monitoring_host();
  $host_def = monitoring_config_code('monitoring_icinga', 'host', array(
    '@host' => $host,
    '@ip' => $_SERVER['SERVER_ADDR'],
  ));
  $services_def = array();
  $servicegroups = array();
  foreach (monitoring_sensor_manager()
    ->getEnabledSensorInfo() as $sensor_name => $sensor_info) {
    $services_def[] = monitoring_config_code('monitoring_icinga', 'service', array(
      '@host' => $host,
      '@service_description' => monitoring_icinga_service_description($sensor_info),
      '@sensor_name' => $sensor_name,
      '@site_key' => monitoring_host_key(),
      '@description' => $sensor_info
        ->getDescription(),
      '@active_checks' => (int) $active_checks,
      '@passive_checks' => (int) (!$active_checks),
      '@check_freshness' => (int) $check_freshness,
      '@check_command' => $check_freshness ? 'service_is_stale' : 'check_drupal',
    ));
    $category = strtolower(str_replace(' ', '_', $sensor_info
      ->getCategory()));
    $servicegroups[$category]['alias'] = $category;
    $servicegroups[$category]['members'][] = $host . ',' . monitoring_icinga_service_description($sensor_info);
  }
  $services_def = implode("\n\n", $services_def);
  $servicegroups_def = array();
  foreach ($servicegroups as $name => $servicegroup) {
    $servicegroups_def[] = monitoring_config_code('monitoring_icinga', 'servicegroup', array(
      '@name' => monitoring_host_key() . '_' . $name,
      '@alias' => $servicegroup['alias'],
      '@members' => implode(', ', $servicegroup['members']),
    ));
  }
  $servicegroups_def = implode("\n", $servicegroups_def);

  // $system_services = monitoring_config_code('monitoring_icinga', 'system', array('@host' => $host));
  return array(
    '#theme' => 'monitoring_config_box',
    '#title' => t('Host and services configuration'),
    '#description' => t('At the Icinga server create /etc/icnga/objects/@name_icinga.cfg file with following code. Note that the code changes based on which sensor are enabled/disabled.', array(
      '@name' => monitoring_host_key(),
    )),
    '#code' => "; === HOST DEFINITION ===\n" . $host_def . "\n; === SERVICEGROUPS DEFINITIONS ===\n" . $servicegroups_def . "\n; === DRUPAL SERVICES DEFINITIONS ===\n" . $services_def,
    '#code_height' => '300',
  );
}