summaryrefslogtreecommitdiffstats
path: root/config-db
diff options
context:
space:
mode:
authorOliver Tappe2008-01-27 15:41:30 +0100
committerOliver Tappe2008-01-27 15:41:30 +0100
commitc2fc766953ea372540f01a9b24222a2a202fbf88 (patch)
tree339d66f6aadc57688483a905c8fc013fb4820d72 /config-db
parent* renamed all plugins to lowercase in order to be consistent with (diff)
downloadcore-c2fc766953ea372540f01a9b24222a2a202fbf88.tar.gz
core-c2fc766953ea372540f01a9b24222a2a202fbf88.tar.xz
core-c2fc766953ea372540f01a9b24222a2a202fbf88.zip
* fixed bug that left orphaned installed_plugins when removing a vendor-OS
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1499 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'config-db')
-rw-r--r--config-db/OpenSLX/ConfigDB.pm9
1 files changed, 9 insertions, 0 deletions
diff --git a/config-db/OpenSLX/ConfigDB.pm b/config-db/OpenSLX/ConfigDB.pm
index 8ec9983b..9d876880 100644
--- a/config-db/OpenSLX/ConfigDB.pm
+++ b/config-db/OpenSLX/ConfigDB.pm
@@ -1029,6 +1029,15 @@ sub removeVendorOS
my $self = shift;
my $vendorOSIDs = _aref(shift);
+ # drop all installed plugins before removing the vendor-OS
+ foreach my $vendorOSID (@$vendorOSIDs) {
+ my @installedPlugins
+ = $self->{'meta-db'}->fetchInstalledPlugins($vendorOSID);
+ foreach my $plugin (@installedPlugins) {
+ my $pluginName = $plugin->{plugin_name};
+ $self->{'meta-db'}->removeInstalledPlugin($vendorOSID, $pluginName);
+ }
+ }
return $self->{'meta-db'}->removeVendorOS($vendorOSIDs);
}