Execution services allow to create pvmanager services based on command-line execution. The service call will create a process from a given command-line, allows to map some arguments, and returns the result. This allows to gather data from the underlying os, IT infrastructure or anything that can be accessed through a script.
The support includes a general purpose "exec/run" service method that allows a generic command to be run. Other services can be created by writing xml files.
Here is an example of an XML file describing an exec service:
<?xml version="1.0" encoding="UTF-8"?>
<execService ver="1" name="execSample" description="A test service">
<methods>
<method name="echo" description="A test script">
<command>echo You selected #string#</command>
<argument name="string" description="The string" type="VString"/>
<result name="result" description="The result"/>
</method>
<method name="script" description="My script">
<command>myscript.py #value#"</command>
<argument name="value" description="The value" type="VNumber"/>
<result name="result" description="The script result"/>
</method>
</methods>
</execService>
Each service method correspon to one command, with specific mappings. A service is a collection of different mehods.
Syntax | Description |
---|---|
execService |
Version is required to be "1". Name and description of the
service are required |
methods |
List of methods must be provided |
method |
Each method must have a name and a description |
command |
The command correspond to the actual command passed to the
shell. Each command can have multiple arguments noted by #argName#. The
arguments are substituted right before execution, in the order they are
defined in the argument list. |
argument |
Arguments are optional. Each argument must have a name, a description and a type. Supported type include: VString, VNumber. |
result |
Result must include a name and a description. If the output can be parsed as a table, the service will return a VTable. Otherwise will return a VString. |