{"id":13756924,"url":"https://github.com/openstack/python-openstackclient","last_synced_at":"2025-05-14T20:04:36.375Z","repository":{"id":3141223,"uuid":"4170310","full_name":"openstack/python-openstackclient","owner":"openstack","description":"Client for OpenStack services. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2025-04-03T18:18:51.000Z","size":17405,"stargazers_count":339,"open_issues_count":0,"forks_count":211,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-04-06T13:03:10.559Z","etag":null,"topics":["client-tools"],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/python-openstackclient","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openstack.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-04-28T21:07:25.000Z","updated_at":"2025-04-03T18:18:55.000Z","dependencies_parsed_at":"2023-11-22T12:26:02.833Z","dependency_job_id":"488e8deb-4785-4267-af79-0a3af6b4bed5","html_url":"https://github.com/openstack/python-openstackclient","commit_stats":{"total_commits":3189,"total_committers":525,"mean_commits":6.074285714285714,"dds":0.874255252430229,"last_synced_commit":"5eb89e4ca1cebad9245c27d58a0dafd7f363ece0"},"previous_names":[],"tags_count":141,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpython-openstackclient","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpython-openstackclient/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpython-openstackclient/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Fpython-openstackclient/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/python-openstackclient/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248741143,"owners_count":21154250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-tools"],"created_at":"2024-08-03T11:00:57.894Z","updated_at":"2025-05-14T20:04:36.349Z","avatar_url":"https://github.com/openstack.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"===============\nOpenStackClient\n===============\n\n.. image:: https://img.shields.io/pypi/v/python-openstackclient.svg\n    :target: https://pypi.org/project/python-openstackclient/\n    :alt: Latest Version\n\nOpenStackClient (OSC) is a command-line client for OpenStack that brings\nthe command set for Compute, Identity, Image, Network, Object Store and Block\nStorage APIs together in a single shell with a uniform command structure.\nSupport for additional service APIs is provided via plugins.\n\nThe primary goal is to provide a unified shell command structure and a common\nlanguage to describe operations in OpenStack.\n\nGetting Started\n===============\n\nOpenStack Client can be installed from PyPI using pip:\n\n.. code-block:: shell\n\n    python3 -m pip install python-openstackclient\n\nYou can use ``--help`` or the ``help`` command to get a list of global options\nand supported commands:\n\n.. code-block:: shell\n\n    openstack --help\n    openstack help\n\nYou can also get help for a specific command:\n\n.. code-block:: shell\n\n    openstack server create --help\n    openstack help server create\n\nYou can add support for additional services by installing their clients. For\nexample, to add support for the DNS service (designate):\n\n.. code-block:: shell\n\n    python3 -m pip install python3-designateclient\n\nA ``Dockerfile`` is provided for your convenience in the repository. You can\nuse this to build your own container images:\n\n.. code-block:: shell\n\n    git clone https://opendev.org/openstack/python-openstackclient\n    cd python-openstackclient\n    podman build . -t example.com/myuser/openstackclient\n\nFor more information the available options and commands, refer to the `Users\nGuide`__.\n\n.. __: https://docs.openstack.org/python-openstackclient/latest/cli/index.html\n\nConfiguration\n=============\n\nOpenStack Client must be configured with authentication information in order to\ncommunicate with a given OpenStack cloud. This configuration can be achieved\nvia a ``clouds.yaml`` file, a set of environment variables (often shared via an\n``openrc`` file), a set of command-line options, or a combination of all three.\nYour cloud provider or deployment tooling will typically provide either a\n``clouds.yaml`` file or ``openrc`` file for you. If using a ``clouds.yaml``\nfile, OpenStack Client expects to find it in one of the following locations:\n\n* If set, the path indicated by the ``OS_CLIENT_CONFIG_FILE`` environment\n  variable\n* ``.`` (the current directory)\n* ``$HOME/.config/openstack``\n* ``/etc/openstack``\n\nThe options you should set will depend on the configuration of your cloud and\nthe authentication mechanism(s) supported. For example, consider a cloud that\nsupports username/password authentication. Configuration for this cloud using a\n``clouds.yaml`` file would look like so:\n\n.. code-block:: yaml\n\n    clouds:\n      my-cloud:\n        auth:\n          auth_url: '\u003curl-to-openstack-identity\u003e'\n          project_name: '\u003cproject-name\u003e'\n          project_domain_name: '\u003cproject-domain-name\u003e'\n          username: '\u003cusername\u003e'\n          user_domain_name: '\u003cuser-domain-name\u003e'\n          password: '\u003cpassword\u003e'  # (optional)\n        region_name: '\u003cregion\u003e'\n\nThe corresponding environment variables would look very similar:\n\n.. code-block:: shell\n\n    export OS_AUTH_URL=\u003curl-to-openstack-identity\u003e\n    export OS_REGION_NAME=\u003cregion\u003e\n    export OS_PROJECT_NAME=\u003cproject-name\u003e\n    export OS_PROJECT_DOMAIN_NAME=\u003cproject-domain-name\u003e\n    export OS_USERNAME=\u003cusername\u003e\n    export OS_USER_DOMAIN_NAME=\u003cuser-domain-name\u003e\n    export OS_PASSWORD=\u003cpassword\u003e  # (optional)\n\nLikewise, the corresponding command-line options would look very similar:\n\n::\n\n    openstack\n    --os-auth-url \u003curl-to-openstack-identity\u003e\n    --os-region \u003cregion\u003e\n    --os-project-name \u003cproject-name\u003e\n    --os-project-domain-name \u003cproject-domain-name\u003e\n    --os-username \u003cusername\u003e\n    --os-user-domain-name \u003cuser-domain-name\u003e\n    [--os-password \u003cpassword\u003e]\n\n.. note::\n\n    If a password is not provided above (in plaintext), you will be\n    interactively prompted to provide one securely.\n\nSome clouds use federated authentication. If this is the case, your\nconfiguration will be slightly more involved. For example, to configure\nusername/password authentication for a federated user using a ``clouds.yaml``\nfile:\n\n.. code-block:: yaml\n\n    clouds:\n      my-cloud:\n        auth:\n          auth_url: '\u003curl-to-openstack-identity\u003e'\n          project_name: '\u003cproject-name\u003e'\n          project_domain_name: '\u003cproject-domain-name\u003e'\n          username: '\u003cusername-in-idp\u003e'\n          user_domain_name: '\u003cuser-domain-name\u003e'\n          password: '\u003cpassword-in-idp\u003e'\n          identity_provider: '\u003cthe-desired-idp-in-keystone\u003e'\n          client_id: '\u003cthe-client-id-configured-in-the-idp\u003e'\n          client_secret: '\u003cthe-client-secret-configured-in-the-idp\u003e'\n          openid_scope: '\u003cthe-scopes-of-desired-attributes-to-claim-from-idp\u003e'\n          protocol: '\u003cthe-protocol-used-in-the-apache2-oidc-proxy\u003e'\n          access_token_type: '\u003cthe-access-token-type-used-by-your-idp\u003e'\n          discovery_endpoint: '\u003cthe-well-known-endpoint-of-the-idp\u003e'\n        auth_type: 'v3oidcpassword'\n        region_name: '\u003cregion\u003e'\n\nThe corresponding environment variables would look very similar:\n\n.. code-block:: shell\n\n    export OS_PROJECT_NAME=\u003cproject-name\u003e\n    export OS_PROJECT_DOMAIN_NAME=\u003cproject-domain-name\u003e\n    export OS_AUTH_URL=\u003curl-to-openstack-identity\u003e\n    export OS_IDENTITY_API_VERSION=3\n    export OS_AUTH_TYPE=v3oidcpassword\n    export OS_USERNAME=\u003cusername-in-idp\u003e\n    export OS_PASSWORD=\u003cpassword-in-idp\u003e\n    export OS_IDENTITY_PROVIDER=\u003cthe-desired-idp-in-keystone\u003e\n    export OS_CLIENT_ID=\u003cthe-client-id-configured-in-the-idp\u003e\n    export OS_CLIENT_SECRET=\u003cthe-client-secred-configured-in-the-idp\u003e\n    export OS_OPENID_SCOPE=\u003cthe-scopes-of-desired-attributes-to-claim-from-idp\u003e\n    export OS_PROTOCOL=\u003cthe-protocol-used-in-the-apache2-oidc-proxy\u003e\n    export OS_ACCESS_TOKEN_TYPE=\u003cthe-access-token-type-used-by-your-idp\u003e\n    export OS_DISCOVERY_ENDPOINT=\u003cthe-well-known-endpoint-of-the-idp\u003e\n\nLikewise, the corresponding command-line options would look very similar:\n\n.. code-block:: shell\n\n    --os-project-name \u003cproject-name\u003e\n    --os-project-domain-name \u003cproject-domain-name\u003e\n    --os-auth-url \u003curl-to-openstack-identity\u003e\n    --os-identity-api-version 3\n    --os-auth-plugin openid\n    --os-auth-type v3oidcpassword\n    --os-username \u003cusername-in-idp\u003e\n    --os-password \u003cpassword-in-idp\u003e\n    --os-identity-provider \u003cthe-desired-idp-in-keystone\u003e\n    --os-client-id \u003cthe-client-id-configured-in-the-idp\u003e\n    --os-client-secret \u003cthe-client-secred-configured-in-the-idp\u003e\n    --os-openid-scope \u003cthe-scopes-of-desired-attributes-to-claim-from-idp\u003e\n    --os-protocol \u003cthe-protocol-used-in-the-apache2-oidc-proxy\u003e\n    --os-access-token-type \u003cthe-access-token-type-used-by-your-idp\u003e\n    --os-discovery-endpoint \u003cthe-well-known-endpoint-of-the-idp\u003e\n\nFor more information on configuring authentication, including an overview of\nthe many authentication mechanisms supported, refer to the `Authentication\nguide`__. For more information on configuration in general, refer to the\n`Configuration guide`__.\n\n.. __: https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html.\n.. __: https://docs.openstack.org/python-openstackclient/latest/configuration/index.html\n\nContributing\n============\n\nYou can clone the repository from opendev.org::\n\n    git clone https://opendev.org/openstack/python-openstackclient\n    cd python-openstackclient\n\nOpenStack Client uses the same contributor process as other OpenStack projects.\nFor information on this process, including help on setting up you Gerrit\naccount and an overview of the CI process, refer to the `OpenStack Contributors\nGuide`__.\n\nFor more information on contributing to OpenStack Client itself, including\nguidance on how to design new commands and how to report bugs, refer to the\n`Contributors Guide`__.\n\n.. __: https://docs.openstack.org/python-openstackclient/latest/contributor/index.html\n.. __: https://docs.opendev.org/opendev/infra-manual/latest/developers.html\n\nLinks\n-----\n\n* `Issue Tracker \u003chttps://bugs.launchpad.net/python-openstackclient\u003e`_\n* `Code Review \u003chttps://review.opendev.org/#/q/status:open+project:openstack/openstacksdk,n,z\u003e`_\n* `Documentation \u003chttps://docs.openstack.org/python-openstackclient/latest/\u003e`_\n* `PyPi \u003chttps://pypi.org/project/python-openstackclient\u003e`_\n* `Mailing list \u003chttps://lists.openstack.org/mailman3/lists/openstack-discuss.lists.openstack.org/\u003e`_\n* `Release Notes \u003chttps://docs.openstack.org/releasenotes/python-openstackclient\u003e`_\n* `IRC (#openstack-sdks on OFTC (irc.oftc.net)) \u003circ://irc.oftc.net/openstack-sdks\u003e`_\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fpython-openstackclient","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Fpython-openstackclient","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Fpython-openstackclient/lists"}