diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aa3e04..c06976b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,16 @@ Changelog of Git Changelog.

No issue

+445db500b3ab876 Jenkins Server 2017-07-25 16:15:39 +

+

recommit for updates in build 92

+ +

+b4e4ceb9b07cde4 Arne Teuke 2017-07-25 16:15:21 +

+

added parameter documentation

+ +

a3517b81e663a07 Jenkins Server 2017-07-25 16:13:43

recommit for updates in build 91

diff --git a/doc/_index.html b/doc/_index.html index 6d3e204..83e59cb 100644 --- a/doc/_index.html +++ b/doc/_index.html @@ -201,7 +201,7 @@ diff --git a/doc/file.README.html b/doc/file.README.html index c8390ba..078b03e 100644 --- a/doc/file.README.html +++ b/doc/file.README.html @@ -338,7 +338,7 @@ environments.

diff --git a/doc/index.html b/doc/index.html index 0c88fde..8d3596c 100644 --- a/doc/index.html +++ b/doc/index.html @@ -338,7 +338,7 @@ environments.

diff --git a/doc/puppet_classes/cd_nagios.html b/doc/puppet_classes/cd_nagios.html index 5a159fc..612e56f 100644 --- a/doc/puppet_classes/cd_nagios.html +++ b/doc/puppet_classes/cd_nagios.html @@ -139,7 +139,7 @@ class cd_nagios { diff --git a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html index 718f516..3d1152f 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html +++ b/doc/puppet_classes/cd_nagios_3A_3Acertbot_3A_3Acerts.html @@ -230,7 +230,7 @@ class cd_nagios::certbot::certs ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html index 79d4e07..ac6d322 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aclient_3A_3Atarget.html @@ -368,7 +368,7 @@ class cd_nagios::client::target ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html index 65a4529..860d1fc 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html +++ b/doc/puppet_classes/cd_nagios_3A_3Afirewall_3A_3Aiptables.html @@ -207,7 +207,7 @@ class cd_nagios::firewall::iptables ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html index f6bc446..a974abe 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Aconfig.html @@ -195,7 +195,7 @@ class cd_nagios::main::config ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html index f71b1ee..29f97e4 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Adirs.html @@ -468,7 +468,7 @@ class cd_nagios::main::dirs ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html index 3b885e8..edd3806 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Ainstall.html @@ -235,7 +235,7 @@ class cd_nagios::main::install ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html index 78755d0..9a28605 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html +++ b/doc/puppet_classes/cd_nagios_3A_3Amain_3A_3Auser.html @@ -200,7 +200,7 @@ class cd_nagios::main::user ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html index 59ddc93..d320d4c 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Acommands.html @@ -595,7 +595,7 @@ class cd_nagios::nagios::objects::commands ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html index fc713bd..e4e21b9 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html +++ b/doc/puppet_classes/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplate_rules.html @@ -115,8 +115,7 @@ for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/. - }

+href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

@@ -127,10 +126,12 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

-

