summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSExport/Engine.pm
diff options
context:
space:
mode:
authorOliver Tappe2007-04-14 12:52:29 +0200
committerOliver Tappe2007-04-14 12:52:29 +0200
commit52f44ed7ca529c2ac0b5c9c274db5ddcbaf34f8e (patch)
treeaf5cda7118d9eadfea5aab80aba51b2aa535c68c /installer/OpenSLX/OSExport/Engine.pm
parent* added hook for checking the requirements of a specific export type (for NBD... (diff)
downloadcore-52f44ed7ca529c2ac0b5c9c274db5ddcbaf34f8e.tar.gz
core-52f44ed7ca529c2ac0b5c9c274db5ddcbaf34f8e.tar.xz
core-52f44ed7ca529c2ac0b5c9c274db5ddcbaf34f8e.zip
* cleanup with respect to how modules/classes are loaded
git-svn-id: http://svn.openslx.org/svn/openslx/trunk@890 95ad53e4-c205-0410-b2fa-d234c58c8868
Diffstat (limited to 'installer/OpenSLX/OSExport/Engine.pm')
-rw-r--r--installer/OpenSLX/OSExport/Engine.pm77
1 files changed, 10 insertions, 67 deletions
diff --git a/installer/OpenSLX/OSExport/Engine.pm b/installer/OpenSLX/OSExport/Engine.pm
index 6329f245..a54042c5 100644
--- a/installer/OpenSLX/OSExport/Engine.pm
+++ b/installer/OpenSLX/OSExport/Engine.pm
@@ -26,7 +26,9 @@ use Exporter;
use strict;
use Carp;
use File::Basename;
+
use OpenSLX::Basics;
+use OpenSLX::Utils;
use vars qw(%supportedExportTypes %supportedDistros);
@@ -97,12 +99,16 @@ sub initialize
}
}
}
- my $distro = accessDistro($distroName);
+ my $distroModuleName = $supportedDistros{lc($distroName)}->{module};
+ my $distro
+ = instantiateClass("OpenSLX::OSExport::Distro::$distroModuleName");
$distro->initialize($self);
$self->{distro} = $distro;
# load module for the requested export type:
- my $exporter = accessExporter($exportType);
+ my $typeModuleName = $supportedExportTypes{lc($exportType)}->{module};
+ my $exporter
+ = instantiateClass("OpenSLX::OSExport::ExportType::$typeModuleName");
$exporter->initialize($self);
$self->{'exporter'} = $exporter;
@@ -142,74 +148,11 @@ sub purgeExport
################################################################################
### implementation methods
################################################################################
-sub accessDistro
-{
- my $distroName = shift;
-
- my $distroModule
- = "OpenSLX::OSExport::Distro::"
- .$supportedDistros{lc($distroName)}->{module};
- unless (eval "require $distroModule") {
- if ($! == 2) {
- die _tr("Distro-module <%s> not found!\n", $distroModule);
- } else {
- die _tr("Unable to load distro-module <%s> (%s)\n", $distroModule, $@);
- }
- }
- my $modVersion = $distroModule->VERSION;
- if ($modVersion < 1.01) {
- die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)',
- $distroModule, 1.01, $modVersion);
- }
- return $distroModule->new;
-}
-
-sub accessExporter
-{
- my $exportType = shift;
-
- my $exportTypeModule
- = "OpenSLX::OSExport::ExportType::"
- .$supportedExportTypes{lc($exportType)}->{module};
- unless (eval "require $exportTypeModule") {
- if ($! == 2) {
- die _tr("Export-type-module <%s> not found!\n", $exportTypeModule);
- } else {
- die _tr("Unable to load export-type-module <%s> (%s)\n", $exportTypeModule, $@);
- }
- }
- my $modVersion = $exportTypeModule->VERSION;
- if ($modVersion < 1.01) {
- die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)',
- $exportTypeModule, 1.01, $modVersion);
- }
- return $exportTypeModule->new;
-}
-
-sub accessConfigDB
-{
- my $configDBModule = "OpenSLX::ConfigDB";
- unless (eval "require $configDBModule") {
- if ($! == 2) {
- vlog 1, _tr("ConfigDB-module not found, unable to access OpenSLX-database.\n");
- } else {
- die _tr("Unable to load ConfigDB-module <%s> (%s)\n", $configDBModule, $@);
- }
- } else {
- my $modVersion = $configDBModule->VERSION;
- if ($modVersion < 1.01) {
- die _tr('Could not load module <%s> (Version <%s> required, but <%s> found)',
- $configDBModule, 1.01, $modVersion);
- }
- }
- return $configDBModule->new();
-}
-
sub addExportToConfigDB
{
my $self = shift;
- my $openslxDB = accessConfigDB();
+ my $openslxDB = instantiateClass("OpenSLX::ConfigDB");
$openslxDB->connect();
# insert new export if it doesn't already exist in DB:
@@ -250,7 +193,7 @@ sub removeExportFromConfigDB
{
my $self = shift;
- my $openslxDB = accessConfigDB();
+ my $openslxDB = instantiateClass("OpenSLX::ConfigDB");
$openslxDB->connect();
# remove export from DB: