diff options
author | Oliver Tappe | 2008-04-03 18:53:39 +0200 |
---|---|---|
committer | Oliver Tappe | 2008-04-03 18:53:39 +0200 |
commit | 2c74bd6106405e6dda4c58446a7e2de53c705a79 (patch) | |
tree | c1a2201cf1a9f35bb9687c799555d06bc82fcbbd /config-db/OpenSLX/ConfigDB.pm | |
parent | * vmplayer doesn't like to be the small brother and tried to fake the identit... (diff) | |
download | core-2c74bd6106405e6dda4c58446a7e2de53c705a79.tar.gz core-2c74bd6106405e6dda4c58446a7e2de53c705a79.tar.xz core-2c74bd6106405e6dda4c58446a7e2de53c705a79.zip |
* finally corrected algorithm for merging attributes from default-system & vendor-OS
into a specific system - fixing #213
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1719 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db/OpenSLX/ConfigDB.pm')
-rw-r--r-- | config-db/OpenSLX/ConfigDB.pm | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/config-db/OpenSLX/ConfigDB.pm b/config-db/OpenSLX/ConfigDB.pm index 324a3cf2..964206a1 100644 --- a/config-db/OpenSLX/ConfigDB.pm +++ b/config-db/OpenSLX/ConfigDB.pm @@ -2430,15 +2430,11 @@ sub mergeDefaultAttributesIntoSystem my $installedPlugins = shift; my $originInfo = shift; - # first look into default system - my $defaultSystem = $self->fetchSystemByFilter({name => '<<<default>>>'}); - mergeAttributes($system, $defaultSystem, $originInfo, 'default-system'); - - # push any attributes found in the plugins that are installed into + # merge any attributes found in the plugins that are installed into # the vendor-OS: if (ref $installedPlugins eq 'ARRAY' && @$installedPlugins) { for my $plugin (@$installedPlugins) { - pushAttributes($system, $plugin, $originInfo, 'vendor-OS'); + mergeAttributes($system, $plugin, $originInfo, 'vendor-OS'); } # the above will have merged stage1 attributes, too, so we remove @@ -2450,7 +2446,12 @@ sub mergeDefaultAttributesIntoSystem } } - # finally push the attributes specified for the system itself + # merge yet unset stuff from default system + my $defaultSystem = $self->fetchSystemByFilter({name => '<<<default>>>'}); + mergeAttributes($system, $defaultSystem, $originInfo, 'default-system'); + + # finally push the attributes specified for the default client (these + # overrule anything else) my $defaultClient = $self->fetchClientByFilter({name => '<<<default>>>'}); pushAttributes($system, $defaultClient, $originInfo, 'default-client'); |