{"library":"python-keystoneclient","title":"OpenStack Keystone Client Library","description":"python-keystoneclient is the official Python binding to the OpenStack Identity API (Keystone). It provides a Python API for interacting with the Keystone service to manage authentication, authorization, and service catalog discovery within an OpenStack environment. The current version is 5.8.0, and its release cadence is tied to the broader OpenStack development cycle.","language":"python","status":"active","last_verified":"Fri May 15","install":{"commands":["pip install python-keystoneclient"],"cli":{"name":"openstack","version":"sh: 1: openstack: not found"}},"imports":["from keystoneauth1.identity import v3","from keystoneauth1 import session","from keystoneclient.v3 import client","from keystoneclient import exceptions"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nfrom keystoneauth1.identity import v3\nfrom keystoneauth1 import session\nfrom keystoneclient.v3 import client\n\n# Environment variables for authentication (recommended practice)\nAUTH_URL = os.environ.get('OS_AUTH_URL', 'http://localhost:5000/v3')\nUSERNAME = os.environ.get('OS_USERNAME', 'admin')\nPASSWORD = os.environ.get('OS_PASSWORD', 'password')\nPROJECT_NAME = os.environ.get('OS_PROJECT_NAME', 'admin')\nUSER_DOMAIN_ID = os.environ.get('OS_USER_DOMAIN_ID', 'default')\nPROJECT_DOMAIN_ID = os.environ.get('OS_PROJECT_DOMAIN_ID', 'default')\n\n# 1. Authenticate using a session (V3 API example)\nauth = v3.Password(\n    auth_url=AUTH_URL,\n    username=USERNAME,\n    password=PASSWORD,\n    project_name=PROJECT_NAME,\n    user_domain_id=USER_DOMAIN_ID,\n    project_domain_id=PROJECT_DOMAIN_ID\n)\nsess = session.Session(auth=auth)\n\n# 2. Initialize the Keystone client\nkeystone = client.Client(session=sess)\n\n# 3. Perform an operation (e.g., list projects)\ntry:\n    projects = keystone.projects.list()\n    print(f\"Successfully connected to Keystone. Found {len(projects)} projects.\")\n    for project in projects:\n        print(f\"  - {project.name} (ID: {project.id})\")\nexcept exceptions.ClientException as e:\n    print(f\"Error connecting to Keystone: {e}\")\nexcept Exception as e:\n    print(f\"An unexpected error occurred: {e}\")","lang":"python","description":"This quickstart demonstrates how to authenticate with OpenStack Keystone using the V3 API and session-based authentication, then lists available projects. It leverages environment variables for credentials, which is a common and secure practice in OpenStack environments.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-15","installed_version":"5.6.0","pypi_latest":"5.8.0","is_stale":true,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":5,"avg_import_s":0.78,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.75,"mem_mb":13.7,"disk_size":"49.5M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.9,"import_time_s":0.52,"mem_mb":13.7,"disk_size":"51M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.91,"mem_mb":15.1,"disk_size":"55.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.8,"import_time_s":0.81,"mem_mb":15.1,"disk_size":"57M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.88,"mem_mb":14.7,"disk_size":"55.2M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.8,"import_time_s":0.89,"mem_mb":14.7,"disk_size":"57M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.82,"mem_mb":15.6,"disk_size":"55.0M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":4.8,"import_time_s":0.81,"mem_mb":15.6,"disk_size":"57M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":null,"import_time_s":0.71,"mem_mb":13.3,"disk_size":"51.5M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"python-keystoneclient","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"clean","install_time_s":5.7,"import_time_s":0.67,"mem_mb":13.3,"disk_size":"53M"}]}}