summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSExport/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-03-15 22:41:10 +0100
committerOliver Tappe2007-03-15 22:41:10 +0100
commit03db5fcadee81bd5ce66665f18b611e106783c27 (patch)
tree1071ff956228157c52fbd5b5087ca8928b37d0f9 /installer/OpenSLX/OSExport/Engine.pm
parent* removed 'nbd' from supported export types as I have learned from Dirk yeste... (diff)
downloadcore-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.pm46
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();
}
}