summaryrefslogtreecommitdiffstats
path: root/installer/OpenSLX/OSSetup/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/OSSetup/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/OSSetup/Engine.pm')
-rw-r--r--installer/OpenSLX/OSSetup/Engine.pm79
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'};