MT#57531 support loading constants.yml

to prevent specifying db connections and (unencrypted)
credentials in the config.cfg file, we now support loading
it from constants.yml.

this can be enabled by specifying a path to constants.yml
in config.cfg, ie.

  constants_yml = /etc/ngcp-config/constants.yml

particular values can be overloaded, and the order of
precedence is as follows:

  1. values in config.cfg
  2. values in constants.yml
  3. values in provisioning.conf
  ...

Change-Id: Icc0a57f13e265c3d10bcb697c998e65f2bd6b31d
mr11.4.1
Rene Krenn 2 years ago
parent 3a19494e9f
commit b040972e79

@ -222,6 +222,7 @@ our $working_path = tempdir(CLEANUP => 0) . '/'; #'/var/sipwise/';
our $provisioning_conf = undef;
our $constants_yml = undef;
# csv
@ -385,6 +386,16 @@ sub update_masterconfig {
{ force_plugins => [ 'Config::Any::XML' ] }
]);
}
$constants_yml = $data->{constants_yml} if exists $data->{constants_yml};
if (defined $constants_yml and length($constants_yml) > 0) {
push(@loadconfig_args,[
$constants_yml,
\&_update_constants_yml,
$yamlconfigtype,
]);
}
return ($result,\@loadconfig_args,\&_postprocess_masterconfig);
@ -410,6 +421,62 @@ sub _update_provisioning_conf {
}
sub _update_constants_yml {
my ($data,$configfile) = @_;
if (defined $data) {
my $result = 1;
$accounting_host = $data->{database}->{central}->{dbhost};
$accounting_port = $data->{database}->{central}->{dbport};
$accounting_databasename = 'accounting';
$accounting_username = $data->{credentials}->{mysql}->{provisioning}->{u};
$accounting_password = $data->{credentials}->{mysql}->{provisioning}->{p};
$billing_host = $data->{database}->{central}->{dbhost};
$billing_port = $data->{database}->{central}->{dbport};
$billing_databasename = 'billing';
$billing_username = $data->{credentials}->{mysql}->{provisioning}->{u};
$billing_password = $data->{credentials}->{mysql}->{provisioning}->{p};
$provisioning_host = $data->{database}->{central}->{dbhost};
$provisioning_port = $data->{database}->{central}->{dbport};
$provisioning_databasename = 'provisioning';
$provisioning_username = $data->{credentials}->{mysql}->{provisioning}->{u};
$provisioning_password = $data->{credentials}->{mysql}->{provisioning}->{p};
$kamailio_host = $data->{database}->{central}->{dbhost};
$kamailio_port = $data->{database}->{central}->{dbport};
$kamailio_databasename = 'kamailio';
$kamailio_username = $data->{credentials}->{mysql}->{provisioning}->{u};
$kamailio_password = $data->{credentials}->{mysql}->{provisioning}->{p};
$xa_host = $data->{database}->{central}->{dbhost};
$xa_port = $data->{database}->{central}->{dbport};
$xa_databasename = 'ngcp';
$xa_username = $data->{credentials}->{mysql}->{provisioning}->{u};
$xa_password = $data->{credentials}->{mysql}->{provisioning}->{p};
#$ngcprestapi_uri =
#$ngcprestapi_username =
#$ngcprestapi_password =
#$ngcprestapi_realm =
$location_databaseindex = '20';
#$location_password =
$location_host = $data->{database}->{central}->{dbhost};
$location_port = $data->{database}->{central}->{redis_port};
#$location_sock =
return $result;
}
return 0;
}
sub _postprocess_masterconfig {
my %params = @_;

Loading…
Cancel
Save