Implement an optional json output 4 outputing cmds
[kamaki] / docs / installation.rst
index 40e1a9e..4fffadf 100644 (file)
@@ -6,142 +6,206 @@ This guide describes the standard installation process for kamaki, with the aspi
 
 * Kamaki repository: `http://code.grnet.gr/git/kamaki <http://code.grnet.gr/git/kamaki>`_
 
-* Synnefo Linux packages: `http://apt.dev.grnet.gr <http://apt.dev.grnet.gr>`_
+* Kamaki at pypi: `http://pypi.python.org/pypi/kamaki <https://pypi.python.org/pypi/kamaki>`_
+
+* Synnefo Linux packages: `http://apt2.dev.grnet.gr <http://apt2.dev.grnet.gr>`_
 
 Linux and Unix-like enviroments
 -------------------------------
 
-.. _installing-from-source-ref:
+Debian:
+^^^^^^^
 
-Installing from source (git repos.)
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+The following steps describe a command-line approach, but any graphic package manager can be used instead.
 
-Requirements
-""""""""""""
+* As root, append the following to */etc/apt/sources.list* ::
 
-Essential:
+    deb http://apt2.dev.grnet.gr stable/
 
- * Python 2.6 or better [http://www.python.org]
- * Python setuptools [http://pypi.python.org/pypi/setuptools]
+* Make sure the GPG public key for the Synnefo development team is added:
 
-Optional:
+    .. code-block:: console
 
- * VirtualEnv (python-virtualenv) [http://www.virtualenv.org]
+        $ sudo curl https://dev.grnet.gr/files/apt-grnetdev.pub|apt-key add -
 
-1. Setup a virtual enviroment (optional)
-""""""""""""""""""""""""""""""""""""""""
+    otherwise *apt-get update* will produce GPG warnings.
 
-With virtualenv users can setup kamaki and synnefo services in a sandbox environment.
+* Update the Debian sources:
 
-.. code-block:: console
+    .. code-block:: console
 
-    $ virtualenv kamaki-env
-    $ source kamaki-env/bin/activate
+        $ sudo apt-get update
 
-A more detailed example of using virtual env can be found at the `snf-image-creator setup guide <http://docs.dev.grnet.gr/snf-image-creator/latest/install.html#python-virtual-environment>`_
+* Install kamaki:
 
-2. Install objpool (was: snf-common)
-""""""""""""""""""""""""""""""""""""""""""
+    .. code-block:: console
+
+        $ sudo apt-get install kamaki
 
-.. note:: **versions 0.6.0 - 0.6.1**
+Ubuntu
+^^^^^^
+
+The following steps describe a command-line approach, but any graphic package manager can be used instead.
 
-    Package snf-common is part of the synnefo project and used to be a kamaki dependency in versions from 0.6.0 to 0.6.1 to provide a connection pooling mechanism. Users who still run 0.6.0 or 0.6.1 may need to manually install the snf-common package:
+* Let ppa take care of the repository configuration:
 
     .. code-block:: console
 
-        $ git clone http://code.grnet.gr/git/synnefo
-        $ cd synnefo/snf-common
-        $ ./setup build install
-        $ cd -
+        $ sudo apt-get install python-software-properties
+        $ sudo add-apt-repository ppa:grnet/synnefo
 
-**Version 0.6.2 and on:**
+* Update the Debian sources:
 
-Since 0.6.2, kamaki is based on objpool (hence the snf-common dependency is now obsolete). The objpool package is easy to install from source, even on windows platforms:
+    .. code-block:: console
 
-.. code-block:: console
+        $ sudo apt-get update
 
-    $ git clone http://code.grnet.gr/git/objpool
-    $ cd objpool
-    $ ./setup build install
-    $ cd -
+* Install kamaki:
 
-3. Install kamaki
-"""""""""""""""""
+    .. code-block:: console
 
-.. code-block:: console
+        $ sudo apt-get install kamaki
 
-    $ git clone http://code.grnet.gr/git/kamaki
-    $ cd kamaki
-    $ ./setup build install
+Install ansicolors (optional but recommended)
+"""""""""""""""""""""""""""""""""""""""""""""
 
-4. Install progress and/or ansicolors (optional)
-""""""""""""""""""""""""""""""""""""""""""""""""
+.. code-block:: console
 
-progress: command-line progress bars (in some commands)
+    $ sudo apt-get install python-ansicolors
 
-ansicolors: color kamaki output (can switched on and off in `setup <setup.html>`_)
+Install mock (for developers only)
+""""""""""""""""""""""""""""""""""
 
 .. code-block:: console
 
-    $ pip install progress
-    $ pip install ansicolors
+    $ sudo apt-get install python-mock
 
-Ubuntu and Debian packages
-^^^^^^^^^^^^^^^^^^^^^^^^^^
+.. warning:: kamaki.clients unit-tests need python-mock 1.X or better. e.g.::
 
-The following steps describe a command-line approach, but any graphic package manager can be used instead.
+    $ sudo apt-get install python-mock=1.0.1
 
-1. Add the following to apt sources list
-""""""""""""""""""""""""""""""""""""""""
+.. _installing-from-pypi-ref:
 
-* Debian::
+Installing from pypi
+^^^^^^^^^^^^^^^^^^^^
 
-    deb http://apt.dev.grnet.gr/ sid main
+Requirements
+""""""""""""
 
-* Ubuntu::
+Essential:
 
-    deb http://apt.dev.grnet.gr/ precise main
+ * Python 2.6 or better [http://www.python.org]
+ * Python setuptools [http://pypi.python.org/pypi/setuptools]
 
-2. Update
-"""""""""
+Optional:
 
-.. code-block:: console
+ * VirtualEnv (python-virtualenv) [http://www.virtualenv.org]
+
+Setup a virtual enviroment (optional)
+"""""""""""""""""""""""""""""""""""""
 
-    $ sudo apt-get update
+With virtualenv users can setup kamaki and synnefo services in a sandbox environment.
+
+.. code-block:: console
 
-.. note:: Safely ignore a signature verification error like the following, if it emerges:
+    $ virtualenv kamaki-env
+    $ source kamaki-env/bin/activate
 
-    .. warning:: GPG error: http://apt.dev.grnet.gr precise/sid InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY XXXXXXXX
+A more detailed example of using virtual env can be found at the `snf-image-creator setup guide <http://www.synnefo.org/docs/snf-image-creator/latest/install.html#python-virtual-environment>`_
 
-3. Install kamaki
-"""""""""""""""""
+Install kamaki
+""""""""""""""
 
-.. note:: **versions 0.6.0 - 0.6.1:**
+.. code-block:: console
 
-    The *snf-common* package (available at synnefo apt repository) will be automatically installed as a dependency.
+    $ pip install kamaki
 
-.. note:: **versions 0.6.2 and on:**
+Install ansicolors
+""""""""""""""""""
 
-    Since version 0.6.2, *objpool* replaces *snf-common*. The objpool package is also available at synnefo repository and is automatically installed as a dependency. The *snf-common* dependency is removed.
+The **ansicolors** package is not required for running kamaki, but it is
+recommended as a user experience improvement. In specific, ansicolors
+adds colors to kamaki responses.
 
 .. code-block:: console
 
-    $ sudo apt-get install kamaki
+    $ pip install ansicolors
 
-4. Install ansicolors and/or progress (Optional)
-""""""""""""""""""""""""""""""""""""""""""""""""
+Install mock
+""""""""""""
+
+The **mock** package is needed for running the prepared unit-tests in the kamaki.clients
+package. This feature is useful when extendnig / debugging kamaki functionality and is
+aimed to kamaki developers and contributors. Therefore, users can enjoy the full kamaki
+user experience without installing mock.
 
 .. code-block:: console
 
-    $ sudo apt-get install python-ansicolors
-    $ sudo apt-get install python-progress
+    $ pip install mock
+
+.. warning:: mock version >= 1.X
 
 Mac OS X
 --------
 
-Kamaki can be installed on Mac OS X systems from source, by following the steps at :ref:`installing-from-source-ref`.
+Kamaki can be installed on Mac OS X systems from source, by following the steps at :ref:`installing-from-pypi-ref`.
 
 Windows
 -------
 
-Although it is proven not too tricky to install kamaki on Windows console using `git for windows <http://git-scm.com/downloads>`_, Windows environments are not supported at the time being.
+Kamaki can be installed on Windows by following the pypi method. Installing the requirements is a bit different than in other systems. 
+
+The full process is detailed in the following:
+
+Requirements
+^^^^^^^^^^^^
+
+* Python 2.7 or better (`Official versions <http://www.python.org/getit>`_)
+
+* Setuptools (`Official versions and workarounds <http://pypi.python.org/pypi/setuptools>`_)
+
+Users who have already set up python and setuptools (e.g. for another project) may skip python and / or setup tools installation.
+
+Install python
+^^^^^^^^^^^^^^
+
+Download and run the Windows installer from `here <http://www.python.org/getit>`_
+
+Users should pick the installer that fits their windows version and architecture.
+
+Add python to windows path
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The following will allow users to run python and python scripts from command line.
+
+* Select **System** from the Control Panel, select the **Advanced** tab, the **Environment Variables** button and then find the **PATH** (user or system) and **edit**
+
+* Without removing existing values, append the following to PATH::
+
+    C:\Python;C:\Python\Scripts
+
+.. note:: Path values are separated by semicolons
+
+.. warning:: C:\\Python should be replaced with the actual python path in the system, e.g. C:\\Python27
+
+Install setuptools
+^^^^^^^^^^^^^^^^^^
+
+According to the corresponding `python org page <http://pypi.python.org/pypi/setuptools>`_, the setuptools installer doesn't currently work on 64bit machines.
+
+* Users with 32-bit operating systems should download and run the graphic installer
+
+* Users with 64-bit machines should download the `ez_setup.py <http://peak.telecommunity.com/dist/ez_setup.py>`_ script and install it from a command shell. In the following example, the script was downloaded at C:\\Downloads::
+
+    C:\> cd Downloads
+    C:\Downloads\> python ez_setup.py
+    ...
+    Installation finished
+    C:\Downloads\>
+
+Install kamaki
+^^^^^^^^^^^^^^
+
+.. code-block:: console
+
+    $ easy_setup kamaki