cd_nagios::objects::templates { $name:

+

cd_nagios::nagios::objects::templates { 'generic contact':

-
ng_template_object => 'service',
+
ng_template_object      => 'contact',
+ng_template_object_name =>  'generic-contact',
+}
@@ -142,7 +143,6 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.
 
 
-26
 27
 28
 29
@@ -170,10 +170,38 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.
 51
 52
 53
-54
+54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 -
# File 'manifests/nagios/objects/template_rules.pp', line 26
+        
# File 'manifests/nagios/objects/template_rules.pp', line 27
 
 class cd_nagios::nagios::objects::template_rules (
 
@@ -197,11 +225,38 @@ class cd_nagios::nagios::objects::template_rules (
       notify    =>  Service[$ng_service],
     }
 
-    # example rule 
-    cd_nagios::objects::templates { 'generic contact':
+    # basic templates
+    cd_nagios::nagios::objects::templates { 'generic contact':
       ng_template_object      => 'contact',
       ng_template_object_name =>  'generic-contact',
     }
+    cd_nagios::nagios::objects::templates { 'generic-host':
+      ng_template_object      =>  'host',
+      ng_template_object_name =>  'generic-host',
+    }
+    cd_nagios::nagios::objects::templates { 'linux-server':
+      ng_template_object      =>  'host',
+      ng_template_object_name =>  'linux-server',
+      ng_template_object_use  =>  'generic-host',
+      ng_notification_options =>  'd,u,r',
+    }
+    cd_nagios::nagios::objects::templates { 'windows-server':
+      ng_template_object      =>  'host',
+      ng_template_object_name =>  'windows-server',
+      ng_template_object_use  =>  'generic-host',
+      ng_notification_options =>  'd,u,r',
+    }
+    cd_nagios::nagios::objects::templates { 'generic-service':
+      ng_template_object      =>  'service',
+      ng_template_object_name =>  'generic-service',
+      ng_max_check_attempts   =>  '3',
+      ng_notification_options =>  'w,u,c,r',
+    }
+    cd_nagios::nagios::objects::templates { 'local-service':
+      ng_template_object      =>  'service',
+      ng_template_object_name =>  'generic-service',
+      ng_max_check_attempts   =>  '4',
+    }
   }
 }
@@ -211,7 +266,7 @@ class cd_nagios::nagios::objects::template_rules ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aparams.html b/doc/puppet_classes/cd_nagios_3A_3Aparams.html index 436d0ea..e8aabb4 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aparams.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aparams.html @@ -5557,7 +5557,7 @@ $ng_target_command = "${ng_conf_d_dir}/nagios_command.cfg" diff --git a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html index 48bb1d5..f6eed7a 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aselinux_3A_3Aconfig.html @@ -249,7 +249,7 @@ class cd_nagios::selinux::config ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html index a2ad9b2..6100b63 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aaccess_rules.html @@ -195,7 +195,7 @@ class cd_nagios::server::access_rules ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html index faa7045..e20de0b 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Afiles.html @@ -334,7 +334,7 @@ class cd_nagios::server::files ( diff --git a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html index 66952c0..755f07d 100644 --- a/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html +++ b/doc/puppet_classes/cd_nagios_3A_3Aserver_3A_3Aservice.html @@ -270,7 +270,7 @@ class cd_nagios::server::service ( diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html index 4228bc2..5379fda 100644 --- a/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html +++ b/doc/puppet_defined_types/cd_nagios_3A_3Anagios_3A_3Aobjects_3A_3Atemplates.html @@ -108,7 +108,9 @@ for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see www.gnu.org/licenses/.

+href="http://www.gnu.org/licenses">www.gnu.org/licenses/. +notifications. +for the defined service or host.

@@ -130,7 +132,7 @@ href="http://www.gnu.org/licenses">www.gnu.org/licenses/.

the object type for the templates. -valid options are contact, +Valid options are contact, host and service.

@@ -247,7 +249,7 @@ r = notify on host recoveries (UP states), f = notify when the host starts and stops flapping, -s = snotify when host or service scheduled downtime starts and +s = notify when host or service scheduled downtime starts and ends. n = none (the contact will not receive any type of host notifications).

@@ -315,6 +317,478 @@ definition, we do not want to register those.

+
  • + + ng_template_object_use + + + (string) + + + (defaults to: undef) + + + — +
    +

    Which template to use for a given +host or service definition, i.e. +generic-host, generic-service etc.

    +
    + +
  • + +
  • + + ng_notifications_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether notifications are enabled. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_event_handler_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether event handlers are enabled. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_flap_detection_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether flap detection is enabled. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_failure_prediction_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether failure prediction is +enabled. Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_process_perf_data + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to process performance data. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_retain_status_information + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to retain status +information. Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_retain_nonstatus_information + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to retain non-status +information. Valid options are 0 +and 1.

    +
    + +
  • + +
  • + + ng_notification_period + + + (string) + + + (defaults to: '24x7') + + + — +
    +

    Which period in to send out

    +
    + +
  • + +
  • + + ng_notification_interval + + + (string) + + + (defaults to: '30') + + + — +
    +

    Whoe often (in minutes) we should +resend notifications for the current +status.

    +
    + +
  • + +
  • + + ng_check_period + + + (string) + + + (defaults to: '24x7') + + + — +
    +

    Which period in to run checks for the defined +object.

    +
    + +
  • + +
  • + + ng_check_interval + + + (string) + + + (defaults to: '5') + + + — +
    +

    How often in minutes to check the defined +object.

    +
    + +
  • + +
  • + + ng_retry_interval + + + (string) + + + (defaults to: '1') + + + — +
    +

    at what interval in minutes to schedule +retries for the defined object.

    +
    + +
  • + +
  • + + ng_max_check_attempts + + + (string) + + + (defaults to: '10') + + + — +
    +

    how often to check the defined object +maximal.

    +
    + +
  • + +
  • + + ng_notification_options + + + (string) + + + (defaults to: undef) + + + — +
    +

    see ng_service_notification_options +and +ng_host_notification_options.

    +
    + +
  • + +
  • + + ng_contact_groups + + + (string) + + + (defaults to: 'admins') + + + — +
    +

    contact groups for the defined oject. +Specified contact group must exit in +contact_groups

    +
    + +
  • + +
  • + + ng_active_checks_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to enable active checks. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_passive_checks_enabled + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to enable passive checks. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_parallelize_check + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to parallelize checks +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_obsess_over_service + + + (string) + + + (defaults to: '1') + + + — +
    +

    Whether to obsess over the service. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_check_freshness + + + (string) + + + (defaults to: '0') + + + — +
    +

    Whether to check freshness. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_is_volatile + + + (string) + + + (defaults to: '0') + + + — +
    +

    Whether the service is volatile. +Valid options are 0 and +1.

    +
    + +
  • + +
  • + + ng_normal_check_interval + + + (string) + + + (defaults to: '10') + + + — +
    +

    How often to check the service +under normal conditions.

    +
    + +
  • + +
  • + + ng_retry_check_interval + + + (string) + + + (defaults to: '2') + + + — +
    +

    Re-check the service every x minutes +until a hard state can be determined.

    +
    + +
  • +
  • ng_host_notification_period @@ -328,6 +802,19 @@ definition, we do not want to register those.

  • +
  • + + ng_check_command + + + (Any) + + + (defaults to: 'check-host-alive') + + +
  • + @@ -338,33 +825,59 @@ definition, we do not want to register those.

     
     
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150
    -
    # File 'manifests/nagios/objects/templates.pp', line 53
    +        
    # File 'manifests/nagios/objects/templates.pp', line 101
     
     define cd_nagios::nagios::objects::templates (
     $ng_template_object               = undef,
    @@ -376,6 +889,32 @@ $ng_host_notification_options     = 'd,u,r,f,s',
     $ng_service_notification_commands = 'notify-service-by-email',
     $ng_host_notification_commands    = 'notify-host-by-email',
     $ng_object_register               = '0',
    +$ng_template_object_use           = undef,
    +$ng_notifications_enabled         = '1',
    +$ng_event_handler_enabled         = '1',
    +$ng_flap_detection_enabled        = '1',
    +$ng_failure_prediction_enabled    = '1',
    +$ng_process_perf_data             = '1',
    +$ng_retain_status_information     = '1',
    +$ng_retain_nonstatus_information  = '1',
    +$ng_notification_period           = '24x7',
    +$ng_notification_interval         = '30',
    +$ng_check_period                  = '24x7',
    +$ng_check_interval                = '5',
    +$ng_retry_interval                = '1',
    +$ng_max_check_attempts            = '10',
    +$ng_check_command                 = 'check-host-alive',
    +$ng_notification_options          = undef,
    +$ng_contact_groups                = 'admins',
    +$ng_active_checks_enabled         = '1',
    +$ng_passive_checks_enabled        = '1',
    +$ng_parallelize_check             = '1',
    +$ng_obsess_over_service           = '1',
    +$ng_check_freshness               = '0',
    +$ng_is_volatile                   = '0',
    +$ng_normal_check_interval         = '10',
    +$ng_retry_check_interval          = '2',
    +
     
     ) {
     $ng_nagios_server       = $::cd_nagios::params::ng_nagios_server
    @@ -397,7 +936,7 @@ $ng_templates_rule_erb  = $::cd_nagios::params::ng_templates_rule_erb
     
     
           
    diff --git a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
    index e207eba..84b7fad 100644
    --- a/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
    +++ b/doc/puppet_defined_types/cd_nagios_3A_3Aserver_3A_3Aaccess.html
    @@ -220,7 +220,7 @@ $ng_service       = $::cd_nagios::params::ng_service
     
     
           
    diff --git a/doc/top-level-namespace.html b/doc/top-level-namespace.html
    index 0088636..22cdb75 100644
    --- a/doc/top-level-namespace.html
    +++ b/doc/top-level-namespace.html
    @@ -90,7 +90,7 @@
     
     
           
    diff --git a/manifests/nagios/objects/template_rules.pp b/manifests/nagios/objects/template_rules.pp
    index 947dc5b..4cbb711 100644
    --- a/manifests/nagios/objects/template_rules.pp
    +++ b/manifests/nagios/objects/template_rules.pp
    @@ -19,8 +19,9 @@
     #    You should have received a copy of the GNU General Public License
     #    along with this program.  If not, see .
     # @summary  Class manages /etc/nagios/conf.d/templates.cfg through concat.
    -# @example  cd_nagios::objects::templates { $name:
    -#     ng_template_object => 'service',
    +# @example      cd_nagios::nagios::objects::templates { 'generic contact':
    +#   ng_template_object      => 'contact',
    +#   ng_template_object_name =>  'generic-contact',
     #   }
     ################################################################################
     class cd_nagios::nagios::objects::template_rules (
    @@ -45,10 +46,37 @@ class cd_nagios::nagios::objects::template_rules (
           notify    =>  Service[$ng_service],
         }
     
    -    # example rule 
    -    cd_nagios::objects::templates { 'generic contact':
    +    # basic templates
    +    cd_nagios::nagios::objects::templates { 'generic contact':
           ng_template_object      => 'contact',
           ng_template_object_name =>  'generic-contact',
         }
    +    cd_nagios::nagios::objects::templates { 'generic-host':
    +      ng_template_object      =>  'host',
    +      ng_template_object_name =>  'generic-host',
    +    }
    +    cd_nagios::nagios::objects::templates { 'linux-server':
    +      ng_template_object      =>  'host',
    +      ng_template_object_name =>  'linux-server',
    +      ng_template_object_use  =>  'generic-host',
    +      ng_notification_options =>  'd,u,r',
    +    }
    +    cd_nagios::nagios::objects::templates { 'windows-server':
    +      ng_template_object      =>  'host',
    +      ng_template_object_name =>  'windows-server',
    +      ng_template_object_use  =>  'generic-host',
    +      ng_notification_options =>  'd,u,r',
    +    }
    +    cd_nagios::nagios::objects::templates { 'generic-service':
    +      ng_template_object      =>  'service',
    +      ng_template_object_name =>  'generic-service',
    +      ng_max_check_attempts   =>  '3',
    +      ng_notification_options =>  'w,u,c,r',
    +    }
    +    cd_nagios::nagios::objects::templates { 'local-service':
    +      ng_template_object      =>  'service',
    +      ng_template_object_name =>  'generic-service',
    +      ng_max_check_attempts   =>  '4',
    +    }
       }
     }
    diff --git a/manifests/nagios/objects/templates.pp b/manifests/nagios/objects/templates.pp
    index c9df353..ab7da62 100644
    --- a/manifests/nagios/objects/templates.pp
    +++ b/manifests/nagios/objects/templates.pp
    @@ -20,7 +20,7 @@
     #    along with this program.  If not, see .
     # @summary  Define manages populates /etc/nagios/conf.d/templates.cfg.
     # @param  [string] ng_template_object the object type for the templates.
    -#   valid options are `contact`, `host` and `service`.
    +#   Valid options are `contact`, `host` and `service`.
     # @param  [string] ng_template_object_name populates the name field,
     #   i.e. `generic-contact`, `generic-host`, `generic-service`.
     # @param  [string] ng_svc_notification_period Period in which to send out
    @@ -41,7 +41,7 @@
     #   u = notify on UNREACHABLE host states,
     #   r = notify on host recoveries (UP states),
     #   f = notify when the host starts and stops flapping,
    -#   s = snotify when host or service scheduled downtime starts and ends.
    +#   s = notify when host or service scheduled downtime starts and ends.
     #   n =  none (the contact will not receive any type of host  notifications).
     # @param  [string] ng_service_notification_commands Command to use for
     #   service event notification. Command must be defined in commands.cfg
    @@ -49,6 +49,54 @@
     #   host event notification. Command must be defined in commands.cfg.
     # @param  [string]  ng_object_register Whether to register the object to Nagios.
     #   Since this is a template definition, we do not want to register those.
    +# @param  [string] ng_template_object_use Which template to use for a given
    +#   host or service definition, i.e. `generic-host`, `generic-service` etc.
    +# @param  [string]  ng_notifications_enabled Whether notifications are enabled.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_event_handler_enabled Whether event handlers are enabled.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_flap_detection_enabled Whether flap detection is enabled.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_failure_prediction_enabled Whether failure prediction is
    +#   enabled. Valid options are `0` and `1`.
    +# @param  [string] ng_process_perf_data Whether to process performance data.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_retain_status_information Whether to retain status
    +#   information. Valid options are `0` and `1`.
    +# @param  [string] ng_retain_nonstatus_information Whether to retain non-status
    +#   information. Valid options are `0` and `1`.
    +# @param  [string] ng_notification_period Which period in to send out
    +# notifications. for the defined service or host.
    +# @param  [string] ng_notification_interval Whoe often (in minutes) we should
    +#   resend notifications for the current status.
    +# @param  [string] ng_check_period Which period in to run checks for the defined
    +#   object.
    +# @param  [string]  ng_check_interval How often in minutes to check the defined
    +#   object.
    +# @param  [string] ng_retry_interval at what interval in minutes to schedule
    +#   retries for the defined object.
    +# @param  [string]  ng_max_check_attempts how often to check the defined object
    +#   maximal.
    +# @param [string] ng_notification_options see `ng_service_notification_options`
    +#   and `ng_host_notification_options`.
    +# @param  [string] ng_contact_groups contact groups for the defined oject.
    +#   Specified contact group must exit in contact_groups
    +# @param  [string] ng_active_checks_enabled Whether to enable active checks.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_passive_checks_enabled Whether to enable passive checks.
    +#   Valid options are `0` and `1`.
    +# @param [string] ng_parallelize_check Whether to  parallelize checks
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_obsess_over_service Whether to obsess over the service.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_check_freshness Whether to check freshness.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_is_volatile Whether the service is volatile.
    +#   Valid options are `0` and `1`.
    +# @param  [string] ng_normal_check_interval How often to check the service
    +#   under normal conditions.
    +# @param  [string]  ng_retry_check_interval Re-check the service every x minutes
    +#   until a hard state can be determined.
     ################################################################################
     define cd_nagios::nagios::objects::templates (
     $ng_template_object               = undef,
    @@ -60,6 +108,32 @@ $ng_host_notification_options     = 'd,u,r,f,s',
     $ng_service_notification_commands = 'notify-service-by-email',
     $ng_host_notification_commands    = 'notify-host-by-email',
     $ng_object_register               = '0',
    +$ng_template_object_use           = undef,
    +$ng_notifications_enabled         = '1',
    +$ng_event_handler_enabled         = '1',
    +$ng_flap_detection_enabled        = '1',
    +$ng_failure_prediction_enabled    = '1',
    +$ng_process_perf_data             = '1',
    +$ng_retain_status_information     = '1',
    +$ng_retain_nonstatus_information  = '1',
    +$ng_notification_period           = '24x7',
    +$ng_notification_interval         = '30',
    +$ng_check_period                  = '24x7',
    +$ng_check_interval                = '5',
    +$ng_retry_interval                = '1',
    +$ng_max_check_attempts            = '10',
    +$ng_check_command                 = 'check-host-alive',
    +$ng_notification_options          = undef,
    +$ng_contact_groups                = 'admins',
    +$ng_active_checks_enabled         = '1',
    +$ng_passive_checks_enabled        = '1',
    +$ng_parallelize_check             = '1',
    +$ng_obsess_over_service           = '1',
    +$ng_check_freshness               = '0',
    +$ng_is_volatile                   = '0',
    +$ng_normal_check_interval         = '10',
    +$ng_retry_check_interval          = '2',
    +
     
     ) {
     $ng_nagios_server       = $::cd_nagios::params::ng_nagios_server
    diff --git a/templates/nagios/templates_cfg_rule.erb b/templates/nagios/templates_cfg_rule.erb
    index b5a213d..2c00f14 100644
    --- a/templates/nagios/templates_cfg_rule.erb
    +++ b/templates/nagios/templates_cfg_rule.erb
    @@ -1,18 +1,133 @@
     
     <% if @ng_template_object == 'contact' -%>
     define <%= @ng_template_object %>{
    -  name                          <%= @ng_template_object_name %>           ;
    -  service_notification_period   <%= @ng_svc_notification_period %>        ;
    -  host_notification_period      <%= @ng_host_notification_period %>       ;
    -  service_notification_options  <%= @ng_service_notification_options %>   ;
    -  host_notification_options     <%= @ng_host_notification_options %>      ;
    -  service_notification_commands <%= @ng_service_notification_commands %>  ;
    -  host_notification_commands    <%= @ng_host_notification_commands %>     ;
    -  register                      <%= @ng_object_register %>                ;
    +  name                          <%= @ng_template_object_name %>
    +  service_notification_period   <%= @ng_svc_notification_period %>
    +  host_notification_period      <%= @ng_host_notification_period %>
    +  service_notification_options  <%= @ng_service_notification_options %>
    +  host_notification_options     <%= @ng_host_notification_options %>
    +  service_notification_commands <%= @ng_service_notification_commands %>
    +  host_notification_commands    <%= @ng_host_notification_commands %>
    +  register                      <%= @ng_object_register %>
       }
     <% elsif @ng_template_object == 'host' -%>
    -
    -<% elsif @ng_template_object == 'service' -%>
    -
    -
    +<% if @ng_template_object_name == 'generic-host' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  notifications_enabled         <%= @ng_notifications_enabled %>
    +  event_handler_enabled         <%= @ng_event_handler_enabled %>
    +  flap_detection_enabled        <%= @ng_flap_detection_enabled %>
    +  failure_prediction_enabled    <%= @ng_failure_prediction_enabled %>
    +  process_perf_data             <%= @ng_process_perf_data %>
    +  retain_status_information     <%= @ng_retain_status_information %>
    +  retain_nonstatus_information  <%= @ng_retain_nonstatus_information %>
    +  notification_period	          <%= @ng_notification_period %>
    +  register                      <%= @ng_object_register %>
    + }
    +<% end -%>
    +<% if @ng_template_object_name == 'linux-server' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  use                           <%= @ng_template_object_use %>
    +  check_period                  <%= @ng_check_period %>
    +  check_interval                <%= @ng_check_interval %>
    +  retry_interval                <%= @ng_retry_interval %>
    +  max_check_attempts            <%= @ng_ng_max_check_attempts %>
    +  check_command                 <%= @ng_check_command %>
    +  notification_period           <%= @ng_notification_period %>
    +  notification_interval         <%= @ng_notification_interval %>
    +  notification_options          <%= @ng_notification_options %>
    +  contact_groups                <%= @ng_contact_groups %>
    +  hostgroups                    linux-servers
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end %>
    +<% if @ng_template_object_name == 'windows-server' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  use                           <%= @ng_template_object_use %>
    +  check_period                  <%= @ng_check_period %>
    +  check_interval                <%= @ng_check_interval %>
    +  retry_interval                <%= @ng_retry_interval %>
    +  max_check_attempts            <%= @ng_max_check_attempts %>
    +  check_command                 <%= @ng_check_command %>
    +  notification_period           <%= @ng_notification_period %>
    +  notification_interval         <%= @ng_notification_interval %>
    +  notification_options          <%= @ng_notification_options %>
    +  contact_groups                <%= @ng_contact_groups %>
    +  hostgroups                    windows-servers
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end %>
    +<% if @ng_template_object_name == 'generic_printer' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  use                           <%= @ng_template_object_use %>
    +  check_period                  <%= @ng_check_period %>
    +  check_interval                <%= @ng_check_interval %>
    +  retry_interval                <%= @ng_retry_interval %>
    +  max_check_attempts            <%= @ng_max_check_attempts %>
    +  check_command                 <%= @ng_check_command %>
    +  notification_period           <%= @ng_notification_period %>
    +  notification_interval         <%= @ng_notification_interval %>
    +  notification_options          <%= @ng_notification_options %>
    +  contact_groups                <%= @ng_contact_groups %>
    +  statusmap_image               printer.png
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end %>
    +<% if @ng_template_object_name == 'generic_switch' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  use                           <%= @ng_template_object_use %>
    +  check_period                  <%= @ng_check_period %>
    +  check_interval                <%= @ng_check_interval %>
    +  retry_interval                <%= @ng_retry_interval %>
    +  max_check_attempts            <%= @ng_max_check_attempts %>
    +  check_command                 <%= @ng_check_command %>
    +  notification_period           <%= @ng_notification_period %>
    +  notification_interval         <%= @ng_notification_interval %>
    +  notification_options          <%= @ng_notification_options %>
    +  contact_groups                <%= @ng_contact_groups %>
    +  statusmap_image               switch.png
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end %>
    +<% elsif @ng_template_object == 'service' -%>
    +<% if @ng_template_object_name == 'generic-service' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  active_checks_enabled         <%= @ng_active_checks_enabled %>
    +  passive_checks_enabled        <%= @ng_passive_checks_enabled %>
    +  parallelize_check             <%= @ng_parallelize_check %>
    +  obsess_over_service           <%= @ng_obsess_over_service %>
    +  check_freshness               <%= @ng_check_freshness %>
    +  notifications_enabled         <%= @ng_notifications_enabled %>
    +  event_handler_enabled         <%= @ng_event_handler_enabled %>
    +  flap_detection_enabled        <%= @ng_flap_detection_enabled %>
    +  failure_prediction_enabled    <%= @ng_failure_prediction_enabled  %>
    +  process_perf_data             <%= @ng_process_perf_data %>
    +  retain_status_information     <%= @ng_retain_status_information %>
    +  retain_nonstatus_information  <%= @ng_retain_nonstatus_information %>
    +  is_volatile                   <%= @ng_is_volatile %>
    +  check_period                  <%= @ng_check_period %>
    +  max_check_attempts            <%= @ng_max_check_attempts %>
    +  normal_check_interval         <%= @ng_normal_check_interval %>
    +  retry_check_interval          <%= @ng_retry_check_interval %>
    +  contact_groups                <%= @ng_contact_groups %>
    +  notification_interval         <%= @ng_notification_interval %>
    +  notification_period           <%= @ng_notification_period %>
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end -%>
    +<% if @ng_template_object_name == 'local-service' -%>
    +define <%= @ng_template_object %>{
    +  name                          <%= @ng_template_object_name %>
    +  use                           <%= @ng_template_object_use %>
    +  max_check_attempts            <%= @ng_max_check_attempts %>
    +  normal_check_interval         <%= @ng_normal_check_interval %>
    +  retry_check_interval          <%= @ng_retry_check_interval %>
    +  register                      <%= @ng_object_register %>
    +  }
    +<% end -%>
     <% end -%>