
.. _client_intall_config:

======================================
Installation and configuration: Client
======================================

This page describes the installation and configuration of the soma-workflow
client. The installation of a soma-workflow client supposes that at least one 
soma-workflow database servers is installed on a remote or a local computing 
resources (see :ref:`server`).


Requirements
============

* Python *version 2.5 or more*
* `Pyro <http://www.xs4all.nl/~irmen/pyro3/>`_ *version 3.10 or more*
* `Paramiko <http://www.lag.net/paramiko/>`_ *version 1.7 or more*. Paramiko in   
  only required if the computing resource is remote. 
* For the GUI: Qt *version 4.6.2 or more*, `PyQt <http://www.riverbankcomputing.co.uk/software/pyqt/intro>`_ *version 4.7.2 or more* and `matplotlib <http://matplotlib.sourceforge.net/>`_ *version 0.99 or more*

Installation
============

1. *Install the soma-workflow python modules and command. => under construction*

2. Create a configuration file (see :ref:`client_configuration`) at the location $HOME/.soma-workflow.cfg. You can also choose your own path for the configuration file and set the "SOMA_WORKFLOW_CONFIG" environment variable or put it in the /etc/ directory.

..
  The client only need the soma-workflow modules to be installed and the
  soma_workflow_gui file to be located in the PATH


.. _client_configuration:

Configuration
=============

The configuration syntax is the `ConfigParser <http://docs.python.org/library/configparser.html>`_  syntax.

There is one section for each computing resource (that is for each soma-workflow
database server). 

Only three items are required:
 
  * CLUSTER_ADDRESS
  * SUBMITTING_MACHINES
  * QUEUES 

The two first items are mandatory and the last one is 
optional. The values of these configuration items are set up at each 
soma-workflow server installation (see :ref:`server_configuration`). Ask these item 
values to the soma-workflow administrator if you did not install the server yourself.  

Configuration file example: ::

  [Titan]

  CLUSTER_ADDRESS     = titan.mylab.fr
  SUBMITTING_MACHINES = titan0
  
  QUEUES = test long 


  [LabDesktops]

  CLUSTER_ADDRESS     = mydesktop.mylab.fr
  SUBMITTING_MACHINES = mydesktop


Start the GUI
=============

The command *soma_workflow_gui* starts the GUI.

.. seealso:: :ref:`gui` for the GUI documentation.


Use the Python API
==================

Import the soma.workflow.client module to use the Python API.

.. seealso:: :ref:`client_api` for soma-workflow Python API documentation or :ref:`examples` for a fast start.