configurationengine/doc/plugins/commandml-plugin/commandml.rst
author terytkon
Thu, 11 Mar 2010 17:04:37 +0200
changeset 0 2e8eeb919028
child 3 e7e0ae78773e
permissions -rw-r--r--
Adding EPL version of configurationengine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     1
User guide for Command Plugin
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     2
-----------------------------
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     3
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     4
Introduction
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     5
'''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     6
This page describes how to use ConE command plugin. Command plugin is a ConE plugin, 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     7
which purpose is to run external tools and scripts to generate files to target image.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     8
Command plugin is configured in CommandML files that describes tools that are run 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
     9
and options that are used.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    10
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    11
CommandML files are executed by default in **normal** :ref:`invocation phase <implml-common-invocation-phase>`.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    12
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    13
CommandML
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    14
'''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    15
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    16
The CommandML syntax is a extension of Configuration markup language (confml). The term in confml for this extension 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    17
is implementation method language (implml), which in CommandML case is a xml file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    18
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    19
All input values can be given as ConfML refs or as plain text. Also mixing text and ConfML ref information
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    20
is supported. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    21
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    22
  * Namespace: ``http://www.s60.com/xml/commandml/1``
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    23
  * File extension: ``commandml``
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    24
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    25
.. note::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    26
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    27
   More information about :ref:`file extensions <implml-file-extensions>`. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    28
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    29
CommandML Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    30
..................
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    31
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    32
The CommandML model is drawn out as a uml model in below picture.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    33
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    34
  .. image:: commandml.jpg
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    35
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    36
.. note::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    37
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    38
   CommandML supports also common ImplML elements. More information about :ref:`ImplML elements <implml-common-elements>`. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    39
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    40
<commandml> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    41
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    42
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    43
The ``commandml`` element is the root element of the configuration, and acts as a container to the rest of the elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    44
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    45
Child Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    46
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    47
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    48
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    49
Element               Cardinality             Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    50
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    51
condition             0 .. *                  Defines a group of commands that are run only if command is evaluated as True.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    52
command               0 .. *                  Defines properties for one executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    53
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    54
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    55
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    56
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    57
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    58
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    59
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    60
  <commandml xmlns="http://www.s60.com/xml/commandml/1">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    61
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    62
<condition> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    63
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    64
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    65
``Condition`` element defines a group of commands that are run only if command is evaluated as True. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    66
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    67
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    68
Child Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    69
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    70
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    71
Condition can contain arbitrary number of commands and they are run in definition order so that next command is executed
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    72
only after the previous has ended.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    73
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    74
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    75
Element               Cardinality             Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    76
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    77
command               0 .. *                  Defines properties for one executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    78
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    79
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    80
Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    81
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    82
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    83
Condition has only one attribute ``value`` which can contains any Python code and ConfML refs. Refs are first expanded
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    84
and then the value is evaluated using Python eval function.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    85
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    86
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    87
Attribute             Required                Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    88
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    89
value                 Yes                     Defines a condition value that can contain any Python code and ConfML refs.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    90
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    91
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    92
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    93
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    94
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    95
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    96
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    97
  <condition value="${runconfig.notepad} != ''">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    98
    <command executable="notepad.exe"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
    99
  </condition>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   100
	
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   101
This will run notepad.exe only if value in ConfML ref ``runconfig.notepad`` is not empty.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   102
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   103
<command> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   104
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   105
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   106
``Command`` element defines properties for one executable. Basically it provides same features that Python subprocess 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   107
module. Commands can be defined either inside condition elements and directly under ``commandml``. Running order of 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   108
commands is the same that is defined in commandml file. Definition of those can be found from 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   109
`Python subprocess documentation <http://docs.python.org/library/subprocess.html>`_.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   110
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   111
Child Elements
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   112
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   113
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   114
Command element can have arguments, pipes and filters as sub-elements.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   115
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   116
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   117
Element               Cardinality             Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   118
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   119
argument              0 .. *                  Defines argument for executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   120
pipe                  0 .. *                  Defines pipe for executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   121
filter                0 .. *                  Defines filter for executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   122
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   123
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   124
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   125
Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   126
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   127
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   128
Command element has one mandatory argument ``executable`` and four optional attributes: ``shell``, ``env``, ``cwd``, ``bufsize``.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   129
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   130
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   131
Attribute             Required                Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   132
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   133
executable            Yes                     Defines a program to execute. Value can contain any Python code and ConfML refs.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   134
shell                 No                      Defines is the specified command executed through the shell. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   135
env                   No                      Defines the environment variables for the new process. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   136
cwd                   No                      Defines the current directory that will be changed to cwd before command is
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   137
                                              executed. Note that this directory is not considered when searching the
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   138
                                              executable, so you can't specify the program's path relative to cwd. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   139
bufsize               No                      Defines the pipe buffering: 0 means unbuffered, 1 means line buffered, 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   140
                                              any other positive value means use a buffer of (approximately) that size. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   141
                                              A negative bufsize means to use the system default, which usually means
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   142
                                              fully buffered. The default value for bufsize is 0 (unbuffered). 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   143
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   144
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   145
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   146
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   147
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   148
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   149
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   150
	<command executable="\Preinstallation\preinstallation.exe" cwd="x:\" shell="true" env="{'MYVAR':'123'}">
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   151
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   152
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   153
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   154
<argument> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   155
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   156
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   157
``Argument`` element defines one command line argument for it's parent command.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   158
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   159
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   160
Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   161
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   162
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   163
Value is given in attribute ``value`` and can contain any string value. When executing the command all attributes are 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   164
combined to be a single string that is passed as a parameter to executable.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   165
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   166
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   167
Attribute             Required                Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   168
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   169
value                 Yes                     Defines a one command line argument for it's parent command.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   170
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   171
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   172
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   173
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   174
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   175
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   176
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   177
	<argument value="-o output/content" />
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   178
	<argument value="--add-setting-file=c:\temp.txt" />
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   179
	<argument value="${preinstallmeta.product}"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   180
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   181
<pipe> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   182
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   183
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   184
Pipes are used to specify executed program's standard input, output and error file handles.    
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   185
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   186
Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   187
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   188
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   189
``Pipe`` has two mandatory arguments ``name`` and ``value``.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   190
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   191
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   192
Attribute             Required                Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   193
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   194
name                  Yes                     Defines the name of the pipe. Possible values are: "stdin", "stdout" and 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   195
                                              "stderr". That are executed programs' standard input, standard output and 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   196
                                              standard error file handles, respectively.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   197
value                 Yes                     Value can be either PIPE to indicate that new should be defined or then 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   198
                                              filename. Stderr additionally can have also value STDOUT, which indicates that 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   199
                                              the stderr data from the applications should be captured into the same file 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   200
                                              handle as for stdout.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   201
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   202
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   203
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   204
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   205
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   206
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   207
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   208
	<pipe name="stdout" value="x:\\logia.txt"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   209
	<pipe name="stderr" value="STDOUT"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   210
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   211
<filter> Element
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   212
**************************
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   213
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   214
Filters are used to analyse output of executed command and report the findings to ConE log file. This enables that 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   215
executed program's errors are easily available for users. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   216
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   217
Attributes
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   218
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   219
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   220
``Filter`` element has four attributes: ``severity``, ``condition``, ``input`` and ``formatter``.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   221
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   222
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   223
Attribute             Required                Description
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   224
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   225
severity              Yes                     Defines logging level e.g. "info" means that possible findings are reported as
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   226
                                              info elements. Other options for severity are "warning", "debug", "exception",
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   227
                                              "error" and "critical". Default value is "info".
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   228
condition             Yes                     Defines a Python regexp pattern that is used to match lines from the 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   229
                                              defined input pipe. Notice that you can use named groups to get some relevant 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   230
                                              information stored for formatter use.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   231
input                 Yes                     Input can be either "stdout" or "stderr". 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   232
formatter             No                      Formatter defines how the findings are reported in ConE output. It is 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   233
                                              sprintf-style string which can contain named groups from condition. If 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   234
                                              formatter is empty found line is printed as such. See examples below.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   235
====================  ======================  ===============================================================================
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   236
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   237
Example
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   238
++++++++++++++++++++++++++
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   239
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   240
.. code-block:: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   241
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   242
	<filter severity="info" condition="\s*\'(?P&lt;name&gt;.*)\' => \'(?P&lt;uid&gt;.*)\'" input="stdout" formatter="Installed %(name)s using UID: %(uid)s"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   243
	<filter severity="debug" condition=".*successfully.*" input="stdout"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   244
	<filter severity="error" condition="Installation of \'(?P&lt;name&gt;.*)\' failed! See the log for details and contact Delevopment team." input="stdout" formatter="Install manually %(name)s!"/>
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   245
			
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   246
The first one defines that findings are reported as info elements. Condition element defines two named groups "name" and
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   247
"uid" which are also used in formatter when printing information to ConE's log file. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   248
The second one tries to find any line containing word "successfully" and prints the whole line as debug element.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   249
The last one print all failed cases as errors and uses again named groups to extract data from input stream. 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   250
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   251
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   252
Full example files
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   253
''''''''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   254
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   255
.. literalinclude:: preinstall.commandml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   256
   :language: xml
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   257
 
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   258
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   259
XSD
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   260
'''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   261
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   262
.. note::
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   263
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   264
   This will be added later.
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   265
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   266
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   267
FAQ
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   268
'''''''''''''
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   269
2e8eeb919028 Adding EPL version of configurationengine.
terytkon
parents:
diff changeset
   270
This will be updated based on the questions.