OpenStack Glance Client Library

4.11.0 · active · verified Wed Apr 15

python-glanceclient is a client library for OpenStack Glance, the Image service, built on the Glance API. It provides a Python API for interacting with Glance and a command-line tool (`glance`). The current stable version is 4.11.0, and it follows the OpenStack release cadence, typically releasing new versions every six months to align with OpenStack's development cycle.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to authenticate with OpenStack Keystone using environment variables and then initialize the Glance client to list available images. It uses API version 2, which is the default for recent Glance client versions. Make sure your OpenStack environment variables (e.g., `OS_AUTH_URL`, `OS_USERNAME`, `OS_PASSWORD`, `OS_PROJECT_NAME`) are set.

import os
from keystoneauth1.identity import v3
from keystoneauth1 import session
from glanceclient import client as glance_client

# --- Authentication --- 
# Ensure OpenStack environment variables are set (e.g., OS_AUTH_URL, OS_USERNAME, OS_PASSWORD, etc.)
# You can also pass credentials directly, but environment variables are recommended.
auth = v3.Password(
    auth_url=os.environ.get('OS_AUTH_URL', 'http://localhost:5000/v3'),
    username=os.environ.get('OS_USERNAME', 'admin'),
    password=os.environ.get('OS_PASSWORD', 'password'),
    project_name=os.environ.get('OS_PROJECT_NAME', 'admin'),
    user_domain_name=os.environ.get('OS_USER_DOMAIN_NAME', 'Default'),
    project_domain_name=os.environ.get('OS_PROJECT_DOMAIN_NAME', 'Default')
)
sess = session.Session(auth=auth)

# --- Initialize Glance Client (API v2 recommended) ---
glance = glance_client.Client('2', session=sess)

# --- List Images ---
try:
    print("\nAvailable Glance Images:")
    images = glance.images.list()
    if images:
        for image in images:
            print(f"  ID: {image.id}, Name: {image.name}, Status: {image.status}, Visibility: {getattr(image, 'visibility', 'unknown')}")
    else:
        print("  No images found.")
except Exception as e:
    print(f"Error connecting to Glance or listing images: {e}")

view raw JSON →