summaryrefslogtreecommitdiffstats
path: root/config-db/OpenSLX/ConfigDB.pm
diff options
context:
space:
mode:
Diffstat (limited to 'config-db/OpenSLX/ConfigDB.pm')
-rw-r--r--config-db/OpenSLX/ConfigDB.pm19
1 files changed, 13 insertions, 6 deletions
diff --git a/config-db/OpenSLX/ConfigDB.pm b/config-db/OpenSLX/ConfigDB.pm
index 1d9c6a36..37bc1404 100644
--- a/config-db/OpenSLX/ConfigDB.pm
+++ b/config-db/OpenSLX/ConfigDB.pm
@@ -151,9 +151,8 @@ The precise name of the database that should be connected (defaults to 'openslx'
sub connect ## no critic (ProhibitBuiltinHomonyms)
{
my $self = shift;
- my $dbParams = shift;
- # hash-ref with any additional info that might be required by
- # specific metadb-module (not used yet)
+ my $dbParams = shift; # hash-ref with any additional info that might be
+ # required by specific metadb-module (not used yet)
my $dbType = $openslxConfig{'db-type'};
# name of underlying database module...
@@ -191,6 +190,17 @@ sub connect ## no critic (ProhibitBuiltinHomonyms)
$self->{'db-schema'}->checkAndUpgradeDBSchemaIfNecessary($self)
or die _tr('unable to check/update DB schema!');
+ # check if any plugins (or plugin-attributes) have been added/removed since
+ # last DB-session and bring the DB up-to-date, if so
+ my $pluginInfoHashVal
+ = OpenSLX::OSPlugin::Roster->computeMD5HashOverAvailablePlugins();
+ my $pluginInfoHashValInDB = $metaDB->schemaFetchPluginInfoHashVal();
+ vlog(1, "plugin-info-hashes: $pluginInfoHashVal <=> $pluginInfoHashValInDB");
+ if ($pluginInfoHashValInDB ne $pluginInfoHashVal) {
+ $self->cleanupAnyInconsistencies();
+ return if !$metaDB->schemaSetPluginInfoHashVal($pluginInfoHashVal);
+ }
+
return 1;
}
@@ -1285,9 +1295,6 @@ sub addInstalledPlugin
my $pluginName = shift;
my $pluginAttrs = shift || {};
- # make sure the attributes of this plugin are available via default system
- $self->synchronizeAttributesWithDB();
-
return $self->{'meta-db'}->addInstalledPlugin(
$vendorOSID, $pluginName, $pluginAttrs
);