KBEC-00213 - Listing plugin procedures using ec-perl and XPATH

Article ID:360033192491
1 minute readKnowledge base

Summary

This article shows how to extract a list of procedures from your installed plugin library. The approach applies to extracting data from other XML-generating API commands.

Solution

Use the Perl XPATH methods find() and get_nodelist on API get commands to generate list that can be processed with a for-loop.

Examples

use strict;
use ElectricCommander;
$| = 1;

my $ec = ElectricCommander->new();

for my $plugin ($ec->getPlugins()->find('//pluginName')->get_nodelist) {
    print "Plugin: ", $plugin->string_value(), "\n";
    for my $procedure ($ec->getProcedures($plugin->string_value())->find('//procedureName')->get_nodelist) {
        print " - ", $procedure->string_value(), "\n";
    }
    print "\n";
}

The above ec-perl code will generate output similar to the following:

- CleanUp
 - Clone
 - Create
 - CreateResourceFromVM
 - Destroy
 - List
 - Resume
 - Revert
 - ShutDown
 - Snapshot
 - Start
 - Suspend
 - Undefine

Plugin: EC-LabManager-1.5.0.43267
 - BulkCleanup
 - Capture
 - Cleanup
 - Clone
 - Command
 - ConfigurationChangeOwner
 - CreateConfigurationFromVMTemplate
 - CreateConfigurationFromVMTemplate4.0
 - CreateLMConnection
 - CreateResourcesFromConfiguration
 - DeleteLMConnection
 - Deploy
 - Provision
 - Provision4.0
 - Revert
 - Snapshot