Client for OpenStack services
Find a file
Dean Troyer 725e2543ef Object API commands using our REST API layer
* Add object-store API to ClientManager
* Add object-store client
* Add Object API library in openstackclient.object.v1.lib
* Add Object API {container,object} list commands
* Add library tests
* Add command tests

This should complete the Object v1 container and object list commands

Change-Id: Ib1770d45efa8871959826b85faafa1e0bcef0a03
2013-08-28 22:16:34 -05:00
doc Add release notes in docs 2013-08-06 12:43:22 -05:00
openstackclient Object API commands using our REST API layer 2013-08-28 22:16:34 -05:00
tools Sync install_venv_common from oslo 2013-07-05 22:31:15 -04:00
.coveragerc Update .coveragerc 2013-02-06 16:47:06 +02:00
.gitignore Migrate to pbr. 2013-05-16 10:36:08 -07:00
.gitreview Add openstack-common and test infrastructure. 2012-04-28 22:27:34 +00:00
.mailmap Clean up test environment and remove unused imports. 2013-01-22 11:44:18 -06:00
.testr.conf Add Identity v2 project tests 2013-08-16 14:35:46 -05:00
HACKING.rst Prep for 0.2 release (0.2.rc1) 2013-08-01 16:21:22 -05:00
LICENSE First commit 2012-04-18 13:16:39 -05:00
MANIFEST.in Migrate to pbr. 2013-05-16 10:36:08 -07:00
openstack-common.conf Add security group commands 2013-07-29 19:07:22 -05:00
README.rst Merge "Prep for 0.2 release (0.2.rc1)" 2013-08-01 22:51:30 +00:00
requirements.txt Updated from global requirements 2013-08-07 18:54:34 -03:00
run_tests.sh Modify run_tests.sh to just run tox 2013-08-02 01:41:14 -05:00
setup.cfg Object API commands using our REST API layer 2013-08-28 22:16:34 -05:00
setup.py Updated from global requirements 2013-08-07 18:54:34 -03:00
test-requirements.txt Sync with global requirements 2013-08-03 14:58:43 -04:00
tox.ini Create a new base REST API interface 2013-08-23 12:08:32 -05:00

================
OpenStack Client
================

python-openstackclient is a unified command-line client for the OpenStack APIs.
It is a thin wrapper to the stock python-*client modules that implement the
actual REST API client actions.

This is an implementation of the design goals shown in
http://wiki.openstack.org/UnifiedCLI.  The primary goal is to provide
a unified shell command structure and a common language to describe
operations in OpenStack.

python-openstackclient is designed to add support for API extensions via a
plugin mechanism.

For release management::

   * https://launchpad.net/python-openstackclient

For blueprints and feature specifications::

   * https://blueprints.launchpad.net/python-openstackclient

For issue tracking::

   * https://bugs.launchpad.net/python-openstackclient

Note
====

OpenStackClient is considered to be alpha release quality as of the 0.2 release;
no assurances are made at this point for ongoing compatibility in command forms
or output.  We do not, however, expect any major changes at this point.

Getting Started
===============

We recommend using a virtualenv to install the client. This description
uses the `install_venv.py`_ script to create the virtualenv::

   python tools/install_venv.py
   source .venv/bin/activate
   python setup.py develop

Unit tests can be ran simply by running::

   run_tests.sh

The client can be called interactively by simply typing::

   openstack

Alternatively command line parameters can be called non-interactively::

   openstack --help

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

The CLI is configured via environment variables and command-line
options as listed in https://wiki.openstack.org/wiki/OpenStackClient/Authentication.

The 'password flow' variation is most commonly used::

   export OS_AUTH_URL=<url-to-openstack-identity>
   export OS_PROJECT_NAME=<project-name>
   export OS_USERNAME=<user-name>
   export OS_PASSWORD=<password>  # (optional)
   export OS_USE_KEYRING=true  # (optional)

The corresponding command-line options look very similar::

   --os-auth-url <url>
   --os-project-name <project-name>
   --os-username <user-name>
   [--os-password <password>]
   [--os-use-keyring]

If a password is not provided above (in plaintext), you will be interactively
prompted to provide one securely. If keyring is enabled, the password entered
in the prompt is stored in keyring. From next time, the password is read from
keyring, if it is not provided above (in plaintext).

The token flow variation for authentication uses an already-aquired token
and a URL pointing directly to the service API that presumably was acquired
from the Service Catalog::

    export OS_TOKEN=<token>
    export OS_URL=<url-to-openstack-service>

The corresponding command-line options look very similar::

    --os-token <token>
    --os-url <url-to-openstack-service>

Additional command-line options and their associated environment variables
are listed here::

   --debug             # turns on some debugging of the API conversation
   --verbose | -v      # Increase verbosity of output. Can be repeated.
   --quiet | -q        # suppress output except warnings and errors
   --help | -h         # show a help message and exit

Building Documentation
======================

This documentation is written by contributors, for contributors.

The source is maintained in the ``doc/source`` folder using
`reStructuredText`_ and built by `Sphinx`_

.. _reStructuredText: http://docutils.sourceforge.net/rst.html
.. _Sphinx: http://sphinx.pocoo.org/

* Building Manually::

    $ export DJANGO_SETTINGS_MODULE=local.local_settings
    $ python doc/generate_autodoc_index.py
    $ sphinx-build -b html doc/source build/sphinx/html

Results are in the `build/sphinx/html` directory.