diff --git a/bin/config_debug.pl b/bin/config_debug.pl index e087f066..6863d833 100755 --- a/bin/config_debug.pl +++ b/bin/config_debug.pl @@ -23,7 +23,6 @@ use File::Copy qw(cp move); use File::Spec; use Getopt::Long; use strict; -use Tie::File; use warnings; use YAML::XS qw(LoadFile DumpFile); use Hash::Merge qw(merge); @@ -42,7 +41,6 @@ sub usage my $help = 0; my $children = 0; -my $profile = "CE"; my $group; if (exists $ENV{'GROUP'}) @@ -65,12 +63,13 @@ if($#ARGV>1 || $help) } my $base_dir; -my $yaml; -my $net_yaml; my $file_yaml = '/etc/ngcp-config/config.yml'; my $file_net_yaml = '/etc/ngcp-config/network.yml'; -my @array; -my $path; +my ($action, $domain) = @ARGV; + +$action = 'off' unless defined($action); +$domain = 'spce.test' unless defined($domain); + if (exists $ENV{'BASE_DIR'}) { $base_dir = $ENV{'BASE_DIR'}; @@ -80,33 +79,29 @@ else $base_dir = '/usr/share/kamailio-config-tests'; } -my ($action, $domain) = @ARGV; - -$action = 'off' unless defined($action); -$domain = 'spce.test' unless defined($domain); - -if (lc($action) eq "off") +sub change_network { - for my $file ($file_yaml, $file_net_yaml) { - move("$file.orig", $file) or die "Can't restore the orig config $file"; - } - for my $i ('caller.csv', 'callee.csv') - { - $path = File::Spec->catfile( $base_dir, 'scenarios', $i); - tie @array, 'Tie::File', $path or die ("Can set test domain on $path"); - for (@array) - { - s/\Q$domain\E/DOMAIN/; - } - untie @array; + my $net_yaml = LoadFile($file_net_yaml); + + for my $host (keys %{$net_yaml->{hosts}}) { + $net_yaml->{hosts}->{$host}->{dummy0} = { + ip => '172.30.1.2', + netmask => '255.255.255.0', + type => ['rtp_tag'] + }; + push @{$net_yaml->{hosts}->{$host}->{interfaces}}, 'dummy0'; } + + $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries} //= (); + my $entries = $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries}; + push @{$entries}, "127.0.0.1 $domain"; + $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries} = $entries; + DumpFile($file_net_yaml, $net_yaml); } -else + +sub change_config { - for my $file ($file_yaml, $file_net_yaml) { - cp($file, $file.".orig") or die "Copy $file failed: $ERRNO" unless(-e $file.".orig"); - } - $yaml = LoadFile($file_yaml); + my $yaml = LoadFile($file_yaml); $yaml->{kamailio}{lb}{cfgt} = 'yes'; $yaml->{kamailio}{lb}{dns}{use_dns_cache} = 'off'; $yaml->{kamailio}{lb}{extra_sockets}->{test} = "udp:127.2.0.1:5064"; @@ -123,48 +118,33 @@ else $yaml->{rtpproxy}{log_level} = '7'; $yaml->{modules}[0]->{enable} = 'yes'; # dummy module should be the first one - $net_yaml = LoadFile($file_net_yaml); - - for my $host (keys %{$net_yaml->{hosts}}) { - $net_yaml->{hosts}->{$host}->{dummy0} = { - ip => '172.30.1.2', - netmask => '255.255.255.0', - type => ['rtp_tag'] - }; - push @{$net_yaml->{hosts}->{$host}->{interfaces}}, 'dummy0'; - } - - $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries} //= (); - my $entries = $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries}; - push @{$entries}, "127.0.0.1 $domain"; - $net_yaml->{hosts_common}->{etc_hosts_global_extra_entries} = $entries; - DumpFile($file_net_yaml, $net_yaml); - my $group_yml_file = $base_dir."/".$group."/config.yml"; if ( -e $group_yml_file ) { print "load $group_yml_file config file\n"; my $group_yml = LoadFile($group_yml_file); my $hm = Hash::Merge->new('RIGHT_PRECEDENT'); - my $config = {}; - $config = $hm->merge( $config, $yaml); + my $config = $hm->merge( {}, $yaml); $yaml = $hm->merge( $config, $group_yml); } else { print "$group_yml_file not found\n"; } + DumpFile($file_yaml, $yaml); +} - untie @array; - for my $i ('caller.csv', 'callee.csv') - { - $path = File::Spec->catfile( $base_dir, 'scenarios', $i); - tie @array, 'Tie::File', $path or die ("Can set test domain on $path"); - for (@array) - { - s/DOMAIN/$domain/; - } - untie @array; +if (lc($action) eq "off") +{ + for my $file ($file_yaml, $file_net_yaml) { + move("$file.orig", $file) or die "Can't restore the orig config $file"; } - DumpFile($file_yaml, $yaml); +} +else +{ + for my $file ($file_yaml, $file_net_yaml) { + cp($file, $file.".orig") or die "Copy $file failed: $ERRNO" unless(-e $file.".orig"); + } + change_config(); + change_network(); } #EOF