summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSExport/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-05-29 22:06:16 +0200
committerOliver Tappe2007-05-29 22:06:16 +0200
commitd561c9b1d1440185a5000c3d4df4395ba6de9a22 (patch)
treed1b2227c7e47e8479c52bcb0e8490aa4bd5d1cb8 /installer/OpenSLX/OSExport/Engine.pm
parent* (hopefully) fixed problem with respect to wget repeatedly failing with (diff)
downloadcore-d561c9b1d1440185a5000c3d4df4395ba6de9a22.tar.gz
core-d561c9b1d1440185a5000c3d4df4395ba6de9a22.tar.xz
core-d561c9b1d1440185a5000c3d4df4395ba6de9a22.zip
* changed handling of exports to drop support for having more than one
export for a given vendor-OS with the same export-type * exports are now named according to the pattern <vendor-os>-<export-type> (instead of <vendor-os>-<X> where X was a letter) * change slxos-export to show the export-config-info after updating an export, too (not only after creating a new export). git-svn-id: http://svn.openslx.org/svn/openslx/trunk@1108 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSExport/Engine.pm')
-rw-r--r--installer/OpenSLX/OSExport/Engine.pm59
1 files changed, 27 insertions, 32 deletions
diff --git a/installer/OpenSLX/OSExport/Engine.pm b/installer/OpenSLX/OSExport/Engine.pm
index 4ffae1a8..6264471a 100644
--- a/installer/OpenSLX/OSExport/Engine.pm
+++ b/installer/OpenSLX/OSExport/Engine.pm
@@ -108,9 +108,7 @@ sub initializeForNew
die _tr("vendor-OS '%s' not found in DB, giving up!", $vendorOSName);
}
- my $exportCounter
- = $openslxDB->incrementExportCounterForVendorOS($vendorOS->{id});
- my $exportName = sprintf "$vendorOSName-%c", 64+$exportCounter;
+ my $exportName = "$vendorOSName-$exportType";
$openslxDB->disconnect();
@@ -135,22 +133,6 @@ sub exportVendorOS
$self->addExportToConfigDB();
}
-sub updateExportedVendorOS
-{
- my $self = shift;
- my $exportName = shift;
-
- if (!$self->{'exporter'}->checkRequirements($self->{'vendor-os-path'})) {
- die _tr("clients wouldn't be able to access the exported root-fs!\nplease install the missing module(s) or use another export-type.");
- }
-
- $self->{'exporter'}->exportVendorOS(
- $self->{'vendor-os-path'},
- $self->{'export-path'}
- );
- vlog 0, _tr("export '%s' successfully updated!", $self->{'export-path'});
-}
-
sub purgeExport
{
my $self = shift;
@@ -236,7 +218,7 @@ sub _initialize
$self->{'vendor-os-path'}
= "$openslxConfig{'stage1-path'}/$vendorOSName";
$self->{'export-path'}
- = "$openslxConfig{'export-path'}/$exportType/$exportName";
+ = "$openslxConfig{'export-path'}/$exportType/$vendorOSName";
vlog 1, _tr("vendor-OS from '%s' will be exported to '%s'",
$self->{'vendor-os-path'}, $self->{'export-path'});
}
@@ -248,17 +230,31 @@ sub addExportToConfigDB
my $openslxDB = instantiateClass("OpenSLX::ConfigDB");
$openslxDB->connect();
- my $export = {
- 'vendor_os_id' => $self->{'vendor-os-id'},
- 'name' => $self->{'export-name'},
- 'type' => $self->{'export-type'},
- };
-
- my $id = $self->{exporter}->addExportToConfigDB($export, $openslxDB);
- vlog 0, _tr("Export '%s' has been added to DB (ID=%s)...\n",
- $self->{'export-name'}, $id);
- # now create a default system for that export, using the standard kernel:
- system("slxconfig add-system $self->{'export-name'}");
+ my $export
+ = $openslxDB->fetchExportByFilter({
+ 'name' => $self->{'export-name'},
+ 'vendor_os_id' => $self->{'vendor-os-id'},
+ });
+ if (defined $export) {
+ vlog 0, _tr("No need to change export '%s' in OpenSLX-database.\n",
+ $self->{'export-name'});
+ $self->{exporter}->showExportConfigInfo($export);
+ } else {
+ $export = {
+ 'vendor_os_id' => $self->{'vendor-os-id'},
+ 'name' => $self->{'export-name'},
+ 'type' => $self->{'export-type'},
+ };
+
+ my $id = $self->{exporter}->addExportToConfigDB($export, $openslxDB);
+ vlog 0, _tr("Export '%s' has been added to DB (ID=%s)...\n",
+ $self->{'export-name'}, $id);
+
+ $self->{exporter}->showExportConfigInfo($export) if $id;
+
+ # now create a default system for that export, using the standard kernel:
+ system("slxconfig add-system $self->{'export-name'}");
+ }
$openslxDB->disconnect();
}
@@ -275,7 +271,6 @@ sub removeExportFromConfigDB
my $export
= $openslxDB->fetchExportByFilter({
'name' => $exportName,
- 'type' => $self->{'export-type'},
});
if (!defined $export) {
vlog 0, _tr("Export '%s' doesn't exist in OpenSLX-database.\n",