diff options
author | Oliver Tappe | 2007-04-14 12:52:29 +0200 |
---|---|---|
committer | Oliver Tappe | 2007-04-14 12:52:29 +0200 |
commit | 52f44ed7ca529c2ac0b5c9c274db5ddcbaf34f8e (patch) | |
tree | af5cda7118d9eadfea5aab80aba51b2aa535c68c /installer/OpenSLX/OSSetup/Engine.pm | |
parent | * added hook for checking the requirements of a specific export type (for NBD... (diff) | |
download | core-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/OSSetup/Engine.pm')
-rw-r--r-- | installer/OpenSLX/OSSetup/Engine.pm | 79 |
1 files changed, 12 insertions, 67 deletions
diff --git a/installer/OpenSLX/OSSetup/Engine.pm b/installer/OpenSLX/OSSetup/Engine.pm index 98077a27..16d8a801 100644 --- a/installer/OpenSLX/OSSetup/Engine.pm +++ b/installer/OpenSLX/OSSetup/Engine.pm @@ -108,28 +108,16 @@ sub initialize } # load module for the requested distro: - my $distroModule - = "OpenSLX::OSSetup::Distro::" - .$supportedDistros{lc($distroName)}->{module}; + my $distroClass; if ($actionType eq 'clone') { - # fallback to generic clone module, such that we can clone + # force generic clone module, such that we can clone # distro's for which there is no specific distro-module yet # (like for example for Gentoo): - $distroModule = "OpenSLX::OSSetup::Distro::Any_Clone"; - } - 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)\n", - $distroModule, 1.01, $modVersion); + $distroClass = "Any_Clone"; + } else { + $distroClass = $supportedDistros{lc($distroName)}->{module}; } - my $distro = $distroModule->new; + my $distro = instantiateClass("OpenSLX::OSSetup::Distro::$distroClass"); $distro->initialize($self); $self->{distro} = $distro; @@ -291,7 +279,7 @@ sub addInstalledVendorOSToConfigDB die _tr("can't import vendor-OS '%s', since it doesn't exist!\n", $self->{'vendor-os-path'}); } - my $openslxDB = accessConfigDB(); + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); $openslxDB->connect(); # insert new vendor-os if it doesn't already exist in DB: my $vendorOSName = $self->{'vendor-os-name'}; @@ -394,21 +382,9 @@ sub createPackager { my $self = shift; - my $packagerModule + my $packagerClass = "OpenSLX::OSSetup::Packager::$self->{distro}->{'packager-type'}"; - unless (eval "require $packagerModule") { - if ($! == 2) { - die _tr("Packager-module '%s' not found!\n", $packagerModule); - } else { - die _tr("Unable to load packager-module '%s' (%s)\n", $packagerModule, $@); - } - } - my $modVersion = $packagerModule->VERSION; - if ($modVersion < 1.01) { - die _tr("Could not load module '%s' (Version '%s' required, but '%s' found)\n", - $packagerModule, 1.01, $modVersion); - } - my $packager = $packagerModule->new; + my $packager = instantiateClass($packagerClass); $packager->initialize($self); $self->{'packager'} = $packager; } @@ -417,21 +393,9 @@ sub createMetaPackager { my $self = shift; - my $metaPackagerModule + my $metaPackagerClass = "OpenSLX::OSSetup::MetaPackager::$self->{distro}->{'meta-packager-type'}"; - unless (eval "require $metaPackagerModule") { - if ($! == 2) { - die _tr("Meta-packager-module '%s' not found!\n", $metaPackagerModule); - } else { - die _tr("Unable to load meta-packager-module '%s' (%s)\n", $metaPackagerModule, $@); - } - } - my $modVersion = $metaPackagerModule->VERSION; - if ($modVersion < 1.01) { - die _tr("Could not load module '%s' (Version '%s' required, but '%s' found)\n", - $metaPackagerModule, 1.01, $modVersion); - } - my $metaPackager = $metaPackagerModule->new; + my $metaPackager =instantiateClass($metaPackagerClass); $metaPackager->initialize($self); $self->{'meta-packager'} = $metaPackager; } @@ -800,30 +764,11 @@ sub clone_determineIncludeExcludeList return $includeExcludeList; } -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 removeVendorOSFromConfigDB { my $self = shift; - my $openslxDB = accessConfigDB(); + my $openslxDB = instantiateClass("OpenSLX::ConfigDB"); $openslxDB->connect(); my $vendorOSName = $self->{'vendor-os-name'}; |