summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xlib/Vyatta/ConfigLoad.pm13
-rwxr-xr-xscripts/vyatta-load-config.pl2
2 files changed, 13 insertions, 2 deletions
diff --git a/lib/Vyatta/ConfigLoad.pm b/lib/Vyatta/ConfigLoad.pm
index c1ea5e7..a1c0b8f 100755
--- a/lib/Vyatta/ConfigLoad.pm
+++ b/lib/Vyatta/ConfigLoad.pm
@@ -225,10 +225,21 @@ sub loadConfigHierarchy {
if (!defined($load_cfg)) {
return ();
}
+
+ #allows loading from arbritary root
+ my $root_node = shift;
my $xcp = new XorpConfigParser();
$xcp->parse($load_cfg);
- my $root = $xcp->get_node( () );
+ my $root;
+ if (defined($root_node)) {
+ my $tmp = [$root_node];
+ $root = $xcp->get_node($tmp);
+ #root_path= --except last node and needs to be passed to enumerate_branch
+ }
+ else {
+ $root = $xcp->get_node( () );
+ }
if (!defined($root)) {
return ();
}
diff --git a/scripts/vyatta-load-config.pl b/scripts/vyatta-load-config.pl
index 4073905..6755015 100755
--- a/scripts/vyatta-load-config.pl
+++ b/scripts/vyatta-load-config.pl
@@ -163,7 +163,7 @@ syslog( "warning", "Load config [$orig_load_file] by $login" );
system("$sbindir/vyatta_config_migrate.pl $load_file");
print "Loading config file $load_file...\n";
-my %cfg_hier = Vyatta::ConfigLoad::loadConfigHierarchy($load_file);
+my %cfg_hier = Vyatta::ConfigLoad::loadConfigHierarchy($load_file,$merge);
if ( scalar( keys %cfg_hier ) == 0 ) {
print "The specified file does not contain any configuration.\n";
print