Difference between revisions of "OpenStackClient"
Line 16: | Line 16: | ||
| Tarball | | Tarball | ||
| http://tarballs.openstack.org/python-openstackclient | | http://tarballs.openstack.org/python-openstackclient | ||
+ | |- | ||
+ | | Developer Docs | ||
+ | | http://docs.openstack.org/developer/python-openstackclient/ | ||
|} | |} | ||
Line 22: | Line 25: | ||
Status: '''In progress''' | Status: '''In progress''' | ||
− | The <code>python-openstackclient</code> project is underway and | + | The <code>python-openstackclient</code> project is underway and has the basic set of commands for the layer 1 APIs implemented: Compute (2), identity (2.0, 3), image (1, 2), object-store (1), and volume (1). Ongoing work can be tracked in the [https://blueprints.launchpad.net/python-openstackclient blueprints]. |
== Documentation == | == Documentation == | ||
Line 34: | Line 37: | ||
* Use the [[OpenStack]] Python client API modules, extending them as required | * Use the [[OpenStack]] Python client API modules, extending them as required | ||
* Use consistent naming and structure for commands and arguments | * Use consistent naming and structure for commands and arguments | ||
− | * Provide consistent output formats with optional machine | + | * Provide consistent output formats with optional machine parseable formats |
− | * Use a single-binary approach that also contains an embedded | + | * Use a single-binary approach that also contains an embedded shell that can execute multiple commands on a single authentication (see libvirt's <code>virsh</code> for an example) |
* Independence from the [[OpenStack]] project names; only API names are referenced (to the extent possible) | * Independence from the [[OpenStack]] project names; only API names are referenced (to the extent possible) | ||
=== Commands === | === Commands === | ||
− | The OpenStackClient has a consistent and predictable format for all of its commands. There is a list of command | + | The OpenStackClient has a [[OpenStackClient/HumanInterfaceGuidelines#Command_Structure|consistent and predictable format]] for all of its commands. There is a [[OpenStackClient/Commands#Actions|list of command actions]] and the result that can be expected from each of them. Objects may be referenced by one or more words (<code>server</code> or <code>access token</code>). The general format of commands is the primary object being manipulated, followed by the action, and optionally an additional object for those commands that manipulate two objects, followed by command-specific options and then any positional arguments required. |
− | There are also global options that control the overall behaviour of OSC, such as supplying authentication credentials or using specific API versions. All options are what is commonly known as 'long options' in that they are one or more words | + | There are also global options that control the overall behaviour of OSC, such as supplying authentication credentials or using specific API versions. All options are what is commonly known as 'long options' in that they are one or more words preceded by two dashes ('--') and using a single dash internally to replace spaces. Most global options also have corresponding environment variables for convenience. |
== Releases == | == Releases == | ||
Line 51: | Line 54: | ||
| 02Aug2013 | | 02Aug2013 | ||
| http://tarballs.openstack.org/python-openstackclient/python-openstackclient-0.2.0.tar.gz | | http://tarballs.openstack.org/python-openstackclient/python-openstackclient-0.2.0.tar.gz | ||
+ | |- | ||
+ | | 0.3.0 | ||
+ | | expected 10Dec2013 | ||
+ | | http://tarballs.openstack.org/python-openstackclient/python-openstackclient-0.3.0.tar.gz | ||
|} | |} | ||
Revision as of 22:53, 5 December 2013
The OpenStackClient CLI (aka OSC) provides users with an improved experience in dealing with the variety of commands and arguments required to interact with OpenStack. It is (will be) a complete substitute for the bundled CLI binaries supplied with the OpenStack project clients. Where possible it utilizes the existing client Python API libraries to minimize duplication of effort.
Status
Status: In progress
The python-openstackclient
project is underway and has the basic set of commands for the layer 1 APIs implemented: Compute (2), identity (2.0, 3), image (1, 2), object-store (1), and volume (1). Ongoing work can be tracked in the blueprints.
Documentation
- Command Translation - A mapping of the project CLI commands to OSC
- Human Interface Guidelines
- Revised OSCLI Authentication
Project Goals
- Use the OpenStack Python client API modules, extending them as required
- Use consistent naming and structure for commands and arguments
- Provide consistent output formats with optional machine parseable formats
- Use a single-binary approach that also contains an embedded shell that can execute multiple commands on a single authentication (see libvirt's
virsh
for an example) - Independence from the OpenStack project names; only API names are referenced (to the extent possible)
Commands
The OpenStackClient has a consistent and predictable format for all of its commands. There is a list of command actions and the result that can be expected from each of them. Objects may be referenced by one or more words (server
or access token
). The general format of commands is the primary object being manipulated, followed by the action, and optionally an additional object for those commands that manipulate two objects, followed by command-specific options and then any positional arguments required.
There are also global options that control the overall behaviour of OSC, such as supplying authentication credentials or using specific API versions. All options are what is commonly known as 'long options' in that they are one or more words preceded by two dashes ('--') and using a single dash internally to replace spaces. Most global options also have corresponding environment variables for convenience.
Releases
Related projects
- Project Python API libraries (python-cinderclient, python-glanceclient, python-keystoneclient, python-novaclient)
- Previous work in this vein is at UnifiedCommandLineClient
- A Perl implementation is at https://metacpan.org/module/oscompute
- The original version of this page is at UnifiedCLI