diff options
Diffstat (limited to 'os-plugins/OpenSLX')
-rw-r--r-- | os-plugins/OpenSLX/OSPlugin/Roster.pm | 23 |
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 |