mirror of
https://github.com/Icinga/icinga2.git
synced 2025-07-24 06:05:01 +02:00
configconvert: remove trailing whitespaces
This commit is contained in:
parent
bb2cbd044e
commit
6e186ac814
@ -106,12 +106,12 @@ sub obj_2x_command_exists {
|
|||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Migration
|
# Migration
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
# Get Object Helpers
|
# Get Object Helpers
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
# get host object by attr 'host_name'
|
# get host object by attr 'host_name'
|
||||||
@ -159,7 +159,7 @@ sub obj_get_service_obj_by_host_name_service_description {
|
|||||||
return $obj;
|
return $obj;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -256,7 +256,7 @@ sub obj_get_hostgroup_obj_by_hostgroup_name {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#################################################################################
|
#################################################################################
|
||||||
# Get Object Attribute Helpers
|
# Get Object Attribute Helpers
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
|
|
||||||
@ -416,7 +416,7 @@ sub obj_1x_get_host_host_name {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# we don't have a host name, should we look into a template?
|
# we don't have a host name, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -474,12 +474,12 @@ sub obj_1x_get_service_host_name_arr {
|
|||||||
}
|
}
|
||||||
push @{$obj_1x->{'__I2CONVERT_HOSTNAMES'}}, @host_name;
|
push @{$obj_1x->{'__I2CONVERT_HOSTNAMES'}}, @host_name;
|
||||||
|
|
||||||
#print "DEBUG: @{$obj_1x->{'__I2CONVERT_HOSTNAMES'}}";
|
#print "DEBUG: @{$obj_1x->{'__I2CONVERT_HOSTNAMES'}}";
|
||||||
return @host_name;
|
return @host_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
# we don't have a host name, should we look into a template?
|
# we don't have a host name, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -489,7 +489,7 @@ sub obj_1x_get_service_host_name_arr {
|
|||||||
# get the template object associated with by its unique 'name' attr
|
# get the template object associated with by its unique 'name' attr
|
||||||
my $obj_1x_tmpl = obj_get_tmpl_obj_by_tmpl_name($objs_1x, 'service', $obj_1x_template);
|
my $obj_1x_tmpl = obj_get_tmpl_obj_by_tmpl_name($objs_1x, 'service', $obj_1x_template);
|
||||||
|
|
||||||
# now recurse into ourselves and look for all possible hostnames in array
|
# now recurse into ourselves and look for all possible hostnames in array
|
||||||
@host_name = obj_1x_get_service_host_name_arr($objs_1x,$obj_1x_tmpl);
|
@host_name = obj_1x_get_service_host_name_arr($objs_1x,$obj_1x_tmpl);
|
||||||
#print "DEBUG: from tmpl $obj_1x_template: " . join(" ", @host_name) . "\n";
|
#print "DEBUG: from tmpl $obj_1x_template: " . join(" ", @host_name) . "\n";
|
||||||
|
|
||||||
@ -533,7 +533,7 @@ sub obj_1x_get_service_service_description {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# we don't have a service description, should we look into a template?
|
# we don't have a service description, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -583,7 +583,7 @@ sub obj_1x_get_service_attr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# we don't have the attribute, should we look into a template?
|
# we don't have the attribute, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -633,7 +633,7 @@ sub obj_1x_get_contact_attr {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# we don't have the attribute, should we look into a template?
|
# we don't have the attribute, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_1x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_1x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_1x_template (@{$obj_1x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -680,7 +680,7 @@ sub obj_2x_get_service_servicegroups {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# we don't have the attribute, should we look into a template?
|
# we don't have the attribute, should we look into a template?
|
||||||
# make sure _not_ to use
|
# make sure _not_ to use
|
||||||
if (defined($obj_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($obj_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $obj_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
# get the object referenced as template - this is an array of templates, loop (funny recursion here)
|
||||||
foreach my $obj_2x_template (@{$obj_2x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
foreach my $obj_2x_template (@{$obj_2x->{'__I2CONVERT_TEMPLATE_NAMES'}}) {
|
||||||
@ -712,7 +712,7 @@ sub obj_2x_get_service_servicegroups {
|
|||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# Conversion
|
# Conversion
|
||||||
#################################################################################
|
#################################################################################
|
||||||
|
|
||||||
# host|service_notification_commands are a comma seperated list w/o arguments
|
# host|service_notification_commands are a comma seperated list w/o arguments
|
||||||
@ -777,7 +777,7 @@ sub convert_notificationcommand {
|
|||||||
|
|
||||||
return $notification_commands_2x;
|
return $notification_commands_2x;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# event_handler
|
# event_handler
|
||||||
sub convert_eventhandler {
|
sub convert_eventhandler {
|
||||||
@ -818,8 +818,8 @@ sub convert_checkcommand {
|
|||||||
|
|
||||||
my $command_1x;
|
my $command_1x;
|
||||||
my $command_2x = {};
|
my $command_2x = {};
|
||||||
#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!)
|
# ignore objects without check_command (may defined in template!)
|
||||||
return if (!defined($obj_1x->{'check_command'}));
|
return if (!defined($obj_1x->{'check_command'}));
|
||||||
@ -914,7 +914,7 @@ sub convert_2x {
|
|||||||
if(defined($obj_1x_service->{'use'})) {
|
if(defined($obj_1x_service->{'use'})) {
|
||||||
@service_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_service->{'use'}, ',', 1);
|
@service_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_service->{'use'}, ',', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$obj_1x_service->{'__I2CONVERT_TEMPLATE_NAMES'}}, @service_templates;
|
push @{$obj_1x_service->{'__I2CONVERT_TEMPLATE_NAMES'}}, @service_templates;
|
||||||
|
|
||||||
# add dependency to ITL template to objects
|
# add dependency to ITL template to objects
|
||||||
@ -931,7 +931,7 @@ sub convert_2x {
|
|||||||
####################################################
|
####################################################
|
||||||
# XXX even if the service object uses templates, we need to figure out its host_name/service_description in order to safely link hosts towards it
|
# XXX even if the service object uses templates, we need to figure out its host_name/service_description in order to safely link hosts towards it
|
||||||
my @host_names = obj_1x_get_service_host_name_arr($cfg_obj_1x, $obj_1x_service);
|
my @host_names = obj_1x_get_service_host_name_arr($cfg_obj_1x, $obj_1x_service);
|
||||||
|
|
||||||
#print "DEBUG: service @host_names\n";
|
#print "DEBUG: service @host_names\n";
|
||||||
|
|
||||||
delete($obj_1x_service->{'__I2CONVERT_HOSTNAMES'});
|
delete($obj_1x_service->{'__I2CONVERT_HOSTNAMES'});
|
||||||
@ -986,7 +986,7 @@ sub convert_2x {
|
|||||||
# - check_period - XXX TODO
|
# - check_period - XXX TODO
|
||||||
# - notification_period - XXX TODO
|
# - notification_period - XXX TODO
|
||||||
# - contacts => users XXX DO NOT DELETE contacts and contactgroups, they will be assembled later for notifications!
|
# - contacts => users XXX DO NOT DELETE contacts and contactgroups, they will be assembled later for notifications!
|
||||||
# -
|
# -
|
||||||
####################################################
|
####################################################
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
@ -1034,10 +1034,10 @@ sub convert_2x {
|
|||||||
my $service_check_interval = undef;
|
my $service_check_interval = undef;
|
||||||
if(defined($obj_1x_service->{'normal_check_interval'})) {
|
if(defined($obj_1x_service->{'normal_check_interval'})) {
|
||||||
$service_check_interval = $obj_1x_service->{'normal_check_interval'};
|
$service_check_interval = $obj_1x_service->{'normal_check_interval'};
|
||||||
}
|
}
|
||||||
if(defined($obj_1x_service->{'check_interval'})) {
|
if(defined($obj_1x_service->{'check_interval'})) {
|
||||||
$service_check_interval = $obj_1x_service->{'check_interval'};
|
$service_check_interval = $obj_1x_service->{'check_interval'};
|
||||||
}
|
}
|
||||||
# we assume that 1.x kept 1m default interval, and map it
|
# we assume that 1.x kept 1m default interval, and map it
|
||||||
if (defined($service_check_interval)) {
|
if (defined($service_check_interval)) {
|
||||||
$cfg_obj_2x->{'service'}->{$service_cnt}->{'check_interval'} = $service_check_interval."m";
|
$cfg_obj_2x->{'service'}->{$service_cnt}->{'check_interval'} = $service_check_interval."m";
|
||||||
@ -1049,10 +1049,10 @@ sub convert_2x {
|
|||||||
my $service_retry_interval = undef;
|
my $service_retry_interval = undef;
|
||||||
if(defined($obj_1x_service->{'retry_check_interval'})) {
|
if(defined($obj_1x_service->{'retry_check_interval'})) {
|
||||||
$service_retry_interval = $obj_1x_service->{'retry_check_interval'};
|
$service_retry_interval = $obj_1x_service->{'retry_check_interval'};
|
||||||
}
|
}
|
||||||
if(defined($obj_1x_service->{'retry_interval'})) {
|
if(defined($obj_1x_service->{'retry_interval'})) {
|
||||||
$service_retry_interval = $obj_1x_service->{'retry_interval'};
|
$service_retry_interval = $obj_1x_service->{'retry_interval'};
|
||||||
}
|
}
|
||||||
# we assume that 1.x kept 1m default interval, and map it
|
# we assume that 1.x kept 1m default interval, and map it
|
||||||
if (defined($service_retry_interval)) {
|
if (defined($service_retry_interval)) {
|
||||||
$cfg_obj_2x->{'service'}->{$service_cnt}->{'retry_interval'} = $service_retry_interval."m";
|
$cfg_obj_2x->{'service'}->{$service_cnt}->{'retry_interval'} = $service_retry_interval."m";
|
||||||
@ -1080,7 +1080,7 @@ sub convert_2x {
|
|||||||
|
|
||||||
# XXX do not add duplicate event commands, they must remain unique by their check_command origin!
|
# XXX do not add duplicate event commands, they must remain unique by their check_command origin!
|
||||||
if ((obj_2x_command_exists($cfg_obj_2x, $obj_1x_service->{'event_handler'}) != 1)) {
|
if ((obj_2x_command_exists($cfg_obj_2x, $obj_1x_service->{'event_handler'}) != 1)) {
|
||||||
|
|
||||||
# create a new EventCommand 2x object with the original name
|
# create a new EventCommand 2x object with the original name
|
||||||
$cfg_obj_2x->{'command'}->{$command_obj_cnt}->{'__I2CONVERT_COMMAND_TYPE'} = 'Event';
|
$cfg_obj_2x->{'command'}->{$command_obj_cnt}->{'__I2CONVERT_COMMAND_TYPE'} = 'Event';
|
||||||
$cfg_obj_2x->{'command'}->{$command_obj_cnt}->{'__I2CONVERT_COMMAND_NAME'} = $service_event_command_2x->{'command_name'};
|
$cfg_obj_2x->{'command'}->{$command_obj_cnt}->{'__I2CONVERT_COMMAND_NAME'} = $service_event_command_2x->{'command_name'};
|
||||||
@ -1095,8 +1095,8 @@ sub convert_2x {
|
|||||||
# our PK
|
# our PK
|
||||||
$command_obj_cnt++;
|
$command_obj_cnt++;
|
||||||
}
|
}
|
||||||
|
|
||||||
# the event_handler name of 1.x is still the unique command object name, so we just keep
|
# the event_handler name of 1.x is still the unique command object name, so we just keep
|
||||||
# in __I2_CONVERT_EVENTCOMMAND_NAME in our service object
|
# in __I2_CONVERT_EVENTCOMMAND_NAME in our service object
|
||||||
$cfg_obj_2x->{'service'}->{$service_cnt}->{'__I2_CONVERT_EVENTCOMMAND_NAME'} = $service_event_command_2x->{'command_name'};
|
$cfg_obj_2x->{'service'}->{$service_cnt}->{'__I2_CONVERT_EVENTCOMMAND_NAME'} = $service_event_command_2x->{'command_name'};
|
||||||
|
|
||||||
@ -1143,7 +1143,7 @@ sub convert_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# make sure service object still got the checkcommand assigned
|
# make sure service object still got the checkcommand assigned
|
||||||
# the check command name of 1.x is still the unique command object name, so we just keep
|
# the check command name of 1.x is still the unique command object name, so we just keep
|
||||||
# in $service_check_command_2x->{'check_command'} the cut real check_command_name_1x
|
# in $service_check_command_2x->{'check_command'} the cut real check_command_name_1x
|
||||||
delete($service_check_command_2x->{'check_command'});
|
delete($service_check_command_2x->{'check_command'});
|
||||||
$cfg_obj_2x->{'service'}->{$service_cnt}->{'__I2_CONVERT_CHECKCOMMAND_NAME'} = $service_check_command_2x->{'check_command_name_1x'};
|
$cfg_obj_2x->{'service'}->{$service_cnt}->{'__I2_CONVERT_CHECKCOMMAND_NAME'} = $service_check_command_2x->{'check_command_name_1x'};
|
||||||
@ -1165,10 +1165,10 @@ sub convert_2x {
|
|||||||
# HOST
|
# HOST
|
||||||
# use => inherit template
|
# use => inherit template
|
||||||
# register 0 => template
|
# register 0 => template
|
||||||
# check_command => create a new service?
|
# check_command => create a new service?
|
||||||
######################################
|
######################################
|
||||||
|
|
||||||
# "get all 'host' hashref as array in hashmap, and their keys to access it"
|
# "get all 'host' hashref as array in hashmap, and their keys to access it"
|
||||||
foreach my $host_obj_1x_key (keys %{@$cfg_obj_1x{'host'}}) {
|
foreach my $host_obj_1x_key (keys %{@$cfg_obj_1x{'host'}}) {
|
||||||
|
|
||||||
#say Dumper(@$cfg_obj_1x{'host'}->{$host_obj_1x_key});
|
#say Dumper(@$cfg_obj_1x{'host'}->{$host_obj_1x_key});
|
||||||
@ -1186,7 +1186,7 @@ sub convert_2x {
|
|||||||
if(defined($obj_1x_host->{'use'})) {
|
if(defined($obj_1x_host->{'use'})) {
|
||||||
@host_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_host->{'use'}, ',', 1);
|
@host_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_host->{'use'}, ',', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$obj_1x_host->{'__I2CONVERT_TEMPLATE_NAMES'}}, @host_templates;
|
push @{$obj_1x_host->{'__I2CONVERT_TEMPLATE_NAMES'}}, @host_templates;
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
@ -1233,13 +1233,13 @@ sub convert_2x {
|
|||||||
# - check_period - XXX TODO
|
# - check_period - XXX TODO
|
||||||
# - notification_period - XXX TODO
|
# - notification_period - XXX TODO
|
||||||
# - contacts => users XXX DO NOT DELETE contacts and contactgroups - they will be assembled later for notifications!
|
# - contacts => users XXX DO NOT DELETE contacts and contactgroups - they will be assembled later for notifications!
|
||||||
# -
|
# -
|
||||||
# remove:
|
# remove:
|
||||||
# - check_command
|
# - check_command
|
||||||
####################################################
|
####################################################
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# macros (address*, etc)
|
# macros (address*, etc)
|
||||||
##########################################
|
##########################################
|
||||||
if(defined($cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'address'})) {
|
if(defined($cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'address'})) {
|
||||||
$cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'__I2CONVERT_MACROS'}->{'address'} = $cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'address'};
|
$cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'__I2CONVERT_MACROS'}->{'address'} = $cfg_obj_2x->{'host'}->{$host_obj_1x_key}->{'address'};
|
||||||
@ -1390,7 +1390,7 @@ sub convert_2x {
|
|||||||
if(defined($obj_1x_contact->{'use'})) {
|
if(defined($obj_1x_contact->{'use'})) {
|
||||||
@contact_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_contact->{'use'}, ',', 1);
|
@contact_templates = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_contact->{'use'}, ',', 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
push @{$obj_1x_contact->{'__I2CONVERT_TEMPLATE_NAMES'}}, @contact_templates;
|
push @{$obj_1x_contact->{'__I2CONVERT_TEMPLATE_NAMES'}}, @contact_templates;
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
@ -1408,7 +1408,7 @@ sub convert_2x {
|
|||||||
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'__I2CONVERT_TYPE'} = "user";
|
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'__I2CONVERT_TYPE'} = "user";
|
||||||
|
|
||||||
##########################################
|
##########################################
|
||||||
# macros (email, pager, address1..6)
|
# macros (email, pager, address1..6)
|
||||||
##########################################
|
##########################################
|
||||||
if(defined($obj_1x_contact->{'email'})) {
|
if(defined($obj_1x_contact->{'email'})) {
|
||||||
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'__I2CONVERT_MACROS'}->{'email'} = $obj_1x_contact->{'email'};
|
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'__I2CONVERT_MACROS'}->{'email'} = $obj_1x_contact->{'email'};
|
||||||
@ -1431,7 +1431,7 @@ sub convert_2x {
|
|||||||
if(defined($obj_1x_contact->{'alias'})) {
|
if(defined($obj_1x_contact->{'alias'})) {
|
||||||
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'display_name'} = Icinga2::Utils::escape_str($obj_1x_contact->{'alias'});
|
$cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'display_name'} = Icinga2::Utils::escape_str($obj_1x_contact->{'alias'});
|
||||||
}
|
}
|
||||||
|
|
||||||
delete($cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'usergroups'});
|
delete($cfg_obj_2x->{'user'}->{$contact_obj_1x_key}->{'usergroups'});
|
||||||
if(defined($obj_1x_contact->{'contactgroups'})) {
|
if(defined($obj_1x_contact->{'contactgroups'})) {
|
||||||
|
|
||||||
@ -1455,14 +1455,14 @@ sub convert_2x {
|
|||||||
SKIP_CONTACTS:
|
SKIP_CONTACTS:
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
# GROUPS
|
# GROUPS
|
||||||
######################################
|
######################################
|
||||||
|
|
||||||
if (!@$cfg_obj_1x{'hostgroup'}) {
|
if (!@$cfg_obj_1x{'hostgroup'}) {
|
||||||
goto SKIP_HOSTGROUPS;
|
goto SKIP_HOSTGROUPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
# host->hostgroups and hostgroup-members relinked together
|
# host->hostgroups and hostgroup-members relinked together
|
||||||
foreach my $hostgroup_obj_1x_key (keys %{@$cfg_obj_1x{'hostgroup'}}) {
|
foreach my $hostgroup_obj_1x_key (keys %{@$cfg_obj_1x{'hostgroup'}}) {
|
||||||
my $obj_1x_hostgroup = @$cfg_obj_1x{'hostgroup'}->{$hostgroup_obj_1x_key};
|
my $obj_1x_hostgroup = @$cfg_obj_1x{'hostgroup'}->{$hostgroup_obj_1x_key};
|
||||||
# clone it into our hash
|
# clone it into our hash
|
||||||
@ -1497,7 +1497,7 @@ sub convert_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
foreach my $hg_member (@hg_members) {
|
foreach my $hg_member (@hg_members) {
|
||||||
my $obj_2x_hg_member = obj_get_host_obj_by_host_name($cfg_obj_2x, $hg_member);
|
my $obj_2x_hg_member = obj_get_host_obj_by_host_name($cfg_obj_2x, $hg_member);
|
||||||
#print "DEBUG: $hg_member found.\n";
|
#print "DEBUG: $hg_member found.\n";
|
||||||
push @{$obj_2x_hg_member->{'hostgroups'}}, $obj_1x_hostgroup->{'hostgroup_name'};
|
push @{$obj_2x_hg_member->{'hostgroups'}}, $obj_1x_hostgroup->{'hostgroup_name'};
|
||||||
}
|
}
|
||||||
@ -1592,7 +1592,7 @@ sub convert_2x {
|
|||||||
if(defined($obj_1x_contactgroup->{'members'})) {
|
if(defined($obj_1x_contactgroup->{'members'})) {
|
||||||
my @cg_members = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_contactgroup->{'members'}, ',', 1);
|
my @cg_members = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_1x_contactgroup->{'members'}, ',', 1);
|
||||||
foreach my $cg_member (@cg_members) {
|
foreach my $cg_member (@cg_members) {
|
||||||
my $obj_2x_cg_member = obj_get_contact_obj_by_contact_name($cfg_obj_2x, "user", "user_name", $cg_member);
|
my $obj_2x_cg_member = obj_get_contact_obj_by_contact_name($cfg_obj_2x, "user", "user_name", $cg_member);
|
||||||
#print "DEBUG: $cg_member found.\n";
|
#print "DEBUG: $cg_member found.\n";
|
||||||
push @{$obj_2x_cg_member->{'usergroups'}}, $obj_1x_contactgroup->{'contactgroup_name'};
|
push @{$obj_2x_cg_member->{'usergroups'}}, $obj_1x_contactgroup->{'contactgroup_name'};
|
||||||
}
|
}
|
||||||
@ -1670,10 +1670,10 @@ sub convert_2x {
|
|||||||
# get all hosts as array for the master host groups
|
# get all hosts as array for the master host groups
|
||||||
foreach my $master_hostgroup_name (@master_hostgroup_names) {
|
foreach my $master_hostgroup_name (@master_hostgroup_names) {
|
||||||
my @host_master_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $master_hostgroup_name);
|
my @host_master_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $master_hostgroup_name);
|
||||||
push @all_master_hostgroup_hostnames, @host_master_hostgroup_hostnames;
|
push @all_master_hostgroup_hostnames, @host_master_hostgroup_hostnames;
|
||||||
}
|
}
|
||||||
|
|
||||||
# go through all child hostgroups and fetch their host objects, setting
|
# go through all child hostgroups and fetch their host objects, setting
|
||||||
foreach my $child_hostgroup_name (@child_hostgroup_names) {
|
foreach my $child_hostgroup_name (@child_hostgroup_names) {
|
||||||
my @host_child_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $child_hostgroup_name);
|
my @host_child_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $child_hostgroup_name);
|
||||||
foreach my $host_child_hostgroup_hostname (@host_child_hostgroup_hostnames) {
|
foreach my $host_child_hostgroup_hostname (@host_child_hostgroup_hostnames) {
|
||||||
@ -1709,7 +1709,7 @@ sub convert_2x {
|
|||||||
|
|
||||||
# go through all child hosts, and get the service object by host_name and our single service_description
|
# go through all child hosts, and get the service object by host_name and our single service_description
|
||||||
foreach my $child_host_name (@child_host_names) {
|
foreach my $child_host_name (@child_host_names) {
|
||||||
my $child_service_obj = obj_get_service_obj_by_host_name_service_description($cfg_obj_2x, "__I2CONVERT_SERVICE_HOSTNAME", "__I2CONVERT_SERVICEDESCRIPTION", $child_host_name, $child_service_description);
|
my $child_service_obj = obj_get_service_obj_by_host_name_service_description($cfg_obj_2x, "__I2CONVERT_SERVICE_HOSTNAME", "__I2CONVERT_SERVICEDESCRIPTION", $child_host_name, $child_service_description);
|
||||||
# stash all master dependencies onto the child service
|
# stash all master dependencies onto the child service
|
||||||
foreach my $master_host_name (@master_host_names) {
|
foreach my $master_host_name (@master_host_names) {
|
||||||
# use some calculated unique key here (no, i will not split the string later! we are perl, we can do hashes)
|
# use some calculated unique key here (no, i will not split the string later! we are perl, we can do hashes)
|
||||||
@ -1734,7 +1734,7 @@ sub convert_2x {
|
|||||||
#say Dumper($obj_1x_servicedependency);
|
#say Dumper($obj_1x_servicedependency);
|
||||||
#say " DEBUG: all master hg hostnames: ".Dumper(@all_master_hostgroup_hostnames);
|
#say " DEBUG: all master hg hostnames: ".Dumper(@all_master_hostgroup_hostnames);
|
||||||
|
|
||||||
# go through all child hostgroups and fetch their host objects, setting
|
# go through all child hostgroups and fetch their host objects, setting
|
||||||
foreach my $child_hostgroup_name (@child_hostgroup_names) {
|
foreach my $child_hostgroup_name (@child_hostgroup_names) {
|
||||||
my @host_child_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $child_hostgroup_name); # child hostgroup members
|
my @host_child_hostgroup_hostnames = obj_get_hostnames_arr_by_hostgroup_name($cfg_obj_2x, $child_hostgroup_name); # child hostgroup members
|
||||||
#say " DEBUG: child hg hostnames: ".Dumper(@host_child_hostgroup_hostnames);
|
#say " DEBUG: child hg hostnames: ".Dumper(@host_child_hostgroup_hostnames);
|
||||||
@ -1824,14 +1824,14 @@ sub convert_2x {
|
|||||||
#print " DEBUG: no members found, skipping $hg_name\n";
|
#print " DEBUG: no members found, skipping $hg_name\n";
|
||||||
next;
|
next;
|
||||||
}
|
}
|
||||||
|
|
||||||
# we've got:
|
# we've got:
|
||||||
# * n services linked to hostgroups,
|
# * n services linked to hostgroups,
|
||||||
# * a hostgroup
|
# * a hostgroup
|
||||||
# * an array of hosts as hostgroup members
|
# * an array of hosts as hostgroup members
|
||||||
# we'll create:
|
# we'll create:
|
||||||
# * n service templates,
|
# * n service templates,
|
||||||
# * a hg-host template referencing the service templates,
|
# * a hg-host template referencing the service templates,
|
||||||
# * host objects inheriting from it
|
# * host objects inheriting from it
|
||||||
#
|
#
|
||||||
my $svc_count = 0;
|
my $svc_count = 0;
|
||||||
@ -1851,7 +1851,7 @@ sub convert_2x {
|
|||||||
# set the service as template.
|
# set the service as template.
|
||||||
$obj_2x_service->{'__I2CONVERT_IS_TEMPLATE'} = 1;
|
$obj_2x_service->{'__I2CONVERT_IS_TEMPLATE'} = 1;
|
||||||
$obj_2x_service->{'__I2CONVERT_TEMPLATE_NAME'} = $obj_2x_service->{'service_description'}."-group-".$svc_count; # XXX hardcode it for now
|
$obj_2x_service->{'__I2CONVERT_TEMPLATE_NAME'} = $obj_2x_service->{'service_description'}."-group-".$svc_count; # XXX hardcode it for now
|
||||||
|
|
||||||
# create a dummy service inheriting the service template
|
# create a dummy service inheriting the service template
|
||||||
my $obj_2x_service_inherit;
|
my $obj_2x_service_inherit;
|
||||||
$obj_2x_service_inherit->{__I2CONVERT_USES_TEMPLATE} = 1;
|
$obj_2x_service_inherit->{__I2CONVERT_USES_TEMPLATE} = 1;
|
||||||
@ -1869,7 +1869,7 @@ sub convert_2x {
|
|||||||
foreach my $hostgroup_member_host_name (@service_hostgroup_hostnames) {
|
foreach my $hostgroup_member_host_name (@service_hostgroup_hostnames) {
|
||||||
# get the host obj
|
# get the host obj
|
||||||
my $obj_2x_host = obj_get_host_obj_by_host_name($cfg_obj_2x, $hostgroup_member_host_name); # this is a reference in memory, not a copy!
|
my $obj_2x_host = obj_get_host_obj_by_host_name($cfg_obj_2x, $hostgroup_member_host_name); # this is a reference in memory, not a copy!
|
||||||
|
|
||||||
# push the template used
|
# push the template used
|
||||||
# (override __I2CONVERT_USES_TEMPLATE too)
|
# (override __I2CONVERT_USES_TEMPLATE too)
|
||||||
$obj_2x_host->{__I2CONVERT_USES_TEMPLATE} = 1;
|
$obj_2x_host->{__I2CONVERT_USES_TEMPLATE} = 1;
|
||||||
@ -1887,7 +1887,7 @@ sub convert_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
# NEW: NOTIFICATION MAPPING
|
# NEW: NOTIFICATION MAPPING
|
||||||
# old: contact->notification_commands->commands
|
# old: contact->notification_commands->commands
|
||||||
# contact->email/etc
|
# contact->email/etc
|
||||||
# host/service -> contact
|
# host/service -> contact
|
||||||
@ -1902,7 +1902,7 @@ sub convert_2x {
|
|||||||
|
|
||||||
# go through all users and build notifications based on the notification_command
|
# go through all users and build notifications based on the notification_command
|
||||||
foreach my $user_obj_2x_key (keys %{@$cfg_obj_2x{'user'}}) {
|
foreach my $user_obj_2x_key (keys %{@$cfg_obj_2x{'user'}}) {
|
||||||
|
|
||||||
my $obj_2x_user = @$cfg_obj_2x{'user'}->{$user_obj_2x_key};
|
my $obj_2x_user = @$cfg_obj_2x{'user'}->{$user_obj_2x_key};
|
||||||
|
|
||||||
my $user_notification;
|
my $user_notification;
|
||||||
@ -1925,7 +1925,7 @@ sub convert_2x {
|
|||||||
# save a relation to this user and which notification templates are now linked ( ["name"] = { templates = "template" } )
|
# save a relation to this user and which notification templates are now linked ( ["name"] = { templates = "template" } )
|
||||||
# we'll use that later on when processing hosts/services and linking to users and notifications
|
# we'll use that later on when processing hosts/services and linking to users and notifications
|
||||||
$user_notification->{$notification_name_2x}->{'name'} = $notification_name_2x;
|
$user_notification->{$notification_name_2x}->{'name'} = $notification_name_2x;
|
||||||
|
|
||||||
push @{$user_notification->{$notification_name_2x}->{'templates'}}, $notification_command_name_2x;
|
push @{$user_notification->{$notification_name_2x}->{'templates'}}, $notification_command_name_2x;
|
||||||
push @{$user_notification->{$notification_name_2x}->{'users'}}, $obj_2x_user->{'user_name'};
|
push @{$user_notification->{$notification_name_2x}->{'users'}}, $obj_2x_user->{'user_name'};
|
||||||
|
|
||||||
@ -1960,8 +1960,8 @@ sub convert_2x {
|
|||||||
$command_obj_cnt++;
|
$command_obj_cnt++;
|
||||||
|
|
||||||
# create a new notification template object
|
# create a new notification template object
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
||||||
|
|
||||||
@ -2005,7 +2005,7 @@ sub convert_2x {
|
|||||||
my @uniq_users = Icinga2::Utils::uniq(@users);
|
my @uniq_users = Icinga2::Utils::uniq(@users);
|
||||||
|
|
||||||
# now loop and fetch objects, and their needed notification values as array
|
# now loop and fetch objects, and their needed notification values as array
|
||||||
# (prepared above - look for $user_notification->{$notification_command_name_2x}...)
|
# (prepared above - look for $user_notification->{$notification_command_name_2x}...)
|
||||||
foreach my $uniq_user (@uniq_users) {
|
foreach my $uniq_user (@uniq_users) {
|
||||||
my $obj_2x_user = obj_get_user_obj_by_user_name($cfg_obj_2x, $uniq_user);
|
my $obj_2x_user = obj_get_user_obj_by_user_name($cfg_obj_2x, $uniq_user);
|
||||||
push @{$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'}}, $obj_2x_user->{'__I2CONVERT_NOTIFICATIONS'};
|
push @{$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'}}, $obj_2x_user->{'__I2CONVERT_NOTIFICATIONS'};
|
||||||
@ -2017,7 +2017,7 @@ sub convert_2x {
|
|||||||
|
|
||||||
# XXX services
|
# XXX services
|
||||||
foreach my $service_obj_2x_key (keys %{@$cfg_obj_2x{'service'}}) {
|
foreach my $service_obj_2x_key (keys %{@$cfg_obj_2x{'service'}}) {
|
||||||
|
|
||||||
my $obj_2x_service = @$cfg_obj_2x{'service'}->{$service_obj_2x_key};
|
my $obj_2x_service = @$cfg_obj_2x{'service'}->{$service_obj_2x_key};
|
||||||
# make sure there are none
|
# make sure there are none
|
||||||
delete($cfg_obj_2x->{'service'}->{$service_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'});
|
delete($cfg_obj_2x->{'service'}->{$service_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'});
|
||||||
@ -2026,7 +2026,7 @@ sub convert_2x {
|
|||||||
# convert users and usergroupmembers into a unique list of users
|
# convert users and usergroupmembers into a unique list of users
|
||||||
my @users = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_2x_service->{'contacts'}, ',', 1);
|
my @users = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_2x_service->{'contacts'}, ',', 1);
|
||||||
my @usergroups = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_2x_service->{'contact_groups'}, ',', 1);
|
my @usergroups = Icinga2::Utils::str2arr_by_delim_without_excludes($obj_2x_service->{'contact_groups'}, ',', 1);
|
||||||
|
|
||||||
# get all members of the usergroups
|
# get all members of the usergroups
|
||||||
foreach my $usergroup (@usergroups) {
|
foreach my $usergroup (@usergroups) {
|
||||||
my @users_ug = obj_get_usernames_arr_by_usergroup_name($cfg_obj_2x, $usergroup);
|
my @users_ug = obj_get_usernames_arr_by_usergroup_name($cfg_obj_2x, $usergroup);
|
||||||
@ -2036,10 +2036,10 @@ sub convert_2x {
|
|||||||
my @uniq_users = Icinga2::Utils::uniq(@users);
|
my @uniq_users = Icinga2::Utils::uniq(@users);
|
||||||
|
|
||||||
# now loop and fetch objects, and their needed notification values as array
|
# now loop and fetch objects, and their needed notification values as array
|
||||||
# (prepared above - look for $user_notification->{$notification_command_name_2x}...)
|
# (prepared above - look for $user_notification->{$notification_command_name_2x}...)
|
||||||
foreach my $uniq_user (@uniq_users) {
|
foreach my $uniq_user (@uniq_users) {
|
||||||
my $obj_2x_user = obj_get_user_obj_by_user_name($cfg_obj_2x, $uniq_user);
|
my $obj_2x_user = obj_get_user_obj_by_user_name($cfg_obj_2x, $uniq_user);
|
||||||
push @{$cfg_obj_2x->{'service'}->{$service_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'}}, $obj_2x_user->{'__I2CONVERT_NOTIFICATIONS'};
|
push @{$cfg_obj_2x->{'service'}->{$service_obj_2x_key}->{'__I2CONVERT_NOTIFICATIONS'}}, $obj_2x_user->{'__I2CONVERT_NOTIFICATIONS'};
|
||||||
# we'll add a reference to all notifications here. decide on dump which object type is given, and dump only those notifications!
|
# we'll add a reference to all notifications here. decide on dump which object type is given, and dump only those notifications!
|
||||||
}
|
}
|
||||||
#say Dumper($obj_2x_service);
|
#say Dumper($obj_2x_service);
|
||||||
@ -2168,8 +2168,8 @@ sub convert_2x {
|
|||||||
$command_obj_cnt++;
|
$command_obj_cnt++;
|
||||||
|
|
||||||
# create a new notification template object
|
# create a new notification template object
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
||||||
|
|
||||||
@ -2247,8 +2247,8 @@ sub convert_2x {
|
|||||||
$command_obj_cnt++;
|
$command_obj_cnt++;
|
||||||
|
|
||||||
# create a new notification template object
|
# create a new notification template object
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
||||||
|
|
||||||
@ -2327,8 +2327,8 @@ sub convert_2x {
|
|||||||
$command_obj_cnt++;
|
$command_obj_cnt++;
|
||||||
|
|
||||||
# create a new notification template object
|
# create a new notification template object
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_TEMPLATE_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_OBJECT_NAME'} = $notification_command_name_2x;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_NOTIFICATION_COMMAND'} = $notification_command_name;
|
||||||
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
$cfg_obj_2x->{'notification'}->{$notification_obj_cnt}->{'__I2CONVERT_IS_TEMPLATE'} = 1; # this is a template, used in hosts/services then
|
||||||
|
|
||||||
@ -2362,7 +2362,7 @@ sub convert_2x {
|
|||||||
# manipulated all service objects!
|
# manipulated all service objects!
|
||||||
######################################
|
######################################
|
||||||
|
|
||||||
# "get all 'host' hashref as array in hashmap, and their keys to access it"
|
# "get all 'host' hashref as array in hashmap, and their keys to access it"
|
||||||
foreach my $host_obj_2x_key (keys %{@$cfg_obj_2x{'host'}}) {
|
foreach my $host_obj_2x_key (keys %{@$cfg_obj_2x{'host'}}) {
|
||||||
|
|
||||||
#say Dumper(@$cfg_obj_2x{'host'}->{$host_obj_2x_key});
|
#say Dumper(@$cfg_obj_2x{'host'}->{$host_obj_2x_key});
|
||||||
@ -2388,7 +2388,7 @@ sub convert_2x {
|
|||||||
my $obj_2x_service_service_description = $obj_2x_service->{'__I2CONVERT_SERVICEDESCRIPTION'};
|
my $obj_2x_service_service_description = $obj_2x_service->{'__I2CONVERT_SERVICEDESCRIPTION'};
|
||||||
|
|
||||||
######################################
|
######################################
|
||||||
# skip service templates
|
# skip service templates
|
||||||
######################################
|
######################################
|
||||||
if ($obj_2x_service->{'__I2CONVERT_IS_TEMPLATE'} == 1) {
|
if ($obj_2x_service->{'__I2CONVERT_IS_TEMPLATE'} == 1) {
|
||||||
#Icinga2::Utils::debug("WARNING: Skipping service template '$obj_2x_service->{'__I2CONVERT_TEMPLATE_NAMES'}' for linking to host '$obj_2x_host->{'__I2CONVERT_HOSTNAME'}'.");
|
#Icinga2::Utils::debug("WARNING: Skipping service template '$obj_2x_service->{'__I2CONVERT_TEMPLATE_NAMES'}' for linking to host '$obj_2x_host->{'__I2CONVERT_HOSTNAME'}'.");
|
||||||
@ -2399,7 +2399,7 @@ sub convert_2x {
|
|||||||
# XXX if host_name can't be located in the service template tree, check if hostgroup is set somewhere
|
# XXX if host_name can't be located in the service template tree, check if hostgroup is set somewhere
|
||||||
# we then need to check if the service -> hostgroup <- hostmember applies (ugly) FIXME
|
# we then need to check if the service -> hostgroup <- hostmember applies (ugly) FIXME
|
||||||
|
|
||||||
# XXX if host_name can't be determined, log an error XXX templates MUST be skipped before (they cannot look down, only up in use tree)
|
# XXX if host_name can't be determined, log an error XXX templates MUST be skipped before (they cannot look down, only up in use tree)
|
||||||
if (!defined($obj_2x_service_host_name)) {
|
if (!defined($obj_2x_service_host_name)) {
|
||||||
#print "ERROR: No host_name for service given " . Dumper($obj_2x_service);
|
#print "ERROR: No host_name for service given " . Dumper($obj_2x_service);
|
||||||
next;
|
next;
|
||||||
@ -2421,7 +2421,7 @@ sub convert_2x {
|
|||||||
# 3. use the template name as reference for the host->service
|
# 3. use the template name as reference for the host->service
|
||||||
$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_USES_TEMPLATE'} = 1;
|
$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_USES_TEMPLATE'} = 1;
|
||||||
push @{$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_TEMPLATE_NAMES'}}, $service_template_name;
|
push @{$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_TEMPLATE_NAMES'}}, $service_template_name;
|
||||||
|
|
||||||
# 4. define the service description for the service
|
# 4. define the service description for the service
|
||||||
$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_SERVICEDESCRIPTION'} = $obj_2x_service_service_description;
|
$cfg_obj_2x->{'host'}->{$host_obj_2x_key}->{'SERVICE'}->{$obj_2x_host_service_cnt}->{'__I2CONVERT_SERVICEDESCRIPTION'} = $obj_2x_service_service_description;
|
||||||
|
|
||||||
|
@ -96,7 +96,7 @@ sub end_object_type_config_dump {
|
|||||||
}
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# DUMP ALL OBJECTS 2.x
|
# DUMP ALL OBJECTS 2.x
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ sub dump_hosts_2x {
|
|||||||
# function decides itsself if object or template
|
# function decides itsself if object or template
|
||||||
Icinga2::ExportIcinga2Cfg::dump_host_2x($icinga2_cfg, $host_2x);
|
Icinga2::ExportIcinga2Cfg::dump_host_2x($icinga2_cfg, $host_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -142,7 +142,7 @@ sub dump_services_2x {
|
|||||||
|
|
||||||
Icinga2::ExportIcinga2Cfg::dump_service_2x($icinga2_cfg, $service_2x);
|
Icinga2::ExportIcinga2Cfg::dump_service_2x($icinga2_cfg, $service_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -157,7 +157,7 @@ sub dump_users_2x {
|
|||||||
|
|
||||||
Icinga2::ExportIcinga2Cfg::dump_user_2x($icinga2_cfg, $user_2x);
|
Icinga2::ExportIcinga2Cfg::dump_user_2x($icinga2_cfg, $user_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -172,7 +172,7 @@ sub dump_notifications_2x {
|
|||||||
|
|
||||||
Icinga2::ExportIcinga2Cfg::dump_notification_2x($icinga2_cfg, $notification_2x);
|
Icinga2::ExportIcinga2Cfg::dump_notification_2x($icinga2_cfg, $notification_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -188,7 +188,7 @@ sub dump_timeperiods_2x {
|
|||||||
|
|
||||||
Icinga2::ExportIcinga2Cfg::dump_timeperiod_2x($icinga2_cfg, $timeperiod_2x);
|
Icinga2::ExportIcinga2Cfg::dump_timeperiod_2x($icinga2_cfg, $timeperiod_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -231,12 +231,12 @@ sub dump_commands_2x {
|
|||||||
|
|
||||||
Icinga2::ExportIcinga2Cfg::dump_command_2x($icinga2_cfg, $command_2x);
|
Icinga2::ExportIcinga2Cfg::dump_command_2x($icinga2_cfg, $command_2x);
|
||||||
}
|
}
|
||||||
|
|
||||||
end_object_type_config_dump($icinga2_cfg);
|
end_object_type_config_dump($icinga2_cfg);
|
||||||
}
|
}
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# DUMP OBJECT 2.x
|
# DUMP OBJECT 2.x
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
|
|
||||||
@ -302,7 +302,7 @@ sub dump_service_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# servicegroups
|
# servicegroups
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'servicegroups'}) && scalar(@{$service_2x->{'servicegroups'}}) > 0) {
|
if(defined($service_2x->{'servicegroups'}) && scalar(@{$service_2x->{'servicegroups'}}) > 0) {
|
||||||
#say Dumper($service_2x->{'servicegroups'});
|
#say Dumper($service_2x->{'servicegroups'});
|
||||||
@ -317,7 +317,7 @@ sub dump_service_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# servicedependencies (1.x deps)
|
# servicedependencies (1.x deps)
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'__I2CONVERT_PARENT_SERVICES'})) {
|
if(defined($service_2x->{'__I2CONVERT_PARENT_SERVICES'})) {
|
||||||
dump_config_line($icinga2_cfg, "\tservicedependencies = [");
|
dump_config_line($icinga2_cfg, "\tservicedependencies = [");
|
||||||
@ -329,10 +329,10 @@ sub dump_service_2x {
|
|||||||
dump_config_line($icinga2_cfg, "\t\t{ host = \"$servicedep->{'host'}\", service = \"$servicedep->{'service'}\" },");
|
dump_config_line($icinga2_cfg, "\t\t{ host = \"$servicedep->{'host'}\", service = \"$servicedep->{'service'}\" },");
|
||||||
}
|
}
|
||||||
dump_config_line($icinga2_cfg, "\t],");
|
dump_config_line($icinga2_cfg, "\t],");
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# notifications
|
# notifications
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
if(defined($service_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
||||||
#say Dumper ($service_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
#say Dumper ($service_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
||||||
@ -436,9 +436,9 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# start, inherit from template?
|
# start, inherit from template?
|
||||||
####################################################
|
####################################################
|
||||||
if (defined($host_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $host_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($host_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $host_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
my $host_2x_templates = join '", "', @{$host_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
my $host_2x_templates = join '", "', @{$host_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
||||||
dump_config_line($icinga2_cfg, "$object_type Host \"$host_name\" inherits \"$host_2x_templates\" {");
|
dump_config_line($icinga2_cfg, "$object_type Host \"$host_name\" inherits \"$host_2x_templates\" {");
|
||||||
} else {
|
} else {
|
||||||
@ -453,7 +453,7 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# macros
|
# macros
|
||||||
####################################################
|
####################################################
|
||||||
dump_config_line($icinga2_cfg, "");
|
dump_config_line($icinga2_cfg, "");
|
||||||
|
|
||||||
@ -467,7 +467,7 @@ sub dump_host_2x {
|
|||||||
dump_config_line($icinga2_cfg, "");
|
dump_config_line($icinga2_cfg, "");
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# hostcheck
|
# hostcheck
|
||||||
####################################################
|
####################################################
|
||||||
# this is magic, and must be set during conversion
|
# this is magic, and must be set during conversion
|
||||||
if(defined($host_2x->{'__I2CONVERT_HOSTCHECK'})) {
|
if(defined($host_2x->{'__I2CONVERT_HOSTCHECK'})) {
|
||||||
@ -475,7 +475,7 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# hostgroups
|
# hostgroups
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($host_2x->{'hostgroups'})) {
|
if(defined($host_2x->{'hostgroups'})) {
|
||||||
my $hostgroups = join '", "', @{$host_2x->{'hostgroups'}};
|
my $hostgroups = join '", "', @{$host_2x->{'hostgroups'}};
|
||||||
@ -487,15 +487,15 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# hostdependencies (1.x deps and parents combined)
|
# hostdependencies (1.x deps and parents combined)
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($host_2x->{'__I2CONVERT_PARENT_HOSTNAMES'})) {
|
if(defined($host_2x->{'__I2CONVERT_PARENT_HOSTNAMES'})) {
|
||||||
my $hostdependency_hosts = join '", "', @{$host_2x->{'__I2CONVERT_PARENT_HOSTNAMES'}};
|
my $hostdependency_hosts = join '", "', @{$host_2x->{'__I2CONVERT_PARENT_HOSTNAMES'}};
|
||||||
dump_config_line($icinga2_cfg, "\thostdependencies = [ \"$hostdependency_hosts\" ],");
|
dump_config_line($icinga2_cfg, "\thostdependencies = [ \"$hostdependency_hosts\" ],");
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# notifications
|
# notifications
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($host_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
if(defined($host_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
||||||
#say Dumper ($host_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
#say Dumper ($host_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
||||||
@ -599,7 +599,7 @@ sub dump_host_2x {
|
|||||||
dump_config_line($icinga2_cfg, "\t\ttemplates = [ \"$service_2x_templates\" ],")
|
dump_config_line($icinga2_cfg, "\t\ttemplates = [ \"$service_2x_templates\" ],")
|
||||||
}
|
}
|
||||||
####################################################
|
####################################################
|
||||||
# display_name
|
# display_name
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'display_name'})) {
|
if(defined($service_2x->{'display_name'})) {
|
||||||
dump_config_line($icinga2_cfg, "\t\tdisplay_name = \"$service_2x->{'display_name'}\",");
|
dump_config_line($icinga2_cfg, "\t\tdisplay_name = \"$service_2x->{'display_name'}\",");
|
||||||
@ -607,7 +607,7 @@ sub dump_host_2x {
|
|||||||
|
|
||||||
dump_config_line($icinga2_cfg, "");
|
dump_config_line($icinga2_cfg, "");
|
||||||
####################################################
|
####################################################
|
||||||
# macros
|
# macros
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'__I2CONVERT_MACROS'}) && $service_2x->{'__I2CONVERT_MACROS'} != 0) {
|
if(defined($service_2x->{'__I2CONVERT_MACROS'}) && $service_2x->{'__I2CONVERT_MACROS'} != 0) {
|
||||||
dump_config_line($icinga2_cfg, "\t\tmacros = {");
|
dump_config_line($icinga2_cfg, "\t\tmacros = {");
|
||||||
@ -618,14 +618,14 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# check_command
|
# check_command
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'check_command'})) {
|
if(defined($service_2x->{'check_command'})) {
|
||||||
dump_config_line($icinga2_cfg, "\t\tcheck_command = \"$service_2x->{'check_command'}\",");
|
dump_config_line($icinga2_cfg, "\t\tcheck_command = \"$service_2x->{'check_command'}\",");
|
||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# servicegroups
|
# servicegroups
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'servicegroups'}) && scalar(@{$service_2x->{'servicegroups'}}) > 0) {
|
if(defined($service_2x->{'servicegroups'}) && scalar(@{$service_2x->{'servicegroups'}}) > 0) {
|
||||||
#say Dumper($service_2x->{'servicegroups'});
|
#say Dumper($service_2x->{'servicegroups'});
|
||||||
@ -638,13 +638,13 @@ sub dump_host_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# notifications
|
# notifications
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($service_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
if(defined($service_2x->{'__I2CONVERT_NOTIFICATIONS'})) {
|
||||||
#say Dumper ($service_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
#say Dumper ($service_2x->{'__I2CONVERT_NOTIFICATIONS'});
|
||||||
# this is an array of notification objects
|
# this is an array of notification objects
|
||||||
foreach my $service_notification_hash (@{$service_2x->{'__I2CONVERT_NOTIFICATIONS'}}) {
|
foreach my $service_notification_hash (@{$service_2x->{'__I2CONVERT_NOTIFICATIONS'}}) {
|
||||||
|
|
||||||
#say Dumper($service_notification_hash);
|
#say Dumper($service_notification_hash);
|
||||||
|
|
||||||
# this is a hash by unique key of the notification template, but all further attributes are seperatedly available too
|
# this is a hash by unique key of the notification template, but all further attributes are seperatedly available too
|
||||||
@ -741,7 +741,7 @@ sub dump_user_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# start, inherit from template?
|
# start, inherit from template?
|
||||||
####################################################
|
####################################################
|
||||||
if (defined($user_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $user_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($user_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $user_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
my $user_2x_templates = join '", "', @{$user_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
my $user_2x_templates = join '", "', @{$user_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
||||||
@ -769,7 +769,7 @@ sub dump_user_2x {
|
|||||||
dump_config_line($icinga2_cfg, "");
|
dump_config_line($icinga2_cfg, "");
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# usergroups
|
# usergroups
|
||||||
####################################################
|
####################################################
|
||||||
if(defined($user_2x->{'usergroups'})) {
|
if(defined($user_2x->{'usergroups'})) {
|
||||||
#say Dumper($user_2x->{'usergroups'});
|
#say Dumper($user_2x->{'usergroups'});
|
||||||
@ -801,7 +801,7 @@ sub dump_notification_2x {
|
|||||||
return if (!defined($notification_name));
|
return if (!defined($notification_name));
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# start, inherit from template?
|
# start, inherit from template?
|
||||||
####################################################
|
####################################################
|
||||||
if (defined($notification_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $notification_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($notification_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $notification_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
my $notification_2x_templates = join '", "', @{$notification_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
my $notification_2x_templates = join '", "', @{$notification_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
||||||
@ -857,7 +857,7 @@ sub dump_timeperiod_2x {
|
|||||||
}
|
}
|
||||||
|
|
||||||
####################################################
|
####################################################
|
||||||
# start, inherit from template?
|
# start, inherit from template?
|
||||||
####################################################
|
####################################################
|
||||||
if (defined($timeperiod_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $timeperiod_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
if (defined($timeperiod_2x->{'__I2CONVERT_USES_TEMPLATE'}) && $timeperiod_2x->{'__I2CONVERT_USES_TEMPLATE'} == 1) {
|
||||||
my $timeperiod_2x_templates = join '", "', @{$timeperiod_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
my $timeperiod_2x_templates = join '", "', @{$timeperiod_2x->{'__I2CONVERT_TEMPLATE_NAMES'}};
|
||||||
@ -898,7 +898,7 @@ sub dump_group_2x {
|
|||||||
my $group_name_attr = $group_2x->{__I2CONVERT_TYPE} . "_name";
|
my $group_name_attr = $group_2x->{__I2CONVERT_TYPE} . "_name";
|
||||||
my $group_name = $group_2x->{$group_name_attr};
|
my $group_name = $group_2x->{$group_name_attr};
|
||||||
my $group_type = ucfirst("$group_2x->{__I2CONVERT_TYPE}");
|
my $group_type = ucfirst("$group_2x->{__I2CONVERT_TYPE}");
|
||||||
$group_type =~ s/group/Group/;
|
$group_type =~ s/group/Group/;
|
||||||
|
|
||||||
#say Dumper($group_2x);
|
#say Dumper($group_2x);
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ use Icinga2::Utils;
|
|||||||
|
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# PARSE 1.x
|
# PARSE 1.x
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
sub get_key_from_icinga1_main_cfg {
|
sub get_key_from_icinga1_main_cfg {
|
||||||
@ -76,7 +76,7 @@ sub parse_icinga1_resource_cfg {
|
|||||||
# skip comments and empty lines
|
# skip comments and empty lines
|
||||||
next if ($line eq "" || !defined($line) || $line =~ /^\s+$/);
|
next if ($line eq "" || !defined($line) || $line =~ /^\s+$/);
|
||||||
next if ($line =~ /^[#;]/ || $line =~ /;.*/);
|
next if ($line =~ /^[#;]/ || $line =~ /;.*/);
|
||||||
|
|
||||||
#debug($line);
|
#debug($line);
|
||||||
my ($macro_name, $macro_value) = split /=/, $line, 2;
|
my ($macro_name, $macro_value) = split /=/, $line, 2;
|
||||||
$macro_name =~ /\$(.*)\$/;
|
$macro_name =~ /\$(.*)\$/;
|
||||||
@ -125,7 +125,7 @@ sub parse_icinga1_object_cfg {
|
|||||||
# skip comments and empty lines
|
# skip comments and empty lines
|
||||||
next if ($line eq "" || !defined($line) || $line =~ /^\s+$/);
|
next if ($line eq "" || !defined($line) || $line =~ /^\s+$/);
|
||||||
next if ($line =~ /^[#;]/);
|
next if ($line =~ /^[#;]/);
|
||||||
|
|
||||||
# || $line =~ /;.*/);
|
# || $line =~ /;.*/);
|
||||||
$line =~ s/[\r\n\s]+$//;
|
$line =~ s/[\r\n\s]+$//;
|
||||||
$line =~ s/^\s+//;
|
$line =~ s/^\s+//;
|
||||||
@ -164,7 +164,7 @@ sub parse_icinga1_object_cfg {
|
|||||||
$inline_comment = $1;
|
$inline_comment = $1;
|
||||||
|
|
||||||
# then split it and save it by type->cnt->attr->val
|
# then split it and save it by type->cnt->attr->val
|
||||||
#($attr, $val) = split (/\s+/, $line, 2); # important - only split into 2 elements
|
#($attr, $val) = split (/\s+/, $line, 2); # important - only split into 2 elements
|
||||||
|
|
||||||
# timeperiods require special parser
|
# timeperiods require special parser
|
||||||
if ($in_timeperiod == 1) {
|
if ($in_timeperiod == 1) {
|
||||||
@ -190,12 +190,12 @@ sub parse_icinga1_object_cfg {
|
|||||||
#Icinga2::Utils::debug("\n");
|
#Icinga2::Utils::debug("\n");
|
||||||
|
|
||||||
# strip illegal object name characters, replace with _
|
# strip illegal object name characters, replace with _
|
||||||
if ( ($attr =~ /name/ && $attr !~ /display_name/) ||
|
if ( ($attr =~ /name/ && $attr !~ /display_name/) ||
|
||||||
$attr =~ /description/ ||
|
$attr =~ /description/ ||
|
||||||
$attr =~ /contact/ ||
|
$attr =~ /contact/ ||
|
||||||
$attr =~ /groups/ ||
|
$attr =~ /groups/ ||
|
||||||
$attr =~ /members/ ||
|
$attr =~ /members/ ||
|
||||||
$attr =~ /use/ ||
|
$attr =~ /use/ ||
|
||||||
$attr =~ /parents/
|
$attr =~ /parents/
|
||||||
) {
|
) {
|
||||||
$val = Icinga2::Utils::strip_object_name($val);
|
$val = Icinga2::Utils::strip_object_name($val);
|
||||||
@ -240,7 +240,7 @@ sub parse_icinga1_objects_cache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
my $cfg_obj_cache = {};
|
my $cfg_obj_cache = {};
|
||||||
|
|
||||||
$cfg_obj_cache = parse_icinga1_object_cfg($cfg_obj_cache, $object_cache_file);
|
$cfg_obj_cache = parse_icinga1_object_cfg($cfg_obj_cache, $object_cache_file);
|
||||||
|
|
||||||
#say Dumper($cfg_obj_cache);
|
#say Dumper($cfg_obj_cache);
|
||||||
|
@ -29,7 +29,7 @@ use strict;
|
|||||||
our $dbg_lvl = 1;
|
our $dbg_lvl = 1;
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# HELPER FUNCTIONS
|
# HELPER FUNCTIONS
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
sub strip {
|
sub strip {
|
||||||
@ -51,7 +51,7 @@ sub errlog {
|
|||||||
} else {
|
} else {
|
||||||
print "$log_str\n";
|
print "$log_str\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub escape_str {
|
sub escape_str {
|
||||||
|
@ -99,7 +99,7 @@ $icinga2_cfg->{'__I2EXPORT_DEBUG'} = 0;
|
|||||||
|
|
||||||
if(defined($opt->{icinga1xcfg})) {
|
if(defined($opt->{icinga1xcfg})) {
|
||||||
$icinga1_cfg = $opt->{icinga1xcfg};
|
$icinga1_cfg = $opt->{icinga1xcfg};
|
||||||
}
|
}
|
||||||
if(defined($opt->{icinga2xoutputprefix})) {
|
if(defined($opt->{icinga2xoutputprefix})) {
|
||||||
$conf_prefix = $opt->{icinga2xoutputprefix};
|
$conf_prefix = $opt->{icinga2xoutputprefix};
|
||||||
}
|
}
|
||||||
@ -133,14 +133,14 @@ $icinga2_cfg->{'itl'}->{'eventcommand-template'} = "plugin-event-command";
|
|||||||
my $type_cnt;
|
my $type_cnt;
|
||||||
|
|
||||||
################################################################################
|
################################################################################
|
||||||
# MAIN
|
# MAIN
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
# TODO import/export files in parallel?
|
# TODO import/export files in parallel?
|
||||||
|
|
||||||
# the import
|
# the import
|
||||||
my $icinga1_cfg_obj = Icinga2::ImportIcinga1Cfg::parse_icinga1_objects($icinga1_cfg);
|
my $icinga1_cfg_obj = Icinga2::ImportIcinga1Cfg::parse_icinga1_objects($icinga1_cfg);
|
||||||
my $icinga1_cfg_obj_cache = Icinga2::ImportIcinga1Cfg::parse_icinga1_objects_cache($icinga1_cfg);
|
my $icinga1_cfg_obj_cache = Icinga2::ImportIcinga1Cfg::parse_icinga1_objects_cache($icinga1_cfg);
|
||||||
my $icinga1_user_macros = Icinga2::ImportIcinga1Cfg::parse_icinga1_user_macros($icinga1_cfg);
|
my $icinga1_user_macros = Icinga2::ImportIcinga1Cfg::parse_icinga1_user_macros($icinga1_cfg);
|
||||||
|
|
||||||
# the conversion magic inside
|
# the conversion magic inside
|
||||||
@ -149,4 +149,4 @@ my $icinga2_cfg_obj = Icinga2::Convert::convert_2x($icinga2_cfg, $icinga1_cfg_ob
|
|||||||
# the export
|
# the export
|
||||||
Icinga2::ExportIcinga2Cfg::dump_cfg_obj_2x($icinga2_cfg, $icinga2_cfg_obj);
|
Icinga2::ExportIcinga2Cfg::dump_cfg_obj_2x($icinga2_cfg, $icinga2_cfg_obj);
|
||||||
|
|
||||||
# vi: sw=4 ts=4 expandtab :
|
# vi: sw=4 ts=4 expandtab :
|
||||||
|
Loading…
x
Reference in New Issue
Block a user