diff options
author | Oliver Tappe | 2007-05-29 22:06:16 +0200 |
---|---|---|
committer | Oliver Tappe | 2007-05-29 22:06:16 +0200 |
commit | d561c9b1d1440185a5000c3d4df4395ba6de9a22 (patch) | |
tree | d1b2227c7e47e8479c52bcb0e8490aa4bd5d1cb8 /installer/OpenSLX/OSExport/Engine.pm | |
parent | * (hopefully) fixed problem with respect to wget repeatedly failing with (diff) | |
download | core-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.pm | 59 |
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", |