Config Conversion: Add proper check_command detection in templates.

This commit is contained in:
Michael Friedrich 2013-09-16 14:05:41 +02:00
parent 2739d5e0cd
commit 374b37077f

View File

@ -1051,19 +1051,30 @@ sub convert_checkcommand {
my $cfg_obj_1x = shift; my $cfg_obj_1x = shift;
my $commands_1x = shift; my $commands_1x = shift;
my $obj_1x = shift; #host or service my $obj_1x = shift; #host or service
my $service_hostname = shift;
my $global_macros_1x = shift; my $global_macros_1x = shift;
my $command_1x; my $command_1x;
my $command_2x = {}; my $command_2x = {};
my $check_command;
#say Dumper($commands_1x); #say Dumper($commands_1x);
#say Dumper($obj_1x); #say Dumper($obj_1x);
# ignore objects without check_command (may defined in template!) # objects without check_command may have it defined in template!
return if (!defined($obj_1x->{'check_command'})); if (!defined($obj_1x->{'check_command'})) {
# service
if (defined($obj_1x->{'__I2CONVERT_SERVICEDESCRIPTION'})) {
$check_command = obj_1x_get_service_attr($cfg_obj_1x, $obj_1x, $service_hostname, 'check_command');
} else {
$check_command = obj_1x_get_host_attr($cfg_obj_1x, $obj_1x, $service_hostname, 'check_command');
}
} else {
$check_command = $obj_1x->{'check_command'};
}
#debug("check_command: $obj_1x->{'check_command'}" ); #debug("check_command: $obj_1x->{'check_command'}" );
# split by ! and take only the check command # split by ! and take only the check command
my ($real_command_name_1x, @command_args_1x) = split /!/, $obj_1x->{'check_command'}; my ($real_command_name_1x, @command_args_1x) = split /!/, $check_command;
# ignore objects with empty check_command attribute # ignore objects with empty check_command attribute
#return if (!defined($real_command_name_1x)); #return if (!defined($real_command_name_1x));
@ -1333,7 +1344,7 @@ sub convert_2x {
########################################## ##########################################
# map the service check_command to 2.x # map the service check_command to 2.x
########################################## ##########################################
my ($service_check_command_2x, @command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_1x_service, $global_macros_1x); my ($service_check_command_2x, @command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_1x_service, $service_host_name, $global_macros_1x);
#say Dumper($service_check_command_2x); #say Dumper($service_check_command_2x);
@ -1560,7 +1571,7 @@ sub convert_2x {
# and link that service # and link that service
#################################################### ####################################################
my ($host_check_command_2x, @command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_1x_host, $global_macros_1x); my ($host_check_command_2x, @command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_1x_host, $obj_1x_host->{'__I2CONVERT_HOSTNAME'}, $global_macros_1x);
#say Dumper($host_check_command_2x); #say Dumper($host_check_command_2x);
if(defined($host_check_command_2x->{'check_command_name_1x'})) { if(defined($host_check_command_2x->{'check_command_name_1x'})) {
@ -2686,8 +2697,8 @@ sub convert_2x {
###################################### ######################################
# LINK HOST COMMAND WITH SERVICE CHECK # LINK HOST COMMAND WITH SERVICE CHECK
###################################### ######################################
my ($service_check_command_2x, @service_command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_2x_service, $global_macros_1x); my ($service_check_command_2x, @service_command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_2x_service, $obj_2x_service_host_name, $global_macros_1x);
my ($host_check_command_2x, @host_command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_2x_host, $global_macros_1x); my ($host_check_command_2x, @host_command_args_1x) = Icinga2::Convert::convert_checkcommand($cfg_obj_1x, @$cfg_obj_1x{'command'}, $obj_2x_host, $obj_2x_service_host_name, $global_macros_1x);
#say Dumper($host_check_command_2x); #say Dumper($host_check_command_2x);
# check if this service check is a possible match for __I2CONVERT_HOST_CHECK? # check if this service check is a possible match for __I2CONVERT_HOST_CHECK?