OpenStack Compute (Nova) Client
Go to file
Matt Riedemann 5bfa57a433 Microversion 2.50 - fix quota class sets resource usage
This adds support for the 2.50 microversion which does the following:

* Adds the server_groups and server_groups_members resources to the output
  for the 'nova quota-class-show' and 'nova quota-class-update' CLIs.
* Removes the ability to show or update network-related resource quota class
  values, specifically floating_ips, fixed_ips, security_groups and
  security_group_members.
* Defines explicit kwargs for the update() method in the python API binding.

This also fixes a problem where the 'nova quota-class-update' CLI was
incorrectly capped at the 2.35 microversion for updating network-related
resources. That was true for the os-quota-sets API which is tenant-specific,
but not for the os-quota-class-sets API which is global.

Functional tests are added for the 2.1 and 2.50 microversion behavior for
both commands.

Part of blueprint fix-quota-classes-api

Change-Id: I2531f9094d92e1b9ed36ab03bc43ae1be5290790
2017-07-14 21:34:10 -04:00
doc doc: Remove cruft from conf.py 2017-04-19 09:53:47 +01:00
novaclient Microversion 2.50 - fix quota class sets resource usage 2017-07-14 21:34:10 -04:00
releasenotes Microversion 2.50 - fix quota class sets resource usage 2017-07-14 21:34:10 -04:00
tools Use upper-constraints when running tox 2016-11-29 11:33:42 -05:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:54:09 +00:00
.gitignore Add eggs to gitignore list 2016-08-18 15:02:14 +03:00
.gitreview Add .gitreview config file for gerrit. 2011-11-16 09:23:10 -08:00
.mailmap Add mailmap entry 2014-05-07 12:16:41 -07:00
.testr.conf Set test timout to 300 seconds 2017-03-23 14:55:17 -04:00
babel.cfg Enable i18n with Babel. 2015-09-08 10:10:25 -07:00
bindep.txt Move other-requirements.txt to bindep.txt 2016-08-12 21:14:16 +02:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:40 +00:00
HACKING.rst Clean up a little cruft 2013-09-20 16:02:48 -07:00
LICENSE whitespace cleanups 2011-08-08 13:25:29 -07:00
README.rst Show team and repo badges on README 2016-11-25 13:52:47 +01:00
requirements.txt Fix setting 'global_request_id' in SessionClient 2017-06-13 12:15:39 -04:00
run_tests.sh Deprecate run_test.sh 2016-02-21 06:19:17 +08:00
setup.cfg Explicitly set 'builders' option 2017-04-19 09:53:03 +01:00
setup.py Updated from global requirements 2017-03-06 01:18:45 +00:00
test-requirements.txt Updated from global requirements 2017-07-13 14:24:25 +00:00
tox.ini Remove py34 tox env and pypi classifier 2017-03-20 19:06:51 +00:00

Team and repository tags

image

Python bindings to the OpenStack Nova API

Latest Version

Downloads

This is a client for the OpenStack Nova API. There's a Python API (the novaclient module), and a command-line script (nova). Each implements 100% of the OpenStack Nova API.

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.

python-novaclient is licensed under the Apache License like the rest of OpenStack.

Contents:

Command-line API

Installing this package gets you a shell command, nova, that you can use to interact with any OpenStack cloud.

You'll need to provide your OpenStack username and password. You can do this with the --os-username, --os-password and --os-project-name params, but it's easier to just set them as environment variables:

export OS_USERNAME=<username>
export OS_PASSWORD=<password>
export OS_PROJECT_NAME=<project-name>

You will also need to define the authentication url with --os-auth-url and the version of the API with --os-compute-api-version. Or set them as environment variables as well and set the OS_AUTH_URL to the keystone endpoint:

export OS_AUTH_URL=http://<url-to-openstack-keystone>:5000/v3/
export OS_COMPUTE_API_VERSION=2.1

Since Keystone can return multiple regions in the Service Catalog, you can specify the one you want with --os-region-name (or export OS_REGION_NAME). It defaults to the first in the list returned.

You'll find complete documentation on the shell by running nova help

Python API

There's also a complete Python API, with documentation linked below.

To use with keystone as the authentication system:

>>> from keystoneauth1.identity import v3
>>> from keystoneauth1 import session
>>> from novaclient import client
>>> 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()
[...]
>>> nova.servers.list()
[...]
>>> nova.keypairs.list()
[...]

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

Functional testing assumes the existence of a clouds.yaml file as supported 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.