summaryrefslogtreecommitdiffstats
path: root/os-plugins/OpenSLX
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/OpenSLX')
-rw-r--r--os-plugins/OpenSLX/OSPlugin/Roster.pm23
1 files changed, 23 insertions, 0 deletions
diff --git a/os-plugins/OpenSLX/OSPlugin/Roster.pm b/os-plugins/OpenSLX/OSPlugin/Roster.pm
index 7bfed044..93887ec7 100644
--- a/os-plugins/OpenSLX/OSPlugin/Roster.pm
+++ b/os-plugins/OpenSLX/OSPlugin/Roster.pm
@@ -18,6 +18,7 @@ use warnings;
use OpenSLX::Basics;
use Clone qw(clone);
+use Digest::MD5 qw(md5_hex);
my %plugins;
@@ -40,6 +41,28 @@ sub getAvailablePlugins
return \%pluginInfo;
}
+=item C<computeMD5HashOverAvailablePlugins()>
+
+Returns a MD5 hash representing the list of available plugins and all their
+attributes.
+
+=cut
+
+sub computeMD5HashOverAvailablePlugins
+{
+ my $class = shift;
+
+ $class->_init() if !%plugins;
+
+ my $pluginInfoString = '';
+ foreach my $pluginName (sort keys %plugins) {
+ my $attrInfo = $plugins{$pluginName}->getAttrInfo();
+ my $attrList = join ',', sort keys %$attrInfo;
+ $pluginInfoString .= $pluginName . '(' . $attrList . ')';
+ }
+ return md5_hex($pluginInfoString);
+}
+
=item C<getPlugin()>
Returns an instance of the plugin with the given name