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
1 changed files with 18 additions and 7 deletions

View File

@ -1051,19 +1051,30 @@ sub convert_checkcommand {
my $cfg_obj_1x = shift;
my $commands_1x = shift;
my $obj_1x = shift; #host or service
my $service_hostname = shift;
my $global_macros_1x = shift;
my $command_1x;
my $command_2x = {};
my $check_command;
#say Dumper($commands_1x);
#say Dumper($obj_1x);
# ignore objects without check_command (may defined in template!)
return if (!defined($obj_1x->{'check_command'}));
# objects without check_command may have it defined in template!
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'}" );
# 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
#return if (!defined($real_command_name_1x));
@ -1333,7 +1344,7 @@ sub convert_2x {
##########################################
# 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);
@ -1560,7 +1571,7 @@ sub convert_2x {
# 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);
if(defined($host_check_command_2x->{'check_command_name_1x'})) {
@ -2686,8 +2697,8 @@ sub convert_2x {
######################################
# 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 ($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 ($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, $obj_2x_service_host_name, $global_macros_1x);
#say Dumper($host_check_command_2x);
# check if this service check is a possible match for __I2CONVERT_HOST_CHECK?