summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-05-06 18:52:34 +0200
committerOliver Tappe2007-05-06 18:52:34 +0200
commit41755a8c5ae4f093e748d3adf28a78c2c4c41728 (patch)
treecf35d81b835c0f030288c0056dfb5332a0c34434 /installer/OpenSLX/OSSetup/Engine.pm
parent* added dhcp-client to default selection, as it is required by mkdxsinitrd cu... (diff)
downloadcore-41755a8c5ae4f093e748d3adf28a78c2c4c41728.tar.gz
core-41755a8c5ae4f093e748d3adf28a78c2c4c41728.tar.xz
core-41755a8c5ae4f093e748d3adf28a78c2c4c41728.zip
* added support to NBD_Squash-exporter for selecting the next free server-port
automatically * added missing code to clean dependent data if removing an export (systems) or a vendor-OS (exports and systems) git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1013 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSSetup/Engine.pm')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm57
1 files changed, 35 insertions, 22 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm
index a9376132..f5ebb20b 100644
--- a/installer/OpenSLX/OSSetup/Engine.pm
+++ b/installer/OpenSLX/OSSetup/Engine.pm
@@ -322,6 +322,41 @@ sub addInstalledVendorOSToConfigDB
$openslxDB->disconnect();
}
+sub removeVendorOSFromConfigDB
+{
+ my $self = shift;
+
+ my $openslxDB = instantiateClass("OpenSLX::ConfigDB");
+ $openslxDB->connect();
+
+ my $vendorOSName = $self->{'vendor-os-name'};
+ my $vendorOS
+ = $openslxDB->fetchVendorOSByFilter({ 'name' => $vendorOSName });
+ if (!defined $vendorOS) {
+ vlog 0, _tr("Vendor-OS '%s' didn't exist in OpenSLX-database.\n",
+ $vendorOSName);
+ } else {
+ # remove all exports (and systems) using this vendor-OS and then
+ # remove the vendor-OS itself:
+ my @exports = $openslxDB->fetchExportByFilter(
+ { 'vendor_os_id' => $vendorOS->{id} }
+ );
+ foreach my $export (@exports) {
+ my $osExportEngine = instantiateClass("OpenSLX::OSExport::Engine");
+ $osExportEngine->initializeFromExisting($export->{name});
+ vlog 0, _tr("purging export '%s', since it belongs to the vendor-OS being deleted...",
+ $export->{name});
+ $osExportEngine->purgeExport();
+ }
+
+ $openslxDB->removeVendorOS($vendorOS->{id});
+ vlog 0, _tr("Vendor-OS '%s' has been removed from DB!\n",
+ $vendorOSName);
+ }
+
+ $openslxDB->disconnect();
+}
+
################################################################################
### implementation methods
################################################################################
@@ -867,28 +902,6 @@ sub clone_determineIncludeExcludeList
return $includeExcludeList;
}
-sub removeVendorOSFromConfigDB
-{
- my $self = shift;
-
- my $openslxDB = instantiateClass("OpenSLX::ConfigDB");
- $openslxDB->connect();
-
- my $vendorOSName = $self->{'vendor-os-name'};
- my $vendorOS
- = $openslxDB->fetchVendorOSByFilter({ 'name' => $vendorOSName });
- if (!defined $vendorOS) {
- vlog 0, _tr("Vendor-OS '%s' didn't exist in OpenSLX-database.\n",
- $vendorOSName);
- } else {
- $openslxDB->removeVendorOS($vendorOS->{id});
- vlog 0, _tr("Vendor-OS '%s' has been removed from DB!\n",
- $vendorOSName);
- }
-
- $openslxDB->disconnect();
-}
-
################################################################################
### utility methods
################################################################################