Re: [Nagios-devel] Additive inheritance and canceling inheritance

Support forum for Nagios Core, Nagios Plugins, NCPA, NRPE, NSCA, NDOUtils and more. Engage with the community of users including those using the open source solutions.
Locked
Guest

Re: [Nagios-devel] Additive inheritance and canceling inheritance

Post by Guest »

Shad L. Lords wrote:
> Following up on my previous message about additive inhereritance it appears
> that it only applies to the first used instance. Here is an example config
> that fails. There also appears to be an issue with canceling inheritance.
>
> define host {
> name default
> check_command check_host_alive
> max_check_attempts 3
> check_period 24x7
> flap_detection_enabled 1
> process_perf_data 0
> retain_status_information 1
> retain_nonstatus_information 1
> notification_interval 30
> notification_options d,r,f
> notifications_enabled 1
> register 0
> }
>
> define host {
> name A6
> hostgroups +rhg_A6
> parents SW-CAB_A6
> register 0
> }
>
> define host {
> name 24x7
> notification_period 24x7
> register 0
> }
>
> define host {
> name sec
> hostgroups +nhg_sec
> contact_groups +cg_sec1
> register 0
> }
>
> define host {
> use default,A6,24x7,sec
> host_name dwsoms1
> alias OMS 1
> address theip
> parents null
> }
>
> What I'd like to have the end resulting object be is:
>
> hostgroups rhg_A6, nhg_sec
> contact_groups cg_sec1
> notification_period 24x7
> no parents defined
>
> I end up with an object that has:
>
> hostgroups rhg_A6
> contact_groups cg_sec1
> notification_period 24x7
> parents SW-CAB_A6
>
> If I add a "hostgroups +nhg_sec" line to the last host then it doesn't add
> nhg_sec to the hostgroups instead it replaces it and I end up with only
> nhg_sec. However if I change the "use default,A6,24x7,sec" to "use
> A6,default,24x7,sec" then I do get both hostgroups listed.
>
> Hope this helps track down some potential issues,
>
> -Shad
>

The inheritance cancellation bug you found will be fixed in CVS shortly.
Thanks for pointing that out.

The additive inheritance is not working as you expected because I didn't
design it to work that way. Right now additive inheritance only works
when you inherit/add values at each level of template resolution. For
example:

define host{
name template1
hostgroups hg1
register 0
}

define host{
name template2
use template1
hostgroups +hg2
register 0
}

define host{
name template3
use template2
hostgroups +hg3
register 0
}

define host{
name realhost
use template3
}

Here are the resolved values for the "hostgroups" directives in each
host/template definition:

template1: hg1
template2: hg1,hg2
template3: hg1,hg2,hg3
realhost: hg1,hg2,hg3

The example config entries you provided offer another way to use
additive inheritance which would definitely be useful. I'll work on
getting a patch into CVS in the next day or two to make that work.

Thanks for the feedback and suggestions.


Ethan Galstad,
Nagios Developer
---
Email: [email protected]
Website: http://www.nagios.org





This post was automatically imported from historical nagios-devel mailing list archives
Original poster: [email protected]
Locked