2016-11-24 13:07:31 +01:00
|
|
|
========================
|
|
|
|
Team and repository tags
|
|
|
|
========================
|
|
|
|
|
|
|
|
.. image:: http://governance.openstack.org/badges/python-novaclient.svg
|
|
|
|
:target: http://governance.openstack.org/reference/tags/index.html
|
|
|
|
|
|
|
|
.. Change things from this point on
|
|
|
|
|
2011-02-08 08:54:34 -04:00
|
|
|
Python bindings to the OpenStack Nova API
|
2015-09-09 14:02:42 +03:00
|
|
|
=========================================
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2015-10-15 17:27:15 +08:00
|
|
|
.. image:: https://img.shields.io/pypi/v/python-novaclient.svg
|
|
|
|
:target: https://pypi.python.org/pypi/python-novaclient/
|
|
|
|
:alt: Latest Version
|
|
|
|
|
|
|
|
.. image:: https://img.shields.io/pypi/dm/python-novaclient.svg
|
|
|
|
:target: https://pypi.python.org/pypi/python-novaclient/
|
|
|
|
:alt: Downloads
|
|
|
|
|
2011-02-08 08:54:34 -04:00
|
|
|
This is a client for the OpenStack Nova API. There's a Python API (the
|
2011-02-26 05:04:40 -04:00
|
|
|
``novaclient`` module), and a command-line script (``nova``). Each
|
2011-02-08 08:54:34 -04:00
|
|
|
implements 100% of the OpenStack Nova API.
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2012-12-31 16:29:53 -05:00
|
|
|
See the `OpenStack CLI guide`_ for information on how to use the ``nova``
|
|
|
|
command-line tool. You may also want to look at the
|
|
|
|
`OpenStack API documentation`_.
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2016-01-16 17:36:06 +01:00
|
|
|
.. _OpenStack CLI Guide: http://docs.openstack.org/cli-reference/nova.html
|
|
|
|
.. _OpenStack API documentation: http://developer.openstack.org/api-ref-compute-v2.1.html
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2012-12-31 16:29:53 -05:00
|
|
|
python-novaclient is licensed under the Apache License like the rest of
|
|
|
|
OpenStack.
|
2011-02-08 08:54:34 -04:00
|
|
|
|
2015-10-15 17:27:15 +08:00
|
|
|
* License: Apache License, Version 2.0
|
|
|
|
* `PyPi`_ - package installation
|
|
|
|
* `Online Documentation`_
|
|
|
|
* `Blueprints`_ - feature specifications
|
|
|
|
* `Bugs`_ - issue tracking
|
|
|
|
* `Source`_
|
|
|
|
* `Specs`_
|
|
|
|
* `How to Contribute`_
|
|
|
|
|
|
|
|
.. _PyPi: https://pypi.python.org/pypi/python-novaclient
|
|
|
|
.. _Online Documentation: http://docs.openstack.org/developer/python-novaclient
|
|
|
|
.. _Blueprints: https://blueprints.launchpad.net/python-novaclient
|
|
|
|
.. _Bugs: https://bugs.launchpad.net/python-novaclient
|
|
|
|
.. _Source: https://git.openstack.org/cgit/openstack/python-novaclient
|
|
|
|
.. _How to Contribute: http://docs.openstack.org/infra/manual/developers.html
|
|
|
|
.. _Specs: http://specs.openstack.org/openstack/nova-specs/
|
|
|
|
|
2011-01-25 14:01:22 -06:00
|
|
|
|
|
|
|
.. contents:: Contents:
|
|
|
|
:local:
|
|
|
|
|
|
|
|
Command-line API
|
|
|
|
----------------
|
|
|
|
|
2011-02-24 13:54:10 -04:00
|
|
|
Installing this package gets you a shell command, ``nova``, that you
|
2012-12-31 16:29:53 -05:00
|
|
|
can use to interact with any OpenStack cloud.
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2012-03-13 22:30:52 -05:00
|
|
|
You'll need to provide your OpenStack username and password. You can do this
|
2016-06-16 16:17:31 -03:00
|
|
|
with the ``--os-username``, ``--os-password`` and ``--os-project-name``
|
2012-03-13 22:30:52 -05:00
|
|
|
params, but it's easier to just set them as environment variables::
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2016-06-16 16:17:31 -03:00
|
|
|
export OS_USERNAME=<username>
|
|
|
|
export OS_PASSWORD=<password>
|
|
|
|
export OS_PROJECT_NAME=<project-name>
|
|
|
|
|
2011-01-25 14:01:22 -06:00
|
|
|
|
2012-08-22 13:01:17 -05:00
|
|
|
You will also need to define the authentication url with ``--os-auth-url``
|
2013-11-13 12:51:01 +00:00
|
|
|
and the version of the API with ``--os-compute-api-version``. Or set them as
|
2016-06-16 16:17:31 -03:00
|
|
|
environment variables as well and set the OS_AUTH_URL to the keystone endpoint::
|
2011-08-12 23:47:25 -07:00
|
|
|
|
2016-06-16 16:17:31 -03:00
|
|
|
export OS_AUTH_URL=http://<url-to-openstack-keystone>:5000/v3/
|
|
|
|
export OS_COMPUTE_API_VERSION=2.1
|
2011-08-12 23:47:25 -07:00
|
|
|
|
2011-08-08 13:20:44 -07:00
|
|
|
|
2011-09-07 13:30:20 -07:00
|
|
|
Since Keystone can return multiple regions in the Service Catalog, you
|
2012-08-22 13:01:17 -05:00
|
|
|
can specify the one you want with ``--os-region-name`` (or
|
2012-03-13 22:30:52 -05:00
|
|
|
``export OS_REGION_NAME``). It defaults to the first in the list returned.
|
2011-09-02 12:07:18 -07:00
|
|
|
|
2011-08-08 13:20:44 -07:00
|
|
|
You'll find complete documentation on the shell by running
|
2014-03-13 21:15:56 +10:30
|
|
|
``nova help``
|
2011-08-08 13:20:44 -07:00
|
|
|
|
2011-01-25 14:01:22 -06:00
|
|
|
Python API
|
|
|
|
----------
|
|
|
|
|
2015-06-09 06:31:54 +00:00
|
|
|
There's also a complete Python API, with documentation linked below.
|
2011-01-25 14:01:22 -06:00
|
|
|
|
|
|
|
|
2015-06-09 06:31:54 +00:00
|
|
|
To use with keystone as the authentication system::
|
2011-08-10 16:16:38 -07:00
|
|
|
|
2016-06-16 16:17:31 -03:00
|
|
|
>>> from keystoneauth1.identity import v3
|
|
|
|
>>> from keystoneauth1 import session
|
2015-06-09 06:31:54 +00:00
|
|
|
>>> from novaclient import client
|
2016-06-16 16:17:31 -03:00
|
|
|
>>> auth = v3.Password(auth_url='http://example.com:5000/v3',
|
|
|
|
... username='username',
|
|
|
|
... password='password',
|
|
|
|
... project_name='project-name',
|
|
|
|
... user_domain_id='default',
|
|
|
|
... project_domain_id='default')
|
|
|
|
>>> sess = session.Session(auth=auth)
|
|
|
|
>>> nova = client.Client("2.1", session=sess)
|
|
|
|
>>> nova.flavors.list()
|
2011-08-10 16:16:38 -07:00
|
|
|
[...]
|
2016-06-16 16:17:31 -03:00
|
|
|
>>> nova.servers.list()
|
2011-08-10 16:16:38 -07:00
|
|
|
[...]
|
2016-06-16 16:17:31 -03:00
|
|
|
>>> nova.keypairs.list()
|
2011-08-10 16:16:38 -07:00
|
|
|
[...]
|
2015-04-21 15:44:09 +00:00
|
|
|
|
|
|
|
|
2015-05-14 07:06:05 -04:00
|
|
|
Testing
|
|
|
|
-------
|
|
|
|
|
|
|
|
There are multiple test targets that can be run to validate the code.
|
|
|
|
|
|
|
|
* tox -e pep8 - style guidelines enforcement
|
|
|
|
* tox -e py27 - traditional unit testing
|
|
|
|
* tox -e functional - live functional testing against an existing
|
|
|
|
openstack
|
|
|
|
|
2015-06-09 06:31:54 +00:00
|
|
|
Functional testing assumes the existence of a `clouds.yaml` file as supported
|
2015-05-14 12:18:02 -04:00
|
|
|
by `os-client-config` (http://docs.openstack.org/developer/os-client-config)
|
|
|
|
It assumes the existence of a cloud named `devstack` that behaves like a normal
|
|
|
|
devstack installation with a demo and an admin user/tenant - or clouds named
|
|
|
|
`functional_admin` and `functional_nonadmin`.
|