Преглед изворни кода

Feature: added monitoring module

Jan Collijs пре 8 година
родитељ
комит
af33ea765f
2 измењених фајлова са 110 додато и 0 уклоњено
  1. 66 0
      manifests/mod/monitoring.pp
  2. 44 0
      spec/classes/icingaweb2_mod_monitoring_spec.rb

+ 66 - 0
manifests/mod/monitoring.pp

@@ -0,0 +1,66 @@
+# == Class icingaweb2::mod::monitoring
+#
+class icingaweb2::mod::monitoring (
+  $web_root = $::icingaweb2::params::web_root,
+) {
+  require ::icingaweb2
+
+  File {
+    require => Class['::icingaweb2::config'],
+    owner => $::icingaweb2::config_user,
+    group => $::icingaweb2::config_group,
+    mode  => $::icingaweb2::config_file_mode,
+  }
+
+  file { "${::icingaweb2::config_dir}/modules/monitoring":
+    ensure => directory,
+    mode   => $::icingaweb2::config_dir_mode;
+  }
+
+  Ini_Setting {
+    ensure  => present,
+    require => File["${::icingaweb2::config_dir}/modules/monitoring"],
+  }
+
+  ini_setting { 'security settings':
+    section => 'security',
+    setting => 'protected_customvars',
+    value   => '"*pw*,*pass*,community"',
+    path    => "${::icingaweb2::config_dir}/modules/monitoring/config.ini",
+  }
+
+  ini_setting { 'backend ido setting':
+    section => 'icinga_ido',
+    setting => 'type',
+    value   => 'ido',
+    path    => "${::icingaweb2::config_dir}/modules/monitoring/backends.ini",
+  }
+
+  ini_setting { 'backend resource setting':
+    section => 'icinga_ido',
+    setting => 'resource',
+    value   => 'icinga_ido',
+    path    => "${::icingaweb2::config_dir}/modules/monitoring/backends.ini",
+  }
+
+  ini_setting { 'command transport setting':
+    section => 'icinga2',
+    setting => 'transport',
+    value   => 'local',
+    path    => "${::icingaweb2::config_dir}/modules/monitoring/commandtransports.ini",
+  }
+
+  ini_setting { 'command transport path setting':
+    section => 'icinga2',
+    setting => 'path',
+    value   => '/var/run/icinga2/cmd/icinga2.cmd',
+    path    => "${::icingaweb2::config_dir}/modules/monitoring/commandtransports.ini",
+  }
+
+  file { "${::icingaweb2::config_dir}/enabledModules/monitoring":
+    ensure => link,
+    target => '/usr/share/icingaweb2/modules/monitoring'
+  }
+
+}
+

+ 44 - 0
spec/classes/icingaweb2_mod_monitoring_spec.rb

@@ -0,0 +1,44 @@
+require 'spec_helper'
+
+describe 'icingaweb2::mod::monitoring', :type => :class do
+  let (:pre_condition) { '$concat_basedir = "/tmp"' }
+  let (:facts) { debian_facts }
+
+  let :pre_condition do
+    'include ::icingaweb2'
+  end
+
+  describe 'without parameters' do
+    it { should contain_ini_setting('security settings').with(
+        'section' => /security/,
+        'setting' => /protected_customvars/,
+        'value'   => /community/,
+        'path'    => /config.ini/
+      )
+    }
+    it { should contain_ini_setting('backend ido setting').with(
+        'section' => /icinga_ido/,
+        'setting' => /type/,
+        'value'   => /ido/,
+        'path'    => /backends.ini/
+      )
+    }
+    it { should contain_ini_setting('backend resource setting').with(
+        'section' => /icinga_ido/,
+        'setting' => /resource/,
+        'value'   => /icinga_ido/,
+        'path'    => /backends.ini/
+      )
+    }
+    it { should contain_ini_setting('command transport setting').with(
+        'section' => /icinga2/,
+        'setting' => /transport/,
+        'value'   => /local/,
+	'path'    => /commandtransports.ini/
+
+      )
+    }
+
+  end
+
+end