Fix django-admin commands

Some django-admin commands used to inherit from django’s NoArgsCommand.
Therefore their implementation was placed in handle_noargs() method.

A previous commit has changed the django-admin commands all over synnefo to
inherit from SynnefoCommand (which inherits from django’s BaseCommand),
without changing the implementation method to handle().
As a result, these commands fail with NotImplementedError.

This commit fixes this issue.

Closes #103
pithos: Restore SQLite backend module.

The Pithos+ backend can work with several database backend modules.
Currently there are modules for SQLAlchemy and SQLite.
However, the SQLite module was broken by the changes introduced by the support
of snapshots.
This commit restores the SQLite module.

Closes #102
deploy: Add missing cyclades options for ext

The ext disk template needs some extra parameters that are defined
in cyclades settings. Add those missing settings.

Additionally remove any hardcoded references to /srv/ganeti since this
is configurable.

Change mails found in cyclades.conf to examples (e.g
user@synnefo.org).

Add shared-filer ext provider too (by installing ExtStorage
component too).

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
deploy: Support run command

..to kinda simulate pdsh. Specifically:

  snf-deploy run --setup synnefo --cmd "apt-get update" -vvv

or:

  snf-deploy run --target-nodes node1,node2 --cmd "apt-get update"

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
cyclades: Fix ext storage support

Pass origin disk parameter and img_id None only if provider
is included in GANETI_CLONE_PROVIDER list.

Signed-off-by: Dimitris Aragiorgis <dimara@grnet.gr>
astakos: Create system project on user acceptance

Delay the creation of user's system project until the user is accepted,
to avoid polluting the database with unneeded project objects.

There is a slight chance that a user UUID (to be used for a system project)
collides with an existing project UUID. In this case, one has to delete the
user and make a new one in its place.
astakos: Change the display name of system projects

Change the name of projects from "base:UUID" to "system:UUID", so as
to avoid confusion, since the name is visible in management commands.
astakos: Wrap user-modify actions to catch errors
Merge branch 'feature-delay-project' into develop
docs: Typo fixes
cyclades: Additional vm task state mappings

The mappings are related to the volumes api vm tasks.

Refs #98
astakos: Fix system project display in usage view

Identify system projects using project's system_project attribute.

Refs #98
ui: Volumes ui integration

- Volume api model and collection objects
- Volumes list pane
- Volume create wizard
- VM volume list in icon/single view
- Move snapshot functionality from vms to volumes entries

Closes #98
cyclades: Fix a typographical error

Rename 'charachter' to 'character'.

Closes #112
docs: Fix typographical errors

Make the following changes:
    servive    -> service
    vesionless -> versionless
    servers    -> /servers
    imageRed   -> imageRef
    flavorRed  -> flavorRef

Closes #113
astakosclient: Rename param project->project_id

This change affects the parameters of all methods in astakosclient.
Preserve backwards compatibility.

Refs #110
cyclades: Use "project_id" in astakosclient calls

Closes #110
docs: Write an API guide for Block Storage API
astakos: Add logic functions, update im

Add a `user_logic` file that serves as a common endpoint for actions on
users. The actions that this file offers act as a wrapper above
`activation_backends` and are currently used by `snf-manage`. This file
also offers a `validate_user_action` function that checks if an action
can be applied on an AstakosUser.

Also, add a `validate_project_action` function that takes a project and
an action as arguments and checks if the action can be applied on the
project.

Moreover, split `im/functions.py` in two parts. Rename the first part as
`user_utils.py` and keep in it all user-related utilities that
`im/functions.py` provided (mainly mail utilities). The second part is
the project-related functions, which will be kept in `im/functions.py`
for now. Also, fix any broken imports that this split introduces.

Finally, add the `send_plain` function in `im/user_utils.py`. With the
`send_plain` function, the admin can send a fully customizable mail to
an AstakosUser. The admin can either choose to use the provided body
template (`plain_email.txt`) and subject, or write his/her own.
astakos: Add tests for user_logic

Add tests under `im` that verify that the functions in `user_logic.py`
are working as intended.