diff options
author | Oliver Tappe | 2007-03-15 22:41:10 +0100 |
---|---|---|
committer | Oliver Tappe | 2007-03-15 22:41:10 +0100 |
commit | 03db5fcadee81bd5ce66665f18b611e106783c27 (patch) | |
tree | 1071ff956228157c52fbd5b5087ca8928b37d0f9 /installer/OpenSLX/OSExport/Engine.pm | |
parent | * removed 'nbd' from supported export types as I have learned from Dirk yeste... (diff) | |
download | core-03db5fcadee81bd5ce66665f18b611e106783c27.tar.gz core-03db5fcadee81bd5ce66665f18b611e106783c27.tar.xz core-03db5fcadee81bd5ce66665f18b611e106783c27.zip |
* largish overhaul, changed ConfigDB to be object-oriented (could be improved, though!)
* slxos-setup, slxos-export, slxconfig and slxconfig-demuxer can now be run one after the
other in order to get a complete setup
* still problems when trying to boot that system here, need to investigate...
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@774 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSExport/Engine.pm')
-rw-r--r-- | installer/OpenSLX/OSExport/Engine.pm | 46 |
1 files changed, 21 insertions, 25 deletions
diff --git a/installer/OpenSLX/OSExport/Engine.pm b/installer/OpenSLX/OSExport/Engine.pm index 033b22be..555baee2 100644 --- a/installer/OpenSLX/OSExport/Engine.pm +++ b/installer/OpenSLX/OSExport/Engine.pm @@ -82,7 +82,7 @@ sub initialize { my $self = shift; my $vendorOSName = shift; - my $exportType = shift; + my $exportType = lc(shift); if (!exists $supportedExportTypes{lc($exportType)}) { print _tr("Sorry, export type '%s' is unsupported.\n", $exportType); @@ -92,6 +92,7 @@ sub initialize } $self->{'vendor-os-name'} = $vendorOSName; + $self->{'export-name'} = "$vendorOSName-$exportType"; $vendorOSName =~ m[^(.+?\-[^-]+)]; my $distroName = $1; $self->{'distro-name'} = $distroName; @@ -112,7 +113,6 @@ sub initialize die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)', $distroModule, 1.01, $modVersion); } - $distroModule->import; my $distro = $distroModule->new; $distro->initialize($self); $self->{distro} = $distro; @@ -133,7 +133,6 @@ sub initialize die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)', $exportTypeModule, 1.01, $modVersion); } - $exportTypeModule->import; my $exporter = $exportTypeModule->new; $exporter->initialize($self); $self->{'exporter'} = $exporter; @@ -165,9 +164,6 @@ sub addExportToConfigDB { my $self = shift; -print "adding the export to the config-DB is not implemented yet, sorry!\n"; -return; - my $configDBModule = "OpenSLX::ConfigDB"; unless (eval "require $configDBModule") { if ($! == 2) { @@ -181,36 +177,36 @@ return; die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)', $configDBModule, 1.01, $modVersion); } - $configDBModule->import(qw(:access :manipulation)); - my $openslxDB = connectConfigDB(); - # insert new export if it doesn't already exist in DB: - my $exportName = $self->{'vendor-os-name'}; + my $openslxDB = $configDBModule->new(); + $openslxDB->connect(); - my $export = fetchExportsByFilter( - $openslxDB, { 'name' => $exportName }, 'id' - ); + # insert new export if it doesn't already exist in DB: + my $exportName = $self->{'export-name'}; + my $export + = $openslxDB->fetchExportByFilter({'name' => $exportName}); if (defined $export) { - changeExport( - $openslxDB, - { - 'name' => $exportName, - 'path' => $self->{'vendor-os-name'}, - } - ); - vlog 0, _tr("Export <%s> has been updated in DB.\n", $exportName); + vlog 0, _tr("No need to change export '%s' in OpenSLX-database.\n", + $exportName); } else { - my $id = addExport( - $openslxDB, + my $vendorOSName = $self->{'vendor-os-name'}; + my $vendorOS + = $openslxDB->fetchVendorOSByFilter({'name' => $vendorOSName}); + if (!defined $vendorOS) { + die _tr("vendor-OS '%s' could not be found in OpenSLX-database, giving up!\n", + $vendorOSName); + } + my $id = $openslxDB->addExport( { + 'vendor_os_id' => $vendorOS->{id}, 'name' => $exportName, - 'path' => $self->{'vendor-os-name'}, + 'export_type' => $self->{'export-type'}, } ); vlog 0, _tr("Export <%s> has been added to DB (ID=%s).\n", $exportName, $id); } - disconnectConfigDB($openslxDB); + $openslxDB->disconnect(); } } |