Client for OpenStack services
Find a file
Dean Troyer 897418edca Move plugin stuff to clientmanager
The OSC plugins work by adding an object as an attribute to a
ClientManager instance.  The initialization and management of
thos plugins belongs in clientmanager.py.

At this point the only part not moved is the API version dict
initialization bcause the timing and connection to the
CommandManager initialization.  It gets refactored anyway when
API discovery becomes operational.

Change-Id: If9cb9a0c45a3a577082a5cdbb793769211f20ebb
2014-10-13 23:02:34 -05:00
doc Support for keystone auth plugins 2014-10-09 12:34:47 +02:00
functional Fix issue token for v3 2014-10-11 20:34:09 -04:00
openstackclient Move plugin stuff to clientmanager 2014-10-13 23:02:34 -05:00
python-openstackclient/locale Add translation markers for user v2 actions 2014-10-09 14:47:19 -04:00
tools sync oslo bits 2014-06-20 16:18:33 -04:00
.coveragerc Update .coveragerc 2013-02-06 16:47:06 +02:00
.gitignore Update gitignore 2014-10-03 19:35:13 -04: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
babel.cfg Add translation markers for user v2 actions 2014-10-09 14:47:19 -04:00
HACKING.rst Fix PEP8 E302 errors 2014-07-22 17:51:15 -06:00
LICENSE First commit 2012-04-18 13:16:39 -05:00
MANIFEST.in Add translation markers for user v2 actions 2014-10-09 14:47:19 -04:00
openstack-common.conf Use oslo.utils 2014-09-22 13:07:31 +03:00
post_test_hook.sh Add functional tests to osc 2014-10-01 19:46:07 -04:00
README.rst Cleanup README.rst 2014-07-31 00:53:36 -04:00
requirements.txt Merge "Updated from global requirements" 2014-10-12 21:52:07 +00:00
run_tests.sh Modify run_tests.sh to just run tox 2013-08-02 01:41:14 -05:00
setup.cfg Merge "Add translation markers for user v2 actions" 2014-10-12 07:20:09 +00:00
setup.py Updated from global requirements 2014-05-01 13:50:49 +00:00
test-requirements.txt Merge "Updated from global requirements" 2014-10-12 21:52:07 +00:00
tox.ini Merge "Add functional tests to osc" 2014-10-03 22:38:01 +00:00

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

OpenStack Client (aka ``python-openstackclient``) is a command-line client for
the OpenStack APIs.
It is primarily a 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
`OpenStack Client Wiki`_.  The primary goal is to provide
a unified shell command structure and a common language to describe
operations in OpenStack.  The master repository is on GitHub_.

.. _OpenStack Client Wiki: https://wiki.openstack.org/wiki/OpenStackClient
.. _GitHub: https://github.com/openstack/python-openstackclient

OpenStack Client has a plugin mechanism to add support for API extensions.

* `Release management`_
* `Blueprints and feature specifications`_
* `Issue tracking`_
* `PyPi`_
* `Developer Docs`_

.. _release management: https://launchpad.net/python-openstackclient
.. _Blueprints and feature specifications: https://blueprints.launchpad.net/python-openstackclient
.. _Issue tracking: https://bugs.launchpad.net/python-openstackclient
.. _PyPi: https://pypi.python.org/pypi/python-openstackclient
.. _Developer Docs: http://docs.openstack.org/developer/python-openstackclient/
.. _install virtualenv: tools/install_venv.py

Note
====

OpenStackClient is considered to be beta release quality as of the 0.3 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
===============

OpenStack Client can be installed from PyPI using pip::

    pip install python-openstackclient

Developers can use the `install virtualenv`_ script to create the virtualenv::

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

Unit tests are now run using tox.  The ``run_test.sh`` script provides compatibility
but is generally considered deprecated.

The client can be called interactively by simply typing::

   openstack

There are a few variants on getting help.  A list of global options and supported
commands is shown with ``--help``::

   openstack --help

There is also a ``help`` command that can be used to get help text for a specific
command::

    openstack help
    openstack help server create

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)

The corresponding command-line options look very similar::

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

If a password is not provided above (in plaintext), you will be interactively
prompted to provide one securely.

The token flow variation for authentication uses an already-acquired 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::

    cd doc
    make html

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