MT#15261 Fix YML merging order for tt2-daemon

The default Hash::Merge->merge() behaviour is LEFT_PRECEDENT:
http://search.cpan.org/~rehsack/Hash-Merge-0.200/lib/Hash/Merge.pm

Which means:
> The values buried in the left hash will never be lost;
> any values that can be added from the right hash will be attempted.

So, the values from HOST_CONFIG never overwrites default NGCPCTL_CONFIG:
> NGCPCTL_CONFIG="${NGCPCTL_MAIN}/config.yml"
> HOST_CONFIG="${NGCPCTL_MAIN}/config.$(hostname).yml"

We need to use RIGHT_PRECEDENT order to be in sync with 'scripts/build':
> ${NGCPCTL_CONFIG:-} ${HOST_CONFIG:-} ${LOCAL_CONFIG:-} ${NETWORK_CONFIG:-} ${EXTRA_CONFIG_FILES:-} ${CONSTANTS_CONFIG:-}

(cherry picked from commit fe7644d241)

Conflicts:
	helper/tt2-daemon

(cherry picked from commit cd58351568)

Change-Id: I790b837e991724d8ac1b6b9c6b529e70b3bc337f
changes/05/2705/1
Alexander Lutay 11 years ago
parent bd1ec5107f
commit 6e29c99f91

@ -64,7 +64,8 @@ sub handle_connections {
next if(exists $loaded_ymls{$file});
$loaded_ymls{$file} = undef;
print $client "Loading $file in memory:";
$config = merge($config, LoadFile($file) || die $!);
my $hm = Hash::Merge->new('RIGHT_PRECEDENT');
$config = $hm->merge($config, LoadFile($file) || die $!);
print $client " OK \n";
};
};

Loading…
Cancel
Save