Service dependencies broken in CVS HEAD?
Ethan Galstad
nagios at nagios.org
Mon Feb 26 18:37:55 CET 2007
Thomas Guyot-Sionnest wrote:
> Hi there,
>
> Yesterday I wanted to redo my patch for same-host service dependencies
> and add a master switch in the main config file so that by default it
> won't allow to omit the dependent_host*_name parameter.
>
> I started by building a test config... I just couldn't manage to create
> a service dependency. Even the simplest and straightforward
> servicedependency definition just wouldn't work. To be on the safe side
> I even checked one of my prod config with CVS HEAD after removing
> same-host svc deps and making it v3-compatible with no luck either. It
> would complain on every servicedependency definitions.
>
> Looking at the code I couldn't really tell what was wrong as I do not
> yet understand fully how Nagios parses the config.
>
> Also worth noting is some code for same-host depedencies. It's so
> incomplete I just can't understand how it got there!?!
>
> $ nl xdata/xodtemplate.c|grep -iC3 same.host
> 3952 char *host_name=NULL;
> 3953 char *service_descriptions=NULL;
> 3954 int first_item=FALSE;
> 3955 int same_host_dependency=FALSE;
> 3956 #ifdef NSCORE
> 3957 char *temp_buffer=NULL;
> 3958 #endif
> --
> 4365 /****** PROCESS SERVICE DEPENDENCY DEPENDENT
> HOSTS/HOSTGROUPS/SERVICES *****/
> 4366
> for(temp_servicedependency=xodtemplate_servicedependency_list;temp_servicedependency!=NULL;temp_servicedependency=temp_servicedependency->next){
>
> 4367 /* ADDED 02/04/2007 - special case for "same
> host" dependencies */
> 4368
> if(temp_servicedependency->dependent_host_name==NULL &&
> temp_servicedependency->dependent_hostgroup_name==NULL){
> 4369 if(temp_servicedependency->host_name)
> 4370
> temp_servicedependency->dependent_host_name=(char
> *)strdup(temp_servicedependency->host_name);
>
> As you can see there's a boolean for same host deps that isn't used
> (should be set to TRUE where it duplicates host_name to
> dependent_host_name and also used later to avoid most duplications to
> occur. Also hostgroup_name ist't duplicated so I think it wouldn't work
> with hostgroup_name.
>
> Thanks,
>
> Thomas
>
You shouldn't need to apply your patch - I've already implemented
similar functionality in the CVS code. If you want same host
dependencies, don't use the "dependent_host_name",
"dependent_hostgroup", or "dependent_servicegroup" directives.
define servicedependency{
host h1,h2
service_description svc1
dependent_service_description svc2,svc3
}
I just posted an update to CVS with some code cleanups, but no change in
functionality. Should make it easier to understand the code in
duplicate_objects().
Ethan Galstad,
Nagios Developer
---
Email: nagios at nagios.org
Website: http://www.nagios.org
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys-and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
More information about the Developers
mailing list