diff options
| author | Oliver Tappe | 2008-06-02 22:50:39 +0200 |
|---|---|---|
| committer | Oliver Tappe | 2008-06-02 22:50:39 +0200 |
| commit | b55ca3fba8b56ec89e8c17516e2497189e2f1222 (patch) | |
| tree | 966da1aa0e23768358a5288fa398b139fe39e252 | |
| parent | Little bit of cleanup in vmware plugin and dealing with the (diff) | |
| download | core-b55ca3fba8b56ec89e8c17516e2497189e2f1222.tar.gz core-b55ca3fba8b56ec89e8c17516e2497189e2f1222.tar.xz core-b55ca3fba8b56ec89e8c17516e2497189e2f1222.zip | |
fixed problem reported by Michael:
* improved robustness of config-demuxer and OSPlugin::Engine with respect
to checking of attributes for plugins that no longer exist - now the
config-demuxer will no longer fail, but print a warning about non-existing
plugins (and their attributes) instead.
git-svn-id: http://svn.openslx.org/svn/openslx/openslx/trunk@1835 95ad53e4-c205-0410-b2fa-d234c58c8868
| -rw-r--r-- | config-db/OpenSLX/AttributeRoster.pm | 10 | ||||
| -rw-r--r-- | os-plugins/OpenSLX/OSPlugin/Engine.pm | 5 |
2 files changed, 10 insertions, 5 deletions
diff --git a/config-db/OpenSLX/AttributeRoster.pm b/config-db/OpenSLX/AttributeRoster.pm index d8659899..ddd2599d 100644 --- a/config-db/OpenSLX/AttributeRoster.pm +++ b/config-db/OpenSLX/AttributeRoster.pm @@ -536,8 +536,11 @@ sub findProblematicValues next if !defined $value; # check the value against the regex of the attribute (if any) - my $attrInfo = $AttributeInfo{$key} - || die _tr('attribute "%s" is unknown!', $key); + my $attrInfo = $AttributeInfo{$key}; + if (!$attrInfo) { + push @problems, _tr('attribute "%s" is unknown!', $key); + next; + } my $regex = $attrInfo->{content_regex}; if ($regex && $value !~ $regex) { push @problems, _tr( @@ -557,8 +560,7 @@ sub findProblematicValues vlog 2, "checking attrs of plugin: $pluginName\n"; # create & start OSPlugin-engine for vendor-OS and current plugin my $engine = OpenSLX::OSPlugin::Engine->new; - $engine->initialize($pluginName, $vendorOSName); - if (!$engine->{'plugin-path'}) { + if (!$engine->initialize($pluginName, $vendorOSName)) { warn _tr( 'unable to create engine for plugin "%s"!', $pluginName ); diff --git a/os-plugins/OpenSLX/OSPlugin/Engine.pm b/os-plugins/OpenSLX/OSPlugin/Engine.pm index fff68bf1..bde1b962 100644 --- a/os-plugins/OpenSLX/OSPlugin/Engine.pm +++ b/os-plugins/OpenSLX/OSPlugin/Engine.pm @@ -530,7 +530,10 @@ sub _loadPlugin my $pluginModule = "OpenSLX::OSPlugin::$self->{'plugin-name'}"; my $plugin = instantiateClass( - $pluginModule, { pathToClass => $self->{'plugin-path'} } + $pluginModule, { + acceptMissing => 1, + pathToClass => $self->{'plugin-path'}, + } ); return if !$plugin; |
