App XMLΒΆ
Each app must be accompanied by an XML file defining its basic information and its inputs. This XML file can be used by a UI or another plugin to help format inputs.
The <plugin_info> tag is the base.
Next, <plugin_name>
, <plugin_description>
and <plugin_dir>
describe the name
of the plugin to display, a description of what it does, and the location of the
actual executable file, if necessary.
For example
<plugin_info>
<plugin_name>Test Plugin</plugin_name>
<plugin_dir>TestPlugin/trunk/TestPlugin.py</plugin_dir>
<plugin_description>Check for the existance of a network in hydra
Written by Stephen Knox stephen.knox--at--manchester.ac.uk
(c) Copyright 2013, University College London.
</plugin_description>
<plugin_epilog>For more information visit www.hydraplatform.com</plugin_epilog>
...
</plugin_info>
Immediately after this, the app’s inputs are defined.
There are three category of input: <mandatory_args>
, <non_mandatory_args>
and <switches>
<mandatory_args>
<arg>
<name>network_name</name>
<switch>-t</switch>
<multiple>N</multiple>
<argtype>string</argtype>
<help>The name of the network you are creating</help>
</arg>
</mandatory_args>
<non_mandatory_args>
<arg>
<name>num_nodes</name>
<switch>-n</switch>
<multiple>N</multiple>
<argtype>integer</argtype>
<help>The number of nodes to create in the network</help>
</arg>
<arg>
<name>scenario_name</name>
<switch>-s</switch>
<multiple>N</multiple>
<argtype>string</argtype>
<help>The name of the scenario to create. If none is specified, a default is used.</help>
</arg>
</non_mandatory_args>
<switches>
<arg>
<switch>-d</switch>
<name>include-data</name>
<help>If you want data in your network, use this switch.</help>
</arg>
</switches>
Within each category there is an <arg>
, inside which is defined a <name>
, command line <switch>
, whether <multiple>
inputs
can be expected, what type input can be expected and a help string to describe
what it is.