cyclades: Log vncauthproxy's response

Log the response of vncauthproxy when it has failed to
process a request (the status field is not 'OK').

Closes #12
ci: Add ssh port option

Add an option to connect to a specific ssh port of the created VM.
It is mainly useful when running ci from a VM in demo.synnefo.org. In
this case, we don't want to deduct the ssh port from the returned
server IP since the demo's DNAT applies only to connections out of the
demo's private network.
ci: Add uninstall option

The uninstall option uses the "--uninstall" switch of `python setup.py
develop`. The behavior of the "--uninstall" switch can be found in the
setuptools docs [1].

[1] https://pythonhosted.org/setuptools/setuptools.html#develop
snf-ci: Use Synnefo's API to determine the ssh port

The API provides port translation for every server. Use this to
determine the ssh port of 'demo.synnefo.org' and replace the hard
coded values in the code.

Closes #15
deploy: Create the ddns and .ssh dirs

These dirs are needed to store the ddns and .ssh files created by
snf-deploy keygen. All these files should reside in the template dir
since are going to be moved to target nodes.

Add those dirs in .gitignore since we don't want to track any temp
files created if we run snf-deploy from source.

Update Copyright dates.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy: Add state dir and use it for status

Introduce new setting in [dirs] section of deploy.conf: `state`.
Override this setting with `--state-dir` option (useful when running
deploy from source).

This dir is currently used to store snf-deploy's `snf_deploy_status`
file, that shows which components on which nodes have been
installed. Do not update this file if `--dry-run` is used.

Additionally introduce `--templates-dir` option that overrides
`template` setting in [dirs] section of `deploy.conf`.

Note that override options do not modify the configuration files.
Changes are performed in the execution context of each snf-deploy
command.

To run snf-deploy from source use:

$ python setup.py develop
$ snf-deploy keygen -c conf -t files -s /tmp
$ snf-deploy all --autoconf -c conf -t files -s /tmp

Add the above setting to snf-ci's schema files.

Update Copyright dates.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy/ci: Small refactor regarding ssh/ddns keys

In case `keygen` founds the keys it does nothing. If `--force` is
passed then it re-creates the keys.

Currently ci installs the deploy package during `build` command.
Move keygen action from ci's `deploy_synnefo` phase to the
`build_synnefo` phase.

Do not use the `--force` flag so that deploy can be re-entrant on
any level.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy: Remove old fabfile

..and replace it with the `fabfile2.py`.

Update Copyright dates.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
snf-ci: Add copyright note
snf-ci: Don't get the schema files from local repo

snf-ci used to find the schema files in the local repo and upload them
to the testing server. This is wrong since one can choose to test a
different branch that the one he has currently checked out, so snf-ci
will use the wrong schema files.

This patch fixes the above problem by instructing snf-ci to use the
schema files it finds in the repo cloned inside the testing server.
snf-ci: Test a pull request

Add option '--pull-request' to snf-ci. This option gets a Github
pull-request url (e.g. 'https://github.com/grnet/synnefo/pull/id') and
runs the testsuite in a sophisticated way.

Sophisticated means that it will not just check the remote branch from
which the pull request originated. Instead it will checkout the branch
for which the pull request is indented (e.g. grnet:develop) and apply
the pull request over it. This way it checks the pull request against
the branch this pull request targets.
gtools: pep8 fixes

* pep8 fixes in setup.py of snf-cyclades-gtools
* Update date on copyright notice
cyclades: Remove obsolete dependencies

* Remove python-prctl as a dependency from snf-cyclades-gtools
* Remove pycurl as a dependency from snf-cyclades-app
* Update date on copyright notice on setup.py
astakos: pep8 fixes

* pep8 fixes on astakos views
astakos: Remove obsolete dependency inflect

* Remove inflect as a dependency from snf-astakos-app
* Remove unused code that imported inflect

Closes #20
snf-common: Suport 'Queue TTL' in AMQP clients

Extend the AMQP clients to support RabbitMQ's 'Queue TTL' extension, by
passing the 'x-expires' argument when declaring a queue. This argument
controls for how long a queue can be unused before it is automatically
deleted.
snf-common: Support 'no_ack' in AMQP clients

Enable the Synnefo AMQP clients to consume messages from the queues
without requiring acknowledgments.

Also, add the missing 'exclusive' argument in 'AMQPHaighaClient'.
gtools: Make the eventd send heartbeat messages

Make 'snf-ganeti-eventd' daemon to send heartbeat messages which can
be used to check that the daemon is working correctly, i.e. that it is watching
the Ganeti queue and that it can send messages to the AMQP broker. The
daemon is triggered to send a heartbeat message by setting a special tag
to the Ganeti cluster in 'dry-run' mode.

Heartbeat messages are send with the 'eventd.heartbeat' routing key.

Refs Issue #23
cyclades: Improve snf-dispatcher's help message

Add a description to snf-dispatcher's help message and improve the help
message of some options.
cyclades: Tool for checking Cyclades update path

Create a tool for checking the status of Cyclades update path, which
includes Ganeti, AMQP, snf-ganeti-eventd and snf-dispatcher. The tool is
created as part of the snf-dispatcher and can be used by passing the
'--status-check' option.

The tool sends a 'status-check' message to the running snf-dispatcher
process (via AMQP) and then waits to get the status report from an
exclusive queue. Respectively, the snf-dispatcher uses the Ganeti RAPI
client to add a special tag to each Ganeti cluster (in dry-run mode),
which will trigger snf-ganeti-eventd to send a heartbeat message to the
AMQP broker. Dispatcher collects all these message and sends the status
report back to the tool that triggered the status check.

Closes #23