Python Bindings for the OpenStack Images API¶
This is a client for the OpenStack Images API. There’s a Python API (the glanceclient
module) and a command-line script (installed as glance).
Python API¶
In order to use the python api directly, you must first obtain an auth token and identify which endpoint you wish to speak to. Once you have done so, you can use the API like so:
>>> from glanceclient import Client
>>> glance = Client('1', endpoint=OS_IMAGE_ENDPOINT, token=OS_AUTH_TOKEN)
>>> image = glance.images.create(name="My Test Image")
>>> print image.status
'queued'
>>> image.update(data=open('/tmp/myimage.iso', 'rb'))
>>> print image.status
'active'
>>> image.update(properties=dict(my_custom_property='value'))
>>> with open('/tmp/copyimage.iso', 'wb') as f:
for chunk in image.data():
f.write(chunk)
>>> image.delete()
Python API Reference¶
Command-line Tool Reference¶
Command-line Tool¶
In order to use the CLI, you must provide your OpenStack username, password, tenant, and auth endpoint. Use the corresponding configuration options (--os-username
, --os-password
, --os-tenant-id
, and --os-auth-url
) or set them in environment variables:
export OS_USERNAME=user
export OS_PASSWORD=pass
export OS_TENANT_ID=b363706f891f48019483f8bd6503c54b
export OS_AUTH_URL=http://auth.example.com:5000/v2.0
The command line tool will attempt to reauthenticate using your provided credentials for every request. You can override this behavior by manually supplying an auth token using --os-image-url
and --os-auth-token
. You can alternatively set these environment variables:
export OS_IMAGE_URL=http://glance.example.org:9292/
export OS_AUTH_TOKEN=3bcc3d3a03f44e3d8377f9247b0ad155
Once you’ve configured your authentication parameters, you can run glance help
to see a complete listing of available commands.
See also glance CLI man page.
Release Notes¶
1.2.0¶
- This release consists mainly bugfixes since Liberty release.
- Some functionality has been added, documentation improved.
- Trivial & typo fixed and requirement changes not included below.
- 1511180: Add versions list function
- 1508356: Added reactivate/deactivate image using CLI
- 1510340: Fix the missing help descripiton of “image-create”
- 8a4cd79 Add documentation for running the functional tests
- 5a24705 Update docs to recommend KSA instead of KSC
- 1507386: Use clouds.yaml from devstack for functional tests
- 4fb3092 Add translation to v2 shell
- b51634a improve readme contents
- 1480529: Add support for setting Accept-Language header
- 1504058: Use the subcomand parsed args instead of the base
- afd1810 Stop trying to send image_size to the server
- 1485407: Support image deletion in batches in v2
- 1295356: print usage when no argument is specified for python3
- df0f664 Do not use openstack.common.i18n in glance client
- 1f2fefb Use common identity parameters fro keystone client
- 1499540: No auth when token and endpoint are passed
- 557acb1 Use dictionary literal for dictionary creation
- c6addc7 Replace exception_to_str with oslo.utils function
- 1496305: Don’t get the image before deleting it
- 1495632: Fix human readable when size is None
- 1489727: Add parsing the endpoint URL
- 1467719: Add check Identity validate when get schemas
1.1.0¶
- This release provides mainly bugfixes for the bugs discovered after defaulting to v2 API on CLI. If you’re using 1.0.0 client, it is highly recommended to upgrade.
- 1494259: Fixes CLI client called without subcommands
- 1488914: Print the reverting back to v1 to stderr
- 1487645: Invalid output running the command ‘glance image-show <image_id>’
- 1490457: Don’t make help require auth parameters
- 1491311: check for None value in utils.safe_header
- f0b30f4 Updated from global requirements
- 1490462: Consider –os-token when using v2
- 1489381: Check if v2 is available and fallback
- 1491646: Update path to subunit2html in post_test_hook
- 1488892: Password should be prompted once
1.0.0¶
- This major release of python-glanceclient defaults to using the Images v2 API for the Command Line Interface. This is consistent with the current situation in the Glance project, where the Images v1 API is ‘SUPPORTED’ and the Images v2 API is ‘CURRENT’. Further, it makes the CLI consistent with the client API, which has used the Images v2 API as the default since the Kilo release.
A lot of effort has been invested to make the transition as smooth as possible, but we acknowledge that CLI users will encounter backwards incompatibility.
- remcustssl: Remove custom SSL compression handling
- 14be607 Add more information show in v2
- 1309272: Require disk and container format on image-create
- 1481729: Ship the default image schema in the client
- 181131e Use API v2 as default
- 1477910: V2: Do not validate image schema when listing
- 9284eb4 Updated from global requirements
- 1475769: Add unicode support for properties values in v2 shell
- 1479020: Fix failure to create glance https connection pool
- ec0f2df Enable flake8 checks
- 1433637: Extend unittests coverage for v2 tasks module
- metatags: Support for Metadata Definition Catalog for Tags
- b48ff98 Fix exception message in Http.py
- 1472234: Fix an issue with broken test on ci
- 1473454: Remove usage of assert_called_once on Mock objects
- 9fdd4f1 Add .eggs/* to .gitignore
- 0f9aa99 Updated from global requirements
- 1468485: Account for dictionary order in test_shell.py
- bp-oslo-ns: Do not fall back to namespaced oslo.i18n
- b10e893 Updated from global requirements
- 1465373: Add v2 support for the marker attribute
- 997c12d Import only modules and update tox.ini
- 0810805 Updated from global requirements
- 1461678: Close iterables at the end of iteration
- bp-session: Make glanceclient accept a session object
- 5e85d61 cleanup openstack-common.conf and sync updated files
- 1432701: Add parameter ‘changes-since’ for image-list of v1
0.19.0¶
0.18.0¶
- 1442664, 1442883, 1357430: Fix errors when SSL compression is disabled
- 1399778: Remove
locations
from image-create arguments - 1439513: Fix error on python 3 when creating a task with and invalid property
- Stop accepting
*args
in the main client interface - Expose
is_base
schema property attribute, allowing the client to differentiate between base and custom image properties - 1433962: Validate whether a tag is valid when filtering for images. Invalid tags now raise an error rather than being ignored
- 1434381: Add
--human-readable
option toimage-show
0.17.0¶
- 1420707: Updated help for v2 member-update api
- glance-sorting-enhancements: Extend images CLI v2 with new sorting syntax
- glance-sorting-enhancements: Add the ability to specify the sort dir for each key
- glance-sorting-enhancements: Adds the ability to sort images with multiple keys
- 1306774: Apply expected patch format when updating tags in v2.images
- 1429088: v2: read limit for list from –limit in shell
- 1428797: Fix leaking sockets after v2 list operation
- 1423939: Fix leaking sockets after v1 list operation
- 1408033: v2: Allow upload from stdin on image-create
0.16.1¶
- 1423165: Fix sockets leaking for a subset of operations (show, delete and update)
- 1395084: Show error when trying to upload image data to non-queued image
- 1398838: Stop showing JSON and HTML in error messages returned from the glance service
- 1396550: More reliably register connection pools in cases where urllib3 is both vendored and installed system-wide
0.16.0¶
- Add –limit option to the v2 list operation. This allows a user to limit the number of images requested from the glance server. Previously the client would always go through the entire list of images
- The CLI exit code on keyboard interrupt is now
130
, changed from1
. - 1370283: The set of supported SSL ciphers is now reduced to a smaller and more secure subset
- 1384664, 1402746: Fix enabling the progress bar on download and upload when image data is piped into the client causing the client to crash
- 1415935: NoneType header values are now ignored when encoding headers
- 1341777: Requests which are streamed are now explicitly closed when the end of the stream has been reached
- 1394236: The CLI is now strict about what it counts as a boolean, and exits with an error if a non-boolean value is used as input to a boolean option
- 1401197: The CLI is now strict about valid inputs to
--os-image-api-version
- 1333119: The CLI now raises a more useful error message when a user requests the deletion of an image which is already deleted
- 1384759: Fix client erroring if
--os-tenant-id
and--os-tenant-name
are not defined - 1228744: Add globoff option to debug curl statements. This allows it to work with IPv6 addresses
0.15.0¶
Stop requiring a version to create a Client instance. The
version
argument is now a keyword. If noversion
is specified and a versioned endpoint is supplied, glanceclient will use the endpoint’s version. If the endpoint is unversioned and a value forversion
is not supplied, glanceclient falls back to v1. This change is backwards-compatible. Examples:>>> glanceclient.Client(version=1, endpoint='http://localhost:9292') # returns a v1 client >>> glanceclient.Client(endpoint='http://localhost:9292/v2') # returns a v2 client >>> glanceclient.Client(endpoint='http://localhost:9292') # returns a v1 client >>> glanceclient.Client(2, 'http://localhost:9292/v2') # old behavior is preserved
Add bash completion to glance client. The new bash completion files are stored in
tools/glance.bash_completion
Add tty password entry. This prompts for a password if neither
--os-password
norOS_PASSWORD
have been setAdd the
--property-filter
option from the v1 client to v2 image-list. This allows you to do something similar to:$ glance --os-image-api-version 2 image-list --property-filter os_distro=NixOS
1324067: Allow –file flag in v2 image-create. This selects a local disk image to upload during the creation of the image
1395841: Output a useful error on an invalid
--os-image-api-version
argument1394965: Add
identity_headers
back into the request headers1350802: Remove read only options from v2 shell commands. The options omitted are
created_at
updated_at
file
checksum
virtual_size
size
status
schema
direct_url
1381295: Stop setting X-Auth-Token key in http session header if there is no token provided
1378844: Fix
--public
being ignored on image-create1367782: Fix to ensure
endpoint_type
is used by_get_endpoint()
1381816: Support Pagination for namespace list
1401032: Add support for enum types in the schema that accept
None
0.14.2¶
0.14.1¶
- Print traceback to stderr if
--debug
is set - Downgrade log message for http request failures
- Fix CLI image-update giving the wrong help on ‘–tags’ parameter
- 1367326: Fix requests to non-bleeding edge servers using the v2 API
- 1329301: Update how tokens are redacted
- 1369756: Fix decoding errors when logging response headers
0.14.0¶
- Add support for metadata definitions catalog API
- Enable osprofiler profiling support to glanceclient and its shell. This adds the
--profile <HMAC_KEY>
argument. - Add support for Keystone v3
- Replace old httpclient with requests
- Fix performance issue for image listing of v2 API
- 1364893: Catch a new urllib3 exception: ProtocolError
- 1359880: Fix error when logging http response with python 3
- 1357430: Ensure server’s SSL cert is validated to help guard against man-in-the-middle attack
- 1314218: Remove deprecated commands from shell
- 1348030: Fix glance-client on IPv6 controllers
- 1341777: Don’t stream non-binary requests
0.13.0¶
- Add command line support for image multi-locations
- Py3K support completed
- Fixed several issues related to UX
- Progress bar support for V2
0.12.0¶
0.11.0¶
0.10.0¶
- 1192229: Security Update! Fix SSL certificate CNAME checking to handle ip addresses correctly
- Add an optional progress bar for image downloads
- Additional v2 api functionality, including image creation and uploads
- Allow v1 admin clients to list all users’ images, and to list the images of specific tenants.
- Add a –checksum option to the v2 CLI for selecting images by checksum
- Added support for image creation and uploads to the v2 library
- Added support for updating and deleting v2 image tags to the v2 library and CLI
- Added support for managing image memberships to the v2 library and CLI
- Added a cli man page.
- 1184566: Fix support for unix pipes when uploading images in the v1 CLI
- 1157864: Fix an issue where glanceclient would fail with eventlet.
0.9.0¶
0.8.0¶
0.7.0¶
- Add
--store
option toimage-create
command - Deprecate
--ca-file
in favor of--os-cacert
- 1082957: Add
--sort-key
and--sort-dir
CLI options toimage-list
command - 1081542: Change default
image-list
CLI sort to order by image name ascending - 1079692: Verify SSL certification hostnames when using HTTPS
- 1080739: Use
--os-region-name
in service catalog lookup
0.6.0¶
- Multiple image ID can be passed to
glance image-delete
glance --version
and glanceclient.__version__ expose the current library version- Use
--human-readable
withimage-list
andimage-show
to display image sizes in human-friendly formats - Use OpenSSL for HTTPS connections
- 1056220: Always use ‘Transfer-Encoding: chunked’ when transferring image data
- 1052846: Padded endpoints enabled (e.g. glance.example.com/padding/v1)
- 1050345:
glance image-create
andglance image-update
now work on Windows
0.5.1¶
0.5.0¶
- Add ‘image-download’ command to CLI
- Relax dependency on warlock to anything less than v2
0.4.1¶
0.4.0¶
- Send client SSL certificate to server for self-identification
- Properly validate server SSL certificates
- Images API v2 image data download