diff --git a/.coveragerc b/.coveragerc index 3685187b80..8dc0326549 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,6 +1,7 @@ [run] branch = True source = openstackclient +omit = openstackclient/tests/* [report] ignore_errors = True diff --git a/.git-blame-ignore-revs b/.git-blame-ignore-revs new file mode 100644 index 0000000000..62caf9485a --- /dev/null +++ b/.git-blame-ignore-revs @@ -0,0 +1,13 @@ +# You can configure git to automatically use this file with the following config: +# git config --global blame.ignoreRevsFile .git-blame-ignore-revs + +c5b772db76c071e493a81105c7d8c0def08b2264 # trivial: Prepare for pyupgrade pre-commit hook +ed0314ac76ae58a6621077feb742efd5c14c3a62 # Blacken everything else +ac64fdb93c32972575a4523ccb23d0279ef584f5 # Blacken openstackclient.api +a3778109d0051a25901569e7bafe54915ab25f82 # Blacken openstack.common +53476e1f73d8af172207ac7089fb85fc0221859f # Blacken openstackclient.image +c51e4ef1bc350905a04690eb019d53e68fe3d633 # Blacken openstackclient.object +af6ea07703ed1c12b86995b97a9618bfa70721ee # Blacken openstackclient.identity +1face4f48b07fbc51824980e989687adaf453f0e # Blacken openstackclient.network +1ca77acc9118b433c14e03bf9fd28f2b1639c430 # Blacken openstackclient.volume +4bbf3bd3846cb3d85e243199910de82df25d35e0 # Blacken openstackclient.compute diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..b277bb059b --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,42 @@ +--- +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v6.0.0 + hooks: + - id: trailing-whitespace + - id: mixed-line-ending + args: ['--fix', 'lf'] + exclude: '.*\.(svg)$' + - id: fix-byte-order-marker + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: debug-statements + - id: check-yaml + files: .*\.(yaml|yml)$ + args: ['--unsafe'] + - repo: https://github.com/astral-sh/ruff-pre-commit + rev: v0.14.0 + hooks: + - id: ruff-check + args: ['--fix', '--unsafe-fixes'] + - id: ruff-format + - repo: https://opendev.org/openstack/hacking + rev: 7.0.0 + hooks: + - id: hacking + additional_dependencies: [] + exclude: '^(doc|releasenotes)/.*$' + - repo: https://github.com/pre-commit/mirrors-mypy + rev: v1.18.2 + hooks: + - id: mypy + additional_dependencies: + - types-requests + # keep this in-sync with '[tool.mypy] exclude' in 'pyproject.toml' + exclude: | + (?x)( + doc/.* + | examples/.* + | hacking/.* + | releasenotes/.* + ) diff --git a/.zuul.yaml b/.zuul.yaml index 42c29d162d..d63ee7c5f4 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -6,6 +6,31 @@ Run unit tests for OpenStackClient with master branch of important libs. Takes advantage of the base tox job's install-siblings feature. + irrelevant-files: &common-irrelevant-files + - ^.*\.rst$ + - ^doc/.*$ + - ^releasenotes/.*$ + - ^\.pre-commit-config\.yaml$ + required-projects: + - openstack/cliff + - openstack/keystoneauth + - openstack/openstacksdk + - openstack/osc-lib + - openstack/python-openstackclient + vars: + # Set work dir to openstackclient so that if it's triggered by one of the + # other repos the tests will run in the same place + zuul_work_dir: src/opendev.org/openstack/python-openstackclient + +- job: + name: osc-tox-py310-tips + parent: openstack-tox-py310 + description: | + Run unit tests for OpenStackClient with master branch of important libs. + + Takes advantage of the base tox job's install-siblings feature. + # The job only tests the latest and shouldn't be run on the stable branches + branches: ^master$ required-projects: - openstack/cliff - openstack/keystoneauth @@ -18,14 +43,14 @@ zuul_work_dir: src/opendev.org/openstack/python-openstackclient - job: - name: osc-tox-py36-tips - parent: openstack-tox-py36 + name: osc-tox-py313-tips + parent: openstack-tox-py313 description: | Run unit tests for OpenStackClient with master branch of important libs. Takes advantage of the base tox job's install-siblings feature. # The job only tests the latest and shouldn't be run on the stable branches - branches: ^(?!stable) + branches: ^master$ required-projects: - openstack/cliff - openstack/keystoneauth @@ -38,11 +63,11 @@ zuul_work_dir: src/opendev.org/openstack/python-openstackclient - job: - name: osc-functional-devstack-base + name: osc-functional-devstack parent: devstack-tox-functional description: | - Base job for devstack-based functional tests - timeout: 9000 + Run functional tests for OpenStackClient. + timeout: 7800 irrelevant-files: - ^.*\.rst$ - ^doc/.*$ @@ -54,72 +79,51 @@ LIBS_FROM_GIT: python-openstackclient # NOTE(dtroyer): Functional tests need a bit more volume headroom VOLUME_BACKING_FILE_SIZE: 20G - devstack_local_conf: - post-config: - $CINDER_CONF: - DEFAULT: - # NOTE(dtroyer): OSC needs to support Volume v1 for a while yet so re-enable - enable_v1_api: true + Q_AGENT: openvswitch + Q_ML2_TENANT_NETWORK_TYPE: vxlan + Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch + devstack_plugins: + # NOTE(amotoki): Some neutron features are enabled by devstack plugin + neutron: https://opendev.org/openstack/neutron devstack_services: - ceilometer-acentral: false - ceilometer-acompute: false - ceilometer-alarm-evaluator: false - ceilometer-alarm-notifier: false - ceilometer-anotification: false - ceilometer-api: false - ceilometer-collector: false s-account: true s-container: true s-object: true s-proxy: true - osc_environment: - PYTHONUNBUFFERED: 'true' - OS_CLOUD: devstack-admin - zuul_work_dir: src/opendev.org/openstack/python-openstackclient - -# The Neutron bits are here rather than in osc-functional-devstack-base to -# simplify removing Neutron in the osc-functional-devstack-n-net job. -- job: - name: osc-functional-devstack - parent: osc-functional-devstack-base - timeout: 7800 - vars: - devstack_plugins: - # NOTE(amotoki): Some neutron features are enabled by devstack plugin - neutron: https://opendev.org/openstack/neutron - devstack_services: + # Disable OVN services + br-ex-tcpdump: false + br-int-flows: false + ovn-controller: false + ovn-northd: false + ovs-vswitchd: false + ovsdb-server: false + q-ovn-metadata-agent: false + # Neutron services + q-agt: true + q-dhcp: true + q-l3: true + q-meta: true neutron-network-segment-range: true neutron-segments: true q-metering: true q-qos: true neutron-tag-ports-during-bulk-creation: true + neutron-conntrack-helper: true + neutron-ndp-proxy: true + q-trunk: true + osc_environment: + PYTHONUNBUFFERED: 'true' + OS_CLOUD: devstack-admin tox_envlist: functional - -- job: - name: osc-functional-devstack-n-net - parent: osc-functional-devstack-base - timeout: 7800 - vars: - devstack_localrc: - FLAT_INTERFACE: br_flat - PUBLIC_INTERFACE: br_pub - devstack_services: - n-cell: true - n-net: true - neutron: false - neutron-segments: false - q-agt: false - q-dhcp: false - q-l3: false - q-meta: false - q-metering: false - q-qos: false - q-svc: false - tox_envlist: functional + zuul_work_dir: src/opendev.org/openstack/python-openstackclient - job: name: osc-functional-devstack-tips parent: osc-functional-devstack + description: | + Run functional tests for OpenStackClient with master branch of important libs. + + Takes advantage of the base tox job's install-siblings feature. timeout: 7800 required-projects: - openstack/cliff @@ -130,120 +134,54 @@ vars: devstack_localrc: LIBS_FROM_GIT: python-openstackclient,openstacksdk,osc-lib,cliff - # This is insufficient, but leaving it here as a reminder of what may - # someday be all we need to make this work - # disable_python3_package swift - DISABLED_PYTHON3_PACKAGES: swift - devstack_services: - # Swift is not ready for python3 yet: At a minimum keystonemiddleware needs - # to be installed in the py2 env, there are probably other things too... - s-account: false - s-container: false - s-object: false - s-proxy: false - # As swift is not available for this job, c-bak service won't be functional. - # The backup related tests can be handled by other jobs having swift enabled. - # The backup service along with swift services can be enabled once swift is - # compatible with py3 - c-bak: false tox_envlist: functional tox_install_siblings: true -- secret: - name: osc-dockerhub - data: - username: osclientzuul - password: !encrypted/pkcs1-oaep - - LbIZjJiVstRVXMpoLQ3+/JcNB6lKVUWJXXo5+Outf+PKAaO7mNnv8XLiFMKnJ6ftopLyu - hWbX9rA+NddvplLQkf1xxkh7QBBU8PToLr58quI2SENUclt4tpjxbZfZu451kFSNJvNvR - E58cHHpfJZpyRnS2htXmN/Qy24gbV2w7CQxSZD2YhlcrerD8uQ8rWEnlY1wcJEaEGomtS - ZTGxsdK2TsZC2cd4b7TG7+xbl2i+hjADzwSQAgUzlLlwuG71667+IWk4SOZ7OycJTv9NN - ZTak8+CGfiMKdmsxZ1Z8uD7DC+RIklDjMWyly6zuhWzfhOmsmU0CesR50moodRUvbK79p - NZM8u0hBex5cl2EpUEwJL/FSPJXUhDMPoMoTZT/SAuXf25R9eZ9JGrKsIAlmVhpl8ifoE - 8TpPyvIHGS3YelTQjhqOX0wGb9T4ZauQCcI5Ajzy9NuCTyD9xxme9OX1zz7gMACRnVHvz - q7U7Ue90MnmGH6E2SgKjIZhyzy9Efwb7JUvH1Zb3hlrjCjEhwi9MV5FnABTEeXyYwE10s - 3o/KZg2zvdWkVG6x0dEkjpoQaNuaB7T2Na7Sm421n/z3LCzhiQGuTUjENnL6cMEtuA6Pp - BfI5+Qlg7HMwkBXNB73EPfWHzbCR3VNrzGYTy9FvhGud0/cXsuBXgps4WH63ic= - - job: name: osc-build-image parent: opendev-build-docker-image description: Build Docker images. allowed-projects: openstack/python-openstackclient requires: - - python-builder-3.7-container-image - - python-base-3.7-container-image + - python-builder-3.11-bookworm-container-image + - python-base-3.11-bookworm-container-image provides: osc-container-image - vars: &osc_image_vars + vars: docker_images: - context: . - repository: osclient/python-openstackclient - -- job: - name: osc-upload-image - parent: opendev-upload-docker-image - description: Build Docker images and upload to Docker Hub. - allowed-projects: openstack/python-openstackclient - requires: - - python-builder-3.7-container-image - - python-base-3.7-container-image - provides: osc-container-image - secrets: - - name: docker_credentials - secret: osc-dockerhub - pass-to-parent: true - vars: *osc_image_vars - -- job: - name: osc-promote-image - parent: opendev-promote-docker-image - allowed-projects: openstack/python-openstackclient - description: Promote previously uploaded Docker images. - secrets: - - name: docker_credentials - secret: osc-dockerhub - pass-to-parent: true - nodeset: - nodes: [] - vars: *osc_image_vars + tags: [] - project-template: name: osc-tox-unit-tips check: jobs: - - osc-tox-py36-tips + - osc-tox-py310-tips + - osc-tox-py313-tips gate: jobs: - - osc-tox-py36-tips + - osc-tox-py310-tips + - osc-tox-py313-tips - project: templates: - openstackclient-plugin-jobs - osc-tox-unit-tips - openstack-cover-jobs - - openstack-lower-constraints-jobs - - openstack-python3-wallaby-jobs + - openstack-python3-jobs - publish-openstack-docs-pti - check-requirements - release-notes-jobs-python3 check: jobs: - - osc-build-image + - openstackclient-check-plugins: + voting: true + - osc-build-image: + voting: false - osc-functional-devstack - # - osc-functional-devstack-n-net: - # voting: false - # # The job testing nova-network no longer works before Pike, and - # # should be disabled until the New Way of testing against old clouds - # # is ready and backported - # branches: ^(?!stable/(newton|ocata)).*$ - osc-functional-devstack-tips: # The functional-tips job only tests the latest and shouldn't be run # on the stable branches - branches: ^(?!stable) + branches: ^master$ gate: jobs: - - osc-upload-image - osc-functional-devstack - promote: - jobs: - - osc-promote-image diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 69ecd79cad..74b442ef66 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,16 +1,27 @@ -If you would like to contribute to the development of OpenStack, -you must follow the steps documented at: +The source repository for this project can be found at: - https://docs.openstack.org/infra/manual/developers.html + https://opendev.org/openstack/python-openstackclient -Once those steps have been completed, changes to OpenStack -should be submitted for review via the Gerrit tool, following -the workflow documented at: +Pull requests submitted through GitHub are not monitored. - https://docs.openstack.org/infra/manual/developers.html#development-workflow +To start contributing to OpenStack, follow the steps in the contribution guide +to set up and use Gerrit: -Pull requests submitted through GitHub will be ignored. + https://docs.openstack.org/contributors/code-and-documentation/quick-start.html -Bugs should be filed on Storyboard, not GitHub or Launchpad: +Bugs should be filed on Launchpad: - https://storyboard.openstack.org/#!/project/openstack/python-openstackclient + https://bugs.launchpad.net/python-openstackclient + +Developers should also join the discussion on the mailing list, at: + + https://lists.openstack.org/mailman3/lists/openstack-discuss.lists.openstack.org/ + +or join the IRC channel on + + #openstack-sdks on OFTC (irc.oftc.net) + +For more specific information about contributing to this repository, see the +openstacksdk contributor guide: + + https://docs.openstack.org/openstacksdk/latest/contributor/index.html diff --git a/Dockerfile b/Dockerfile index bf5de3c755..6709be7514 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,12 +13,19 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM docker.io/opendevorg/python-builder:3.7 as builder +FROM docker.io/opendevorg/python-builder:3.12-bookworm AS builder COPY . /tmp/src RUN assemble -FROM docker.io/opendevorg/python-base:3.7 +FROM docker.io/opendevorg/python-base:3.12-bookworm + +LABEL org.opencontainers.image.title="python-openstackclient" +LABEL org.opencontainers.image.description="Client for OpenStack services." +LABEL org.opencontainers.image.licenses="Apache License 2.0" +LABEL org.opencontainers.image.url="https://www.openstack.org/" +LABEL org.opencontainers.image.documentation="https://docs.openstack.org/python-openstackclient/latest/" +LABEL org.opencontainers.image.source="https://opendev.org/openstack/python-openstackclient" COPY --from=builder /output/ /output RUN /output/install-from-bindep diff --git a/HACKING.rst b/HACKING.rst index b5fbad3ca1..432d19f4e4 100644 --- a/HACKING.rst +++ b/HACKING.rst @@ -32,7 +32,7 @@ use the alternate 4 space indent. With the first argument on the succeeding line all arguments will then be vertically aligned. Use the same convention used with other data structure literals and terminate the method call with the last argument line ending with a comma and the closing paren on its own -line indented to the starting line level. +line indented to the starting line level. :: unnecessarily_long_function_name( 'string one', @@ -40,49 +40,3 @@ line indented to the starting line level. kwarg1=constants.ACTIVE, kwarg2=['a', 'b', 'c'], ) - -Text encoding -------------- - -Note: this section clearly has not been implemented in this project yet, it is -the intention to do so. - -All text within python code should be of type 'unicode'. - - WRONG: - - >>> s = 'foo' - >>> s - 'foo' - >>> type(s) - - - RIGHT: - - >>> u = u'foo' - >>> u - u'foo' - >>> type(u) - - -Transitions between internal unicode and external strings should always -be immediately and explicitly encoded or decoded. - -All external text that is not explicitly encoded (database storage, -commandline arguments, etc.) should be presumed to be encoded as utf-8. - - WRONG: - - infile = open('testfile', 'r') - mystring = infile.readline() - myreturnstring = do_some_magic_with(mystring) - outfile.write(myreturnstring) - - RIGHT: - - infile = open('testfile', 'r') - mystring = infile.readline() - mytext = mystring.decode('utf-8') - returntext = do_some_magic_with(mytext) - returnstring = returntext.encode('utf-8') - outfile.write(returnstring) diff --git a/README.rst b/README.rst index 7dfabd8456..af3837a351 100644 --- a/README.rst +++ b/README.rst @@ -1,12 +1,3 @@ -======================== -Team and repository tags -======================== - -.. image:: https://governance.openstack.org/tc/badges/python-openstackclient.svg - :target: https://governance.openstack.org/tc/reference/tags/index.html - -.. Change things from this point on - =============== OpenStackClient =============== @@ -15,96 +6,158 @@ OpenStackClient :target: https://pypi.org/project/python-openstackclient/ :alt: Latest Version -OpenStackClient (aka OSC) is a command-line client for OpenStack that brings +OpenStackClient (OSC) is a command-line client for OpenStack that brings the command set for Compute, Identity, Image, Network, Object Store and Block Storage APIs together in a single shell with a uniform command structure. +Support for additional service APIs is provided via plugins. The primary goal is to provide a unified shell command structure and a common language to describe operations in OpenStack. -* `PyPi`_ - package installation -* `Online Documentation`_ -* `Storyboard project`_ - bugs and feature requests -* `Blueprints`_ - feature specifications (historical only) -* `Source`_ -* `Developer`_ - getting started as a developer -* `Contributing`_ - contributing code -* `Testing`_ - testing code -* IRC: #openstack-sdks on Freenode (irc.freenode.net) -* License: Apache 2.0 - -.. _PyPi: https://pypi.org/project/python-openstackclient -.. _Online Documentation: https://docs.openstack.org/python-openstackclient/latest/ -.. _Blueprints: https://blueprints.launchpad.net/python-openstackclient -.. _`Storyboard project`: https://storyboard.openstack.org/#!/project/openstack/python-openstackclient -.. _Source: https://opendev.org/openstack/python-openstackclient -.. _Developer: https://docs.openstack.org/project-team-guide/project-setup/python.html -.. _Contributing: https://docs.openstack.org/infra/manual/developers.html -.. _Testing: https://docs.openstack.org/python-openstackclient/latest/contributor/developing.html#testing -.. _Release Notes: https://docs.openstack.org/releasenotes/python-openstackclient - Getting Started =============== -OpenStack Client can be installed from PyPI using pip:: +OpenStack Client can be installed from PyPI using pip: - pip install python-openstackclient +.. code-block:: shell -There are a few variants on getting help. A list of global options and supported -commands is shown with ``--help``:: + python3 -m pip install python-openstackclient - openstack --help +You can use ``--help`` or the ``help`` command to get a list of global options +and supported commands: -There is also a ``help`` command that can be used to get help text for a specific -command:: +.. code-block:: shell + openstack --help openstack help + +You can also get help for a specific command: + +.. code-block:: shell + + openstack server create --help openstack help server create -If you want to make changes to the OpenStackClient for testing and contribution, -make any changes and then run:: +You can add support for additional services by installing their clients. For +example, to add support for the DNS service (designate): - python setup.py develop +.. code-block:: shell -or:: + python3 -m pip install python3-designateclient - pip install -e . +A ``Dockerfile`` is provided for your convenience in the repository. You can +use this to build your own container images: -Configuration -============= +.. code-block:: shell -The CLI is configured via environment variables and command-line -options as listed in https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html. + git clone https://opendev.org/openstack/python-openstackclient + cd python-openstackclient + podman build . -t example.com/myuser/openstackclient -Authentication using username/password is most commonly used: +For more information the available options and commands, refer to the `Users +Guide`__. -- For a local user, your configuration will look like the one below:: +.. __: https://docs.openstack.org/python-openstackclient/latest/cli/index.html + +Configuration +============= + +OpenStack Client must be configured with authentication information in order to +communicate with a given OpenStack cloud. This configuration can be achieved +via a ``clouds.yaml`` file, a set of environment variables (often shared via an +``openrc`` file), a set of command-line options, or a combination of all three. +Your cloud provider or deployment tooling will typically provide either a +``clouds.yaml`` file or ``openrc`` file for you. If using a ``clouds.yaml`` +file, OpenStack Client expects to find it in one of the following locations: + +* If set, the path indicated by the ``OS_CLIENT_CONFIG_FILE`` environment + variable +* ``.`` (the current directory) +* ``$HOME/.config/openstack`` +* ``/etc/openstack`` + +The options you should set will depend on the configuration of your cloud and +the authentication mechanism(s) supported. For example, consider a cloud that +supports username/password authentication. Configuration for this cloud using a +``clouds.yaml`` file would look like so: + +.. code-block:: yaml + + clouds: + my-cloud: + auth: + auth_url: '' + project_name: '' + project_domain_name: '' + username: '' + user_domain_name: '' + password: '' # (optional) + region_name: '' + +The corresponding environment variables would look very similar: + +.. code-block:: shell export OS_AUTH_URL= - export OS_IDENTITY_API_VERSION=3 + export OS_REGION_NAME= export OS_PROJECT_NAME= export OS_PROJECT_DOMAIN_NAME= export OS_USERNAME= export OS_USER_DOMAIN_NAME= export OS_PASSWORD= # (optional) - The corresponding command-line options look very similar:: +Likewise, the corresponding command-line options would look very similar: - --os-auth-url - --os-identity-api-version 3 +:: + + openstack + --os-auth-url + --os-region --os-project-name --os-project-domain-name --os-username --os-user-domain-name [--os-password ] -- For a federated user, your configuration will look the so:: +.. note:: + + If a password is not provided above (in plaintext), you will be + interactively prompted to provide one securely. + +Some clouds use federated authentication. If this is the case, your +configuration will be slightly more involved. For example, to configure +username/password authentication for a federated user using a ``clouds.yaml`` +file: + +.. code-block:: yaml + + clouds: + my-cloud: + auth: + auth_url: '' + project_name: '' + project_domain_name: '' + username: '' + user_domain_name: '' + password: '' + identity_provider: '' + client_id: '' + client_secret: '' + openid_scope: '' + protocol: '' + access_token_type: '' + discovery_endpoint: '' + auth_type: 'v3oidcpassword' + region_name: '' + +The corresponding environment variables would look very similar: + +.. code-block:: shell export OS_PROJECT_NAME= export OS_PROJECT_DOMAIN_NAME= export OS_AUTH_URL= export OS_IDENTITY_API_VERSION=3 - export OS_AUTH_PLUGIN=openid export OS_AUTH_TYPE=v3oidcpassword export OS_USERNAME= export OS_PASSWORD= @@ -116,7 +169,9 @@ Authentication using username/password is most commonly used: export OS_ACCESS_TOKEN_TYPE= export OS_DISCOVERY_ENDPOINT= - The corresponding command-line options look very similar:: +Likewise, the corresponding command-line options would look very similar: + +.. code-block:: shell --os-project-name --os-project-domain-name @@ -134,5 +189,41 @@ Authentication using username/password is most commonly used: --os-access-token-type --os-discovery-endpoint -If a password is not provided above (in plaintext), you will be interactively -prompted to provide one securely. +For more information on configuring authentication, including an overview of +the many authentication mechanisms supported, refer to the `Authentication +guide`__. For more information on configuration in general, refer to the +`Configuration guide`__. + +.. __: https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html. +.. __: https://docs.openstack.org/python-openstackclient/latest/configuration/index.html + +Contributing +============ + +You can clone the repository from opendev.org:: + + git clone https://opendev.org/openstack/python-openstackclient + cd python-openstackclient + +OpenStack Client uses the same contributor process as other OpenStack projects. +For information on this process, including help on setting up you Gerrit +account and an overview of the CI process, refer to the `OpenStack Contributors +Guide`__. + +For more information on contributing to OpenStack Client itself, including +guidance on how to design new commands and how to report bugs, refer to the +`Contributors Guide`__. + +.. __: https://docs.openstack.org/python-openstackclient/latest/contributor/index.html +.. __: https://docs.opendev.org/opendev/infra-manual/latest/developers.html + +Links +----- + +* `Issue Tracker `_ +* `Code Review `_ +* `Documentation `_ +* `PyPi `_ +* `Mailing list `_ +* `Release Notes `_ +* `IRC (#openstack-sdks on OFTC (irc.oftc.net)) `_ diff --git a/bindep.txt b/bindep.txt index 4c90a026fe..8402431aed 100644 --- a/bindep.txt +++ b/bindep.txt @@ -8,3 +8,4 @@ libffi-dev [compile test platform:dpkg] libssl-dev [compile test platform:dpkg] python3-dev [compile test platform:dpkg] python3-devel [compile test platform:rpm] +libpcre2-dev [test platform:dpkg] diff --git a/doc/requirements.txt b/doc/requirements.txt index 60a877970c..05a9bfa87c 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -1,31 +1,26 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. openstackdocstheme>=2.2.1 # Apache-2.0 reno>=3.1.0 # Apache-2.0 sphinx>=2.0.0,!=2.1.0 # BSD sphinxcontrib-apidoc>=0.2.0 # BSD # redirect tests in docs -whereto>=0.4.0 # Apache-2.0 +whereto>=0.5.0 # Apache-2.0 # Install these to generate sphinx autodocs aodhclient>=0.9.0 # Apache-2.0 gnocchiclient>=3.3.1 # Apache-2.0 osc-placement>=1.7.0 # Apache-2.0 python-barbicanclient>=4.5.2 # Apache-2.0 +python-cyborgclient>=1.2.1 # Apache-2.0 python-designateclient>=2.7.0 # Apache-2.0 python-heatclient>=1.10.0 # Apache-2.0 python-ironicclient>=2.3.0 # Apache-2.0 python-ironic-inspector-client>=1.5.0 # Apache-2.0 +python-magnumclient>=2.3.0 # Apache-2.0 python-manilaclient>=2.0.0 # Apache-2.0 python-mistralclient!=3.2.0,>=3.1.0 # Apache-2.0 -python-muranoclient>=0.8.2 # Apache-2.0 python-neutronclient>=6.7.0 # Apache-2.0 python-octaviaclient>=1.11.0 # Apache-2.0 -python-rsdclient>=1.0.1 # Apache-2.0 -python-saharaclient>=1.4.0 # Apache-2.0 -python-senlinclient>=1.1.0 # Apache-2.0 python-troveclient>=3.1.0 # Apache-2.0 python-watcherclient>=2.5.0 # Apache-2.0 python-zaqarclient>=1.0.0 # Apache-2.0 diff --git a/doc/source/cli/_hidden/image.rst b/doc/source/cli/_hidden/image.rst index 85ffde6f39..06919e7ab9 100644 --- a/doc/source/cli/_hidden/image.rst +++ b/doc/source/cli/_hidden/image.rst @@ -3,7 +3,7 @@ image ===== .. NOTE(efried): This page is hidden from the main TOC; it's here so links in - the wild redirect somewhere sane, because previously identity v2 and v3 were + the wild redirect somewhere sane, because previously image v2 and v3 were combined in a single page. .. toctree:: diff --git a/doc/source/cli/authentication.rst b/doc/source/cli/authentication.rst index 2e9148c356..8c09fc3648 100644 --- a/doc/source/cli/authentication.rst +++ b/doc/source/cli/authentication.rst @@ -36,7 +36,7 @@ There are at least three authentication types that are always available: URL for the Identity service is also required. [Required: ``--os-auth-url``, ``--os-project-name``, ``--os-username``; Optional: ``--os-password``] * **Token**: This is slightly different from the usual token authentication - (described below as token/endpoint) in that a token and an authentication + in that a token and an authentication URL are supplied and the plugin retrieves a new token. [Required: ``--os-auth-url``, ``--os-token``] * **Others**: Other authentication plugins such as SAML, Kerberos, and OAuth1.0 @@ -145,5 +145,233 @@ credentials. This is useful in a Federated environment where one credential give access to many applications/services that the Federation supports. To check how to configure the OpenStackClient to allow Federated users to log in, please check -the -:ref:`Authentication using federation. ` +the :ref:`Authentication using federation. ` + +Examples +-------- + +.. todo: It would be nice to add more examples here, particularly for + complicated things like oauth2 + +``v3password`` +~~~~~~~~~~~~~~ + +Using ``clouds.yaml``: + +.. code-block:: yaml + + clouds: + demo: + auth: + auth_url: http://openstack.dev/identity + project_name: demo + project_domain_name: default + user_domain_name: default + username: demo + password: password + auth_type: v3password + +or, using command line options: + +.. code-block:: bash + + $ openstack \ + --os-auth-url "http://openstack.dev/identity" \ + --os-project-name demo \ + --os-project-domain-name default \ + --os-user-domain-name default \ + --os-auth-type=v3password \ + --os-username demo \ + --os-password password \ + server list + +or, using environment variables: + +.. code-block:: bash + + $ export OS_AUTH_URL="http://openstack.dev/identity" + $ export OS_PROJECT_NAME=demo + $ export OS_PROJECT_DOMAIN_NAME=default + $ export OS_AUTH_TYPE=v3password + $ export OS_USERNAME=demo + $ export OS_PASSWORD=password + $ openstack server list + +.. note:: + + If a password is not provided, you will be prompted for one. + +``v3applicationcredential`` +~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Using ``clouds.yaml``: + +.. code-block:: yaml + + clouds: + demo: + auth: + auth_url: http://openstack.dev/identity + application_credential_id: ${APP_CRED_ID} + application_credential_secret: ${APP_CRED_SECRET} + auth_type: v3applicationcredential + +or, using command line options: + +.. code-block:: bash + + $ openstack \ + --os-auth-url "http://openstack.dev/identity" \ + --os-auth-type=v3applicationcredential \ + --os-application-credential-id=${APP_CRED_ID} \ + --os-application-credential-secret=${APP_CRED_SECRET} + server list + +or, using environment variables: + +.. code-block:: bash + + $ export OS_AUTH_URL="http://openstack.dev/identity" + $ export OS_AUTH_TYPE=v3applicationcredential + $ export OS_APPLICATION_CREDENTIAL_ID=${APP_CRED_ID} + $ export OS_APPLICATION_CREDENTIAL_SECRET=${APP_CRED_SECRET} + $ openstack server list + +.. note:: + + You can generate application credentials using the :program:`openstack + application credential create` command: + + .. code-block:: bash + + $ readarray -t lines <<< $(openstack application credential create test -f value -c id -c secret) + $ APP_CRED_ID=${lines[0]} + $ APP_CRED_SECRET=${lines[1]} + +``v3token`` +~~~~~~~~~~~ + +Using ``clouds.yaml``: + +.. code-block:: yaml + + clouds: + demo: + auth: + auth_url: http://openstack.dev/identity + project_name: demo + project_domain_name: default + token: ${TOKEN} + auth_type: v3token + +or, using command line options: + +.. code-block:: bash + + $ openstack \ + --os-auth-url "http://openstack.dev/identity" \ + --os-project-name demo \ + --os-project-domain-name default \ + --os-auth-type=v3token \ + --os-token ${TOKEN} \ + server list + +or, using environment variables: + +.. code-block:: bash + + $ export OS_AUTH_URL="http://openstack.dev/identity" + $ export OS_PROJECT_NAME=demo + $ export OS_PROJECT_DOMAIN_NAME=default + $ export OS_AUTH_TYPE=v3token + $ export OS_TOKEN=${TOKEN} + $ openstack server list + +.. note:: + + You can generate tokens using the :program:`openstack token issue` command: + + .. code-block:: bash + + $ TOKEN=$(openstack token issue -f value -c id) + +.. note:: + + The above examples assume you require a project-scoped token. You can omit + the project-related configuration if your user has a default project ID set. + Conversely, if requesting domain-scoped or system-scoped, you should update + these examples accordingly. If the user does not have a default project + configured and no scoping information is provided, the resulting token will + be unscoped. + +``v3totp`` +~~~~~~~~~~ + +.. note:: + + The TOTP mechanism is poorly suited to command line-driven API + interactions. Where the TOTP mechanism is configured for a cloud, it is + expected that it is to be used for initial authentication and to create a + token or application credential, which can then be used for future + interactions. + +.. note:: + + The TOTP mechanism is often combined with other mechanisms to enable + Multi-Factor Authentication, or MFA. The authentication type + ``v3multifactor`` is used in this case, while the ``v3totp`` authentication + type is specified alongside the other mechanisms in ``auth_methods``. + +Using ``clouds.yaml``: + +.. code-block:: yaml + + clouds: + demo: + auth: + auth_url: http://openstack.dev/identity + project_name: demo + project_domain_name: default + user_domain_name: default + username: demo + passcode: ${PASSCODE} + auth_type: v3totp + +or, using command line options: + +.. code-block:: bash + + $ openstack \ + --os-auth-url "http://openstack.dev/identity" \ + --os-project-name demo \ + --os-project-domain-name default \ + --os-user-domain-name default \ + --os-auth-type=v3totp \ + --os-username demo \ + --os-passcode ${PASSCODE} \ + server list + +or, using environment variables: + +.. code-block:: bash + + $ export OS_AUTH_URL="http://openstack.dev/identity" + $ export OS_PROJECT_NAME=demo + $ export OS_PROJECT_DOMAIN_NAME=default + $ export OS_AUTH_TYPE=v3totp + $ export OS_USERNAME=demo + $ export OS_PASSCODE=${PASSCODE} + $ openstack server list + +.. note:: + + The passcode will be generated by an authenticator application such FreeOTP + or Google Authenticator. Refer to your cloud provider's documentation for + information on how to configure an authenticator application, or to the + `Keystone documentation`__ if you are configuring this for your own cloud. + + .. __: https://docs.openstack.org/keystone/latest/admin/auth-totp.html + +.. note:: + + If a passcode is not provided, you will be prompted for one. diff --git a/doc/source/cli/backwards-incompatible.rst b/doc/source/cli/backwards-incompatible.rst index 9d43754e01..3fbe65fae9 100644 --- a/doc/source/cli/backwards-incompatible.rst +++ b/doc/source/cli/backwards-incompatible.rst @@ -20,119 +20,129 @@ Release 4.0 ----------- 1. Remove ``ip fixed add|remove`` commands. + Use ``server add|remove fixed ip`` commands instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612781 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612781 2. Remove ``ip floating add|remove`` commands. + Use ``server add|remove floating ip`` commands instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612781 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612781 3. Remove ``service create`` option ``--type``. Service type is a positional argument. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612798 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612798 4. Remove ``role list`` options ``--project`` and ``--user``. + Use ``role assignment list`` options ``--project`` and ``--user`` instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612798 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612798 5. Remove ``user role list`` command. + Use ``role assignment list`` options ``--project`` and ``--user`` instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612798 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612798 6. Remove ``image create|set`` option ``--owner``. + Use ``--project`` option instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/659431 + * Removed in: 4.0 + * Commit: https://review.opendev.org/659431 7. Remove ``port create|set`` options ``--device-id`` and ``--host-id``. + Use ``--device`` and ``--host`` instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/613644 + * Removed in: 4.0 + * Commit: https://review.opendev.org/613644 8. Remove ``router set`` option ``--clear-routes``. + Use ``no-route`` option instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/613644 + * Removed in: 4.0 + * Commit: https://review.opendev.org/613644 9. Remove ``security group rule create`` options ``--src-ip`` and ``--src-group``. + Use ``--remote-ip`` and ``--remote-group`` options instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/613644 + * Removed in: 4.0 + * Commit: https://review.opendev.org/613644 10. Remove ``backup`` commands. + Use ``volume backup`` commands instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612751 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612751 11. Remove ``snapshot`` commands. Use ``volume snapshot`` commands instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612751 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612751 12. Remove ``volume create`` options ``--project``, ``--user``, ``--multi-attach``. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612751 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612751 13. Change ``volume transfer request accept`` to use new option ``--auth-key`` rather than a second positional argument. - * Removed in: 4.0 - * Commit: https://review.opendev.org/612751 + * Removed in: 4.0 + * Commit: https://review.opendev.org/612751 14. Remove 'Token/Endpoint' auth plugin support (type ``token_endpoint``). + This remained as a compatibility for the ``admin_token`` auth type to support the ``--url`` global option. That option is also now removed, use ``--endpoint`` instead. - * Removed in: 4.0 - * Commit: https://review.opendev.org/ + * Removed in: 4.0 + * Commit: https://review.opendev.org/ Release 3.12 ------------ 1. Replace ``Display Name`` by ``Name`` in volume list. - Change column name ``Display Name`` to ``Name`` in ``volume list`` output. - Current ``volume list --name`` command uses ``display_name`` as search_opts - to send to cinder API, and show the result table with ``Display Name`` - as column title. Replace all ``Display Name`` by ``Name`` to be consistent - with other list commands. + Change column name ``Display Name`` to ``Name`` in ``volume list`` output. + Current ``volume list --name`` command uses ``display_name`` as search_opts + to send to cinder API, and show the result table with ``Display Name`` + as column title. Replace all ``Display Name`` by ``Name`` to be consistent + with other list commands. - Support a mapping for volume list -c ``Display Name`` (Volume v1 and v2) - and volume create/show -c ``display_name`` (Volume v1) to maintain backward - compatibility until the next major release. + Support a mapping for volume list -c ``Display Name`` (Volume v1 and v2) + and volume create/show -c ``display_name`` (Volume v1) to maintain backward + compatibility until the next major release. - * In favor of: ``openstack volume list -c Name`` - * As of: 3.12.0 - * Removed in: n/a - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1657956 - * Commit: https://review.opendev.org/#/c/423081/ + * In favor of: ``openstack volume list -c Name`` + * As of: 3.12.0 + * Removed in: n/a + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1657956 + * Commit: https://review.opendev.org/#/c/423081/ Release 3.10 ------------ 1. The ``network create`` command now requires the ``--subnet`` option when used - with Nova-network clouds. + with nova-network clouds. - * As of: 3.10 - * Commit: https://review.opendev.org/460679 + * As of: 3.10 + * Commit: https://review.opendev.org/460679 2. The positional argument ```` of the ``volume snapshot create`` command is no longer optional. @@ -142,23 +152,23 @@ Release 3.10 ``--volume`` option is not present now it defaults to the value of ````. - * As of: 3.10 - * Bug: 1659894 - * Commit: https://review.opendev.org/440497 + * As of: 3.10 + * Bug: 1659894 + * Commit: https://review.opendev.org/440497 Release 3.0 ----------- 1. Remove the ``osc_password`` authentication plugin. - This was the 'last-resort' plugin default that worked around an old default - Keystone configuration for the ``admin_endpoint`` and ``public_endpoint``. + This was the 'last-resort' plugin default that worked around an old default + Keystone configuration for the ``admin_endpoint`` and ``public_endpoint``. - * In favor of: ``password`` - * As of: 3.0 - * Removed in: n/a - * Bug: n/a - * Commit: https://review.opendev.org/332938 + * In favor of: ``password`` + * As of: 3.0 + * Removed in: n/a + * Bug: n/a + * Commit: https://review.opendev.org/332938 Releases Before 3.0 @@ -166,209 +176,209 @@ Releases Before 3.0 1. Rename command `openstack project usage list` - The `project` part of the command was pointless. + The `project` part of the command was pointless. - * In favor of: `openstack usage list` instead. - * As of: 1.0.2 - * Removed in: TBD - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1406654 - * Commit: https://review.opendev.org/#/c/147379/ + * In favor of: `openstack usage list` instead. + * As of: 1.0.2 + * Removed in: TBD + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1406654 + * Commit: https://review.opendev.org/#/c/147379/ 2. should not be optional for command `openstack service create` - Previously, the command was `openstack service create --type `, - whereas now it is: `openstack service create --name `. - This bug also affected python-keystoneclient, and keystone. + Previously, the command was `openstack service create --type `, + whereas now it is: `openstack service create --name `. + This bug also affected python-keystoneclient, and keystone. - * In favor of: making a positional argument. - * As of: 1.0.2 - * Removed in: TBD - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1404073 - * Commit: https://review.opendev.org/#/c/143242/ + * In favor of: making a positional argument. + * As of: 1.0.2 + * Removed in: TBD + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1404073 + * Commit: https://review.opendev.org/#/c/143242/ 3. Command `openstack security group rule delete` now requires rule id - Previously, the command was `openstack security group rule delete --proto - [--src-ip --dst-port ] `, - whereas now it is: `openstack security group rule delete `. + Previously, the command was `openstack security group rule delete --proto + [--src-ip --dst-port ] `, + whereas now it is: `openstack security group rule delete `. - * In favor of: Using `openstack security group rule delete `. - * As of: 1.2.1 - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1450872 - * Commit: https://review.opendev.org/#/c/179446/ + * In favor of: Using `openstack security group rule delete `. + * As of: 1.2.1 + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1450872 + * Commit: https://review.opendev.org/#/c/179446/ 4. Command `openstack image create` does not update already existing image - Previously, the image create command updated already existing image if it had - same name. It disabled possibility to create multiple images with same name - and lead to potentially unwanted update of existing images by image create - command. - Now, update code was moved from create action to set action. + Previously, the image create command updated already existing image if it had + same name. It disabled possibility to create multiple images with same name + and lead to potentially unwanted update of existing images by image create + command. + Now, update code was moved from create action to set action. - * In favor of: Create multiple images with same name (as glance does). - * As of: 1.5.0 - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1461817 - * Commit: https://review.opendev.org/#/c/194654/ + * In favor of: Create multiple images with same name (as glance does). + * As of: 1.5.0 + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1461817 + * Commit: https://review.opendev.org/#/c/194654/ 5. Command `openstack network list --dhcp` has been removed - The --dhcp option to network list is not a logical use case of listing - networks, it lists agents. Another command should be added in the future - to provide this functionality. It is highly unlikely anyone uses this - feature as we don't support any other agent commands. Use neutron - dhcp-agent-list-hosting-net command instead. + The --dhcp option to network list is not a logical use case of listing + networks, it lists agents. Another command should be added in the future + to provide this functionality. It is highly unlikely anyone uses this + feature as we don't support any other agent commands. Use neutron + dhcp-agent-list-hosting-net command instead. - * In favor of: Create network agent list command in the future - * As of: 1.6.0 - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/472613 - * Commit: https://review.opendev.org/#/c/194654/ + * In favor of: Create network agent list command in the future + * As of: 1.6.0 + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/472613 + * Commit: https://review.opendev.org/#/c/194654/ 6. Plugin interface change for default API versions - Previously, the default version was set in the parsed arguments, - but this makes it impossible to tell what has been passed in at the - command line, set in an environment variable or is just the default. - Now, the module should have a DEFAULT_API_VERSION that contains the - value and it will be set after command line argument, environment - and OCC file processing. + Previously, the default version was set in the parsed arguments, + but this makes it impossible to tell what has been passed in at the + command line, set in an environment variable or is just the default. + Now, the module should have a DEFAULT_API_VERSION that contains the + value and it will be set after command line argument, environment + and OCC file processing. - * In favor of: DEFAULT_API_VERSION - * As of: 1.2.1 - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1453229 - * Commit: https://review.opendev.org/#/c/181514/ + * In favor of: DEFAULT_API_VERSION + * As of: 1.2.1 + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1453229 + * Commit: https://review.opendev.org/#/c/181514/ 7. `image set` commands will no longer return the modified resource - Previously, modifying an image would result in the new image being displayed - to the user. To keep things consistent with other `set` commands, we will - no longer be showing the modified resource. + Previously, modifying an image would result in the new image being displayed + to the user. To keep things consistent with other `set` commands, we will + no longer be showing the modified resource. - * In favor of: Use `set` then `show` - * As of: NA - * Removed in: NA - * Bug: NA - * Commit: NA + * In favor of: Use `set` then `show` + * As of: NA + * Removed in: NA + * Bug: NA + * Commit: NA 8. `region` commands no longer support `url` - The Keystone team removed support for the `url` attribute from the client - and server side. Changes to the `create`, `set` and `list` commands for - regions have been affected. + The Keystone team removed support for the `url` attribute from the client + and server side. Changes to the `create`, `set` and `list` commands for + regions have been affected. - * In favor of: NA - * As of 1.9.0 - * Removed in: NA - * Bug: https://launchpad.net/bugs/1506841 - * Commit: https://review.opendev.org/#/c/236736/ + * In favor of: NA + * As of 1.9.0 + * Removed in: NA + * Bug: https://launchpad.net/bugs/1506841 + * Commit: https://review.opendev.org/#/c/236736/ 9. `flavor set/unset` commands will no longer return the modified resource - Previously, modifying a flavor would result in the new flavor being displayed - to the user. To keep things consistent with other `set/unset` commands, we - will no longer be showing the modified resource. + Previously, modifying a flavor would result in the new flavor being displayed + to the user. To keep things consistent with other `set/unset` commands, we + will no longer be showing the modified resource. - * In favor of: Use `set/unset` then `show` - * As of: NA - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 - * Commit: https://review.opendev.org/#/c/280663/ + * In favor of: Use `set/unset` then `show` + * As of: NA + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 + * Commit: https://review.opendev.org/#/c/280663/ 10. `security group set` commands will no longer return the modified resource - Previously, modifying a security group would result in the new security group - being displayed to the user. To keep things consistent with other `set` - commands, we will no longer be showing the modified resource. + Previously, modifying a security group would result in the new security group + being displayed to the user. To keep things consistent with other `set` + commands, we will no longer be showing the modified resource. - * In favor of: Use `set` then `show` - * As of: NA - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 - * Commit: https://review.opendev.org/#/c/281087/ + * In favor of: Use `set` then `show` + * As of: NA + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 + * Commit: https://review.opendev.org/#/c/281087/ 11. `compute agent set` commands will no longer return the modified resource - Previously, modifying an agent would result in the new agent being displayed - to the user. To keep things consistent with other `set` commands, we will - no longer be showing the modified resource. + Previously, modifying an agent would result in the new agent being displayed + to the user. To keep things consistent with other `set` commands, we will + no longer be showing the modified resource. - * In favor of: Use `set` then `show` - * As of: NA - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 - * Commit: https://review.opendev.org/#/c/281088/ + * In favor of: Use `set` then `show` + * As of: NA + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 + * Commit: https://review.opendev.org/#/c/281088/ 12. ` ` should be optional for command `openstack compute agent set` - Previously, the command was `openstack compute agent set - `, whereas now it is: `openstack compute agent set --version - --url --md5hash `. + Previously, the command was `openstack compute agent set + `, whereas now it is: `openstack compute agent set --version + --url --md5hash `. - * In favor of: making optional. - * As of: NA - * Removed in: NA - * Bug: NA - * Commit: https://review.opendev.org/#/c/328819/ + * In favor of: making optional. + * As of: NA + * Removed in: NA + * Bug: NA + * Commit: https://review.opendev.org/#/c/328819/ 13. `aggregate set` commands will no longer return the modified resource - Previously, modifying an aggregate would result in the new aggregate being - displayed to the user. To keep things consistent with other `set` commands, - we will no longer be showing the modified resource. + Previously, modifying an aggregate would result in the new aggregate being + displayed to the user. To keep things consistent with other `set` commands, + we will no longer be showing the modified resource. - * In favor of: Use `set` then `show` - * As of: NA - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 - * Commit: https://review.opendev.org/#/c/281089/ + * In favor of: Use `set` then `show` + * As of: NA + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1546065 + * Commit: https://review.opendev.org/#/c/281089/ 14. Output of `ip floating list` command has changed. - When using Compute v2, the original output is: + When using Compute v2, the original output is: - .. code-block:: bash + .. code-block:: bash - # ip floating list + # ip floating list - +----+--------+------------+----------+-------------+ - | ID | Pool | IP | Fixed IP | Instance ID | - +----+--------+-----------------------+-------------+ - | 1 | public | 172.24.4.1 | None | None | - +----+--------+------------+----------+-------------+ + +----+--------+------------+----------+-------------+ + | ID | Pool | IP | Fixed IP | Instance ID | + +----+--------+-----------------------+-------------+ + | 1 | public | 172.24.4.1 | None | None | + +----+--------+------------+----------+-------------+ - Now it changes to: + Now it changes to: - .. code-block:: bash + .. code-block:: bash - # ip floating list + # ip floating list - +----+---------------------+------------------+-----------+--------+ - | ID | Floating IP Address | Fixed IP Address | Server ID | Pool | - +----+---------------------+------------------+-----------+--------+ - | 1 | 172.24.4.1 | None | None | public | - +----+---------------------+------------------+-----------+--------+ + +----+---------------------+------------------+-----------+--------+ + | ID | Floating IP Address | Fixed IP Address | Server ID | Pool | + +----+---------------------+------------------+-----------+--------+ + | 1 | 172.24.4.1 | None | None | public | + +----+---------------------+------------------+-----------+--------+ - When using Network v2, which is different from Compute v2. The output is: + When using Network v2, which is different from Compute v2. The output is: - .. code-block:: bash + .. code-block:: bash - # ip floating list + # ip floating list - +--------------------------------------+---------------------+------------------+------+ - | ID | Floating IP Address | Fixed IP Address | Port | - +--------------------------------------+---------------------+------------------+------+ - | 1976df86-e66a-4f96-81bd-c6ffee6407f1 | 172.24.4.3 | None | None | - +--------------------------------------+---------------------+------------------+------+ + +--------------------------------------+---------------------+------------------+------+ + | ID | Floating IP Address | Fixed IP Address | Port | + +--------------------------------------+---------------------+------------------+------+ + | 1976df86-e66a-4f96-81bd-c6ffee6407f1 | 172.24.4.3 | None | None | + +--------------------------------------+---------------------+------------------+------+ - * In favor of: Use `ip floating list` command - * As of: NA - * Removed in: NA - * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1519502 - * Commit: https://review.opendev.org/#/c/277720/ + * In favor of: Use `ip floating list` command + * As of: NA + * Removed in: NA + * Bug: https://bugs.launchpad.net/python-openstackclient/+bug/1519502 + * Commit: https://review.opendev.org/#/c/277720/ For Developers ============== diff --git a/doc/source/cli/command-objects/access-rules.rst b/doc/source/cli/command-objects/access-rules.rst index bc8458283f..6e811fc7df 100644 --- a/doc/source/cli/command-objects/access-rules.rst +++ b/doc/source/cli/command-objects/access-rules.rst @@ -9,53 +9,11 @@ rule comprises of a service type, a request path, and a request method. Access rules may only be created as attributes of application credentials, but they may be viewed and deleted independently. +.. autoprogram-cliff:: openstack.identity.v3 + :command: access rule delete -access rule delete ------------------- +.. autoprogram-cliff:: openstack.identity.v3 + :command: access rule list -Delete access rule(s) - -.. program:: access rule delete -.. code:: bash - - openstack access rule delete [ ...] - -.. describe:: - - Access rule(s) to delete (ID) - -access rule list ----------------- - -List access rules - -.. program:: access rule list -.. code:: bash - - openstack access rule list - [--user ] - [--user-domain ] - -.. option:: --user - - User whose access rules to list (name or ID). If not provided, looks up the - current user's access rules. - -.. option:: --user-domain - - Domain the user belongs to (name or ID). This can be - used in case collisions between user names exist. - -access rule show ---------------------------- - -Display access rule details - -.. program:: access rule show -.. code:: bash - - openstack access rule show - -.. describe:: - - Access rule to display (ID) +.. autoprogram-cliff:: openstack.identity.v3 + :command: access rule show diff --git a/doc/source/cli/command-objects/block-storage-cleanup.rst b/doc/source/cli/command-objects/block-storage-cleanup.rst new file mode 100644 index 0000000000..6a593c1187 --- /dev/null +++ b/doc/source/cli/command-objects/block-storage-cleanup.rst @@ -0,0 +1,8 @@ +============= +block storage +============= + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage cleanup diff --git a/doc/source/cli/command-objects/block-storage-cluster.rst b/doc/source/cli/command-objects/block-storage-cluster.rst new file mode 100644 index 0000000000..318419e079 --- /dev/null +++ b/doc/source/cli/command-objects/block-storage-cluster.rst @@ -0,0 +1,8 @@ +===================== +block storage cluster +===================== + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage cluster * diff --git a/doc/source/cli/command-objects/block-storage-log-level.rst b/doc/source/cli/command-objects/block-storage-log-level.rst new file mode 100644 index 0000000000..17241a0edf --- /dev/null +++ b/doc/source/cli/command-objects/block-storage-log-level.rst @@ -0,0 +1,8 @@ +======================= +Block Storage Log Level +======================= + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage log level * diff --git a/doc/source/cli/command-objects/block-storage-manage.rst b/doc/source/cli/command-objects/block-storage-manage.rst new file mode 100644 index 0000000000..a1cff1ad67 --- /dev/null +++ b/doc/source/cli/command-objects/block-storage-manage.rst @@ -0,0 +1,11 @@ +==================== +Block Storage Manage +==================== + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage volume manageable list + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage snapshot manageable list diff --git a/doc/source/cli/command-objects/block-storage-resource-filter.rst b/doc/source/cli/command-objects/block-storage-resource-filter.rst new file mode 100644 index 0000000000..3e4c33ba5f --- /dev/null +++ b/doc/source/cli/command-objects/block-storage-resource-filter.rst @@ -0,0 +1,8 @@ +============================= +block storage resource filter +============================= + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: block storage resource filter * diff --git a/doc/source/cli/command-objects/consistency-group-snapshot.rst b/doc/source/cli/command-objects/consistency-group-snapshot.rst index 29d5065663..51241685fd 100644 --- a/doc/source/cli/command-objects/consistency-group-snapshot.rst +++ b/doc/source/cli/command-objects/consistency-group-snapshot.rst @@ -2,95 +2,16 @@ consistency group snapshot ========================== -Block Storage v2 +Block Storage v2, v3 -consistency group snapshot create ---------------------------------- +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group snapshot create -Create new consistency group snapshot. +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group snapshot delete -.. program:: consistency group snapshot create -.. code:: bash +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group snapshot list - openstack consistency group snapshot create - [--consistency-group ] - [--description ] - [] - -.. option:: --consistency-group - - Consistency group to snapshot (name or ID) - (default to be the same as ) - -.. option:: --description - - Description of this consistency group snapshot - -.. _consistency_group_snapshot_create-snapshot-name: -.. describe:: - - Name of new consistency group snapshot (default to None) - -consistency group snapshot delete ---------------------------------- - -Delete consistency group snapshot(s) - -.. program:: consistency group snapshot delete -.. code:: bash - - openstack consistency group snapshot delete - [ ...] - -.. _consistency_group_snapshot_delete-consistency-group-snapshot: -.. describe:: - - Consistency group snapshot(s) to delete (name or ID) - -consistency group snapshot list -------------------------------- - -List consistency group snapshots. - -.. program:: consistency group snapshot list -.. code:: bash - - openstack consistency group snapshot list - [--all-projects] - [--long] - [--status ] - [--consistency-group ] - -.. option:: --all-projects - - Show detail for all projects. Admin only. - (defaults to False) - -.. option:: --long - - List additional fields in output - -.. option:: --status - - Filters results by a status - ("available", "error", "creating", "deleting" or "error_deleting") - -.. option:: --consistency-group - - Filters results by a consistency group (name or ID) - -consistency group snapshot show -------------------------------- - -Display consistency group snapshot details. - -.. program:: consistency group snapshot show -.. code:: bash - - openstack consistency group snapshot show - - -.. _consistency_group_snapshot_show-consistency-group-snapshot: -.. describe:: - - Consistency group snapshot to display (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group snapshot show diff --git a/doc/source/cli/command-objects/consistency-group.rst b/doc/source/cli/command-objects/consistency-group.rst index 57082c6df8..9ff207ff79 100644 --- a/doc/source/cli/command-objects/consistency-group.rst +++ b/doc/source/cli/command-objects/consistency-group.rst @@ -2,172 +2,25 @@ consistency group ================= -Block Storage v2 +Block Storage v2, v3 -consistency group add volume ----------------------------- +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group add volume -Add volume(s) to consistency group. +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group create -.. program:: consistency group add volume -.. code:: bash +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group delete - openstack consistency group add volume - - [ ...] +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group list -.. _consistency_group_add_volume: -.. describe:: +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group remove volume - Consistency group to contain (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group set -.. describe:: - - Volume(s) to add to (name or ID) - (repeat option to add multiple volumes) - -consistency group create ------------------------- - -Create new consistency group. - -.. program:: consistency group create -.. code:: bash - - openstack consistency group create - --volume-type | --consistency-group-source | --consistency-group-snapshot - [--description ] - [--availability-zone ] - [] - -.. option:: --volume-type - - Volume type of this consistency group (name or ID) - -.. option:: --consistency-group-source - - Existing consistency group (name or ID) - -.. option:: --consistency-group-snapshot - - Existing consistency group snapshot (name or ID) - -.. option:: --description - - Description of this consistency group - -.. option:: --availability-zone - - Availability zone for this consistency group - (not available if creating consistency group from source) - -.. _consistency_group_create-name: -.. describe:: - - Name of new consistency group (default to None) - -consistency group delete ------------------------- - -Delete consistency group(s). - -.. program:: consistency group delete -.. code:: bash - - openstack consistency group delete - [--force] - [ ...] - -.. option:: --force - - Allow delete in state other than error or available - -.. _consistency_group_delete-consistency-group: -.. describe:: - - Consistency group(s) to delete (name or ID) - -consistency group list ----------------------- - -List consistency groups. - -.. program:: consistency group list -.. code:: bash - - openstack consistency group list - [--all-projects] - [--long] - -.. option:: --all-projects - - Show detail for all projects. Admin only. - (defaults to False) - -.. option:: --long - - List additional fields in output - -consistency group remove volume -------------------------------- - -Remove volume(s) from consistency group. - -.. program:: consistency group remove volume -.. code:: bash - - openstack consistency group remove volume - - [ ...] - -.. _consistency_group_remove_volume: -.. describe:: - - Consistency group containing (name or ID) - -.. describe:: - - Volume(s) to remove from (name or ID) - (repeat option to remove multiple volumes) - -consistency group set ---------------------- - -Set consistency group properties. - -.. program:: consistency group set -.. code:: bash - - openstack consistency group set - [--name ] - [--description ] - - -.. option:: --name - - New consistency group name - -.. option:: --description - - New consistency group description - -.. _consistency_group_set-consistency-group: -.. describe:: - - Consistency group to modify (name or ID) - -consistency group show ----------------------- - -Display consistency group details. - -.. program:: consistency group show -.. code:: bash - - openstack consistency group show - - -.. _consistency_group_show-consistency-group: -.. describe:: - - Consistency group to display (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: consistency group show diff --git a/doc/source/cli/command-objects/console-connection.rst b/doc/source/cli/command-objects/console-connection.rst new file mode 100644 index 0000000000..c3358050fb --- /dev/null +++ b/doc/source/cli/command-objects/console-connection.rst @@ -0,0 +1,10 @@ +================== +console connection +================== + +Server console connection information + +Compute v2 + +.. autoprogram-cliff:: openstack.compute.v2 + :command: console connection show diff --git a/doc/source/cli/command-objects/default-security-group-rule.rst b/doc/source/cli/command-objects/default-security-group-rule.rst new file mode 100644 index 0000000000..1905614bfc --- /dev/null +++ b/doc/source/cli/command-objects/default-security-group-rule.rst @@ -0,0 +1,11 @@ +=========================== +default security group rule +=========================== + +A **default security group rule** specifies the template of the security group +rules which will be used by neutron to create rules in every new security group. + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: default security group rule * diff --git a/doc/source/cli/command-objects/image-member.rst b/doc/source/cli/command-objects/image-member.rst new file mode 100644 index 0000000000..4b48991cb3 --- /dev/null +++ b/doc/source/cli/command-objects/image-member.rst @@ -0,0 +1,14 @@ +============ +image member +============ + +Image v2 + +.. autoprogram-cliff:: openstack.image.v2 + :command: image add project + +.. autoprogram-cliff:: openstack.image.v2 + :command: image remove project + +.. autoprogram-cliff:: openstack.image.v2 + :command: image member list diff --git a/doc/source/cli/command-objects/image-metadef.rst b/doc/source/cli/command-objects/image-metadef.rst new file mode 100644 index 0000000000..ed36d95f75 --- /dev/null +++ b/doc/source/cli/command-objects/image-metadef.rst @@ -0,0 +1,50 @@ +============= +image metadef +============= + +Image v2 + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef namespace create + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef namespace delete + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef namespace list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef namespace set + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef namespace show + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef resource type list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object create + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object show + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object delete + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object update + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef object property show + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef property create + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef property list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image metadef property show diff --git a/doc/source/cli/command-objects/image-task.rst b/doc/source/cli/command-objects/image-task.rst new file mode 100644 index 0000000000..0021192042 --- /dev/null +++ b/doc/source/cli/command-objects/image-task.rst @@ -0,0 +1,11 @@ +========== +image task +========== + +Image v2 + +.. autoprogram-cliff:: openstack.image.v2 + :command: image task list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image task show diff --git a/doc/source/cli/command-objects/image-v2.rst b/doc/source/cli/command-objects/image-v2.rst index 473b26d07b..4a2a4d0f90 100644 --- a/doc/source/cli/command-objects/image-v2.rst +++ b/doc/source/cli/command-objects/image-v2.rst @@ -1,6 +1,32 @@ -======== -image v2 -======== +===== +image +===== + +Image v2 + +.. autoprogram-cliff:: openstack.image.v2 + :command: image create + +.. autoprogram-cliff:: openstack.image.v2 + :command: image delete + +.. autoprogram-cliff:: openstack.image.v2 + :command: image list + +.. autoprogram-cliff:: openstack.image.v2 + :command: image save + +.. autoprogram-cliff:: openstack.image.v2 + :command: image set + +.. autoprogram-cliff:: openstack.image.v2 + :command: image unset + +.. autoprogram-cliff:: openstack.image.v2 + :command: image show + +.. autoprogram-cliff:: openstack.image.v2 + :command: image stage .. autoprogram-cliff:: openstack.image.v2 - :command: image * + :command: image import diff --git a/doc/source/cli/command-objects/limits.rst b/doc/source/cli/command-objects/limits.rst index 3a0f99b376..11d53802c6 100644 --- a/doc/source/cli/command-objects/limits.rst +++ b/doc/source/cli/command-objects/limits.rst @@ -4,7 +4,7 @@ limits The Compute and Block Storage APIs have resource usage limits. -Compute v2, Block Storage v1 +Block Storage v2, v3; Compute v2 .. autoprogram-cliff:: openstack.common diff --git a/doc/source/cli/command-objects/local-ip-association.rst b/doc/source/cli/command-objects/local-ip-association.rst new file mode 100644 index 0000000000..824ee4d0e6 --- /dev/null +++ b/doc/source/cli/command-objects/local-ip-association.rst @@ -0,0 +1,11 @@ +============================================= +Local IP Associations (local_ip_associations) +============================================= + +The resource lets users assign Local IPs to user Ports. +This is a sub-resource of the Local IP resource. + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: local ip association * diff --git a/doc/source/cli/command-objects/local-ip.rst b/doc/source/cli/command-objects/local-ip.rst new file mode 100644 index 0000000000..c8c5ab470d --- /dev/null +++ b/doc/source/cli/command-objects/local-ip.rst @@ -0,0 +1,12 @@ +===================== +Local IPs (local_ips) +===================== + +Extension that allows users to create a virtual IP that can later be assigned +to multiple ports/VMs (similar to anycast IP) and is guaranteed to only be +reachable within the same physical server/node boundaries + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: local ip * diff --git a/doc/source/cli/command-objects/network-l3-conntrack-helper.rst b/doc/source/cli/command-objects/network-l3-conntrack-helper.rst new file mode 100644 index 0000000000..badbab6337 --- /dev/null +++ b/doc/source/cli/command-objects/network-l3-conntrack-helper.rst @@ -0,0 +1,8 @@ +=========================== +network l3 conntrack helper +=========================== + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: network l3 conntrack helper * diff --git a/doc/source/cli/command-objects/network-trunk.rst b/doc/source/cli/command-objects/network-trunk.rst new file mode 100644 index 0000000000..98fd4b0c4b --- /dev/null +++ b/doc/source/cli/command-objects/network-trunk.rst @@ -0,0 +1,16 @@ +============= +network trunk +============= + +A **network trunk** is a container to group logical ports from different +networks and provide a single trunked vNIC for servers. It consists of +one parent port which is a regular VIF and multiple subports which allow +the server to connect to more networks. + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: network subport list + +.. autoprogram-cliff:: openstack.network.v2 + :command: network trunk * diff --git a/doc/source/cli/command-objects/project-cleanup.rst b/doc/source/cli/command-objects/project-cleanup.rst new file mode 100644 index 0000000000..e76e538948 --- /dev/null +++ b/doc/source/cli/command-objects/project-cleanup.rst @@ -0,0 +1,12 @@ +=============== +project cleanup +=============== + +Clean resources associated with a specific project based on OpenStackSDK +implementation + +Block Storage v2, v3; Compute v2; Network v2; DNS v2; Orchestrate v1 + + +.. autoprogram-cliff:: openstack.common + :command: project cleanup diff --git a/doc/source/cli/command-objects/project-purge.rst b/doc/source/cli/command-objects/project-purge.rst deleted file mode 100644 index 8f10a77452..0000000000 --- a/doc/source/cli/command-objects/project-purge.rst +++ /dev/null @@ -1,11 +0,0 @@ -============= -project purge -============= - -Clean resources associated with a specific project. - -Block Storage v1, v2; Compute v2; Image v1, v2 - - -.. autoprogram-cliff:: openstack.common - :command: project purge diff --git a/doc/source/cli/command-objects/quota.rst b/doc/source/cli/command-objects/quota.rst index cab1265240..59a8a9bb4e 100644 --- a/doc/source/cli/command-objects/quota.rst +++ b/doc/source/cli/command-objects/quota.rst @@ -5,7 +5,7 @@ quota Resource quotas appear in multiple APIs, OpenStackClient presents them as a single object with multiple properties. -Block Storage v1, v2, Compute v2, Network v2 +Block Storage v1, v3; Compute v2; Network v2 .. autoprogram-cliff:: openstack.common :command: quota * diff --git a/doc/source/cli/command-objects/role-assignment.rst b/doc/source/cli/command-objects/role-assignment.rst index b29f32c690..aa618d4dd3 100644 --- a/doc/source/cli/command-objects/role-assignment.rst +++ b/doc/source/cli/command-objects/role-assignment.rst @@ -4,103 +4,5 @@ role assignment Identity v2, v3 -role assignment list --------------------- - -List role assignments - -.. program:: role assignment list -.. code:: bash - - openstack role assignment list - [--role ] - [--role-domain ] - [--user ] - [--user-domain ] - [--group ] - [--group-domain ] - [--domain ] - [--project ] - [--project-domain ] - [--effective] - [--inherited] - [--names] - -.. option:: --role - - Role to filter (name or ID) - - .. versionadded:: 3 - -.. option:: --role-domain - - Domain the role belongs to (name or ID). - This can be used in case collisions between role names exist. - - .. versionadded:: 3 - -.. option:: --user - - User to filter (name or ID) - -.. option:: --user-domain - - Domain the user belongs to (name or ID). - This can be used in case collisions between user names exist. - - .. versionadded:: 3 - -.. option:: --group - - Group to filter (name or ID) - - .. versionadded:: 3 - -.. option:: --group-domain - - Domain the group belongs to (name or ID). - This can be used in case collisions between group names exist. - - .. versionadded:: 3 - -.. option:: --domain - - Domain to filter (name or ID) - - .. versionadded:: 3 - -.. option:: --project - - Project to filter (name or ID) - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - This can be used in case collisions between project names exist. - - .. versionadded:: 3 - -.. option:: --effective - - Returns only effective role assignments (defaults to False) - - .. versionadded:: 3 - -.. option:: --inherited - - Specifies if the role grant is inheritable to the sub projects - - .. versionadded:: 3 - -.. option:: --names - - Returns role assignments with names instead of IDs - -.. option:: --auth-user - - Returns role assignments for the authenticated user. - -.. option:: --auth-project - - Returns role assignments for the project to which the authenticated user - is scoped. +.. autoprogram-cliff:: openstack.identity.v3 + :command: role assignment list diff --git a/doc/source/cli/command-objects/router-ndp-proxy.rst b/doc/source/cli/command-objects/router-ndp-proxy.rst new file mode 100644 index 0000000000..26c7172623 --- /dev/null +++ b/doc/source/cli/command-objects/router-ndp-proxy.rst @@ -0,0 +1,12 @@ +================= +router ndp proxy +================= + +An **NDP proxy** publishes a internal IPv6 address to public network. With the +**NDP proxy**, the IPv6 address can be accessed from external. It is similar +to **Floating IP** of IPv4 in functionality. + +Network v2 + +.. autoprogram-cliff:: openstack.network.v2 + :command: router ndp proxy * diff --git a/doc/source/cli/command-objects/server-migration.rst b/doc/source/cli/command-objects/server-migration.rst index 6e2982cf26..9db58e3e46 100644 --- a/doc/source/cli/command-objects/server-migration.rst +++ b/doc/source/cli/command-objects/server-migration.rst @@ -9,4 +9,4 @@ supported: live migration, cold migration, resize and evacuation. Compute v2 .. autoprogram-cliff:: openstack.compute.v2 - :command: server migration list + :command: server migration * diff --git a/doc/source/cli/command-objects/volume-attachment.rst b/doc/source/cli/command-objects/volume-attachment.rst new file mode 100644 index 0000000000..5622444638 --- /dev/null +++ b/doc/source/cli/command-objects/volume-attachment.rst @@ -0,0 +1,8 @@ +================= +volume attachment +================= + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume attachment * diff --git a/doc/source/cli/command-objects/volume-backend.rst b/doc/source/cli/command-objects/volume-backend.rst index 4766ecabb2..f47efd1976 100644 --- a/doc/source/cli/command-objects/volume-backend.rst +++ b/doc/source/cli/command-objects/volume-backend.rst @@ -2,7 +2,7 @@ volume backend ============== -Block Storage v2 +Block Storage v2, v3 -.. autoprogram-cliff:: openstack.volume.v2 +.. autoprogram-cliff:: openstack.volume.v3 :command: volume backend * diff --git a/doc/source/cli/command-objects/volume-backup.rst b/doc/source/cli/command-objects/volume-backup.rst index 1c26921197..7b036ca0ce 100644 --- a/doc/source/cli/command-objects/volume-backup.rst +++ b/doc/source/cli/command-objects/volume-backup.rst @@ -2,8 +2,8 @@ volume backup ============= -Block Storage v1, v2 +Block Storage v2, v3 -.. autoprogram-cliff:: openstack.volume.v2 +.. autoprogram-cliff:: openstack.volume.v3 :command: volume backup * diff --git a/doc/source/cli/command-objects/volume-group-snapshot.rst b/doc/source/cli/command-objects/volume-group-snapshot.rst new file mode 100644 index 0000000000..02a33c1e3c --- /dev/null +++ b/doc/source/cli/command-objects/volume-group-snapshot.rst @@ -0,0 +1,8 @@ +===================== +volume group snapshot +===================== + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group snapshot * diff --git a/doc/source/cli/command-objects/volume-group-type.rst b/doc/source/cli/command-objects/volume-group-type.rst new file mode 100644 index 0000000000..edb88dc7b0 --- /dev/null +++ b/doc/source/cli/command-objects/volume-group-type.rst @@ -0,0 +1,8 @@ +================= +volume group type +================= + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group type * diff --git a/doc/source/cli/command-objects/volume-group.rst b/doc/source/cli/command-objects/volume-group.rst new file mode 100644 index 0000000000..50bc830f90 --- /dev/null +++ b/doc/source/cli/command-objects/volume-group.rst @@ -0,0 +1,23 @@ +============ +volume group +============ + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group create + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group delete + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group list + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group failover + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group set + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume group show diff --git a/doc/source/cli/command-objects/volume-host.rst b/doc/source/cli/command-objects/volume-host.rst index 350d6dec7c..acd0866356 100644 --- a/doc/source/cli/command-objects/volume-host.rst +++ b/doc/source/cli/command-objects/volume-host.rst @@ -2,51 +2,7 @@ volume host =========== -Block Storage v2 +Block Storage v2, v3 -volume host failover --------------------- - -Failover volume host to different backend - -.. program:: volume host failover -.. code:: bash - - openstack volume host failover - --volume-backend - - -.. option:: --volume-backend - - The ID of the volume backend replication - target where the host will failover to (required) - -.. _volume_host_failover-host-name: -.. describe:: - - Name of volume host - -volume host set ---------------- - -Set volume host properties - -.. program:: volume host set -.. code:: bash - - openstack volume host set - [--enable | --disable] - - -.. option:: --enable - - Thaw and enable the specified volume host. - -.. option:: --disable - - Freeze and disable the specified volume host - -.. _volume_host_set-host-name: -.. describe:: - - Name of volume host +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume host * diff --git a/doc/source/cli/command-objects/volume-message.rst b/doc/source/cli/command-objects/volume-message.rst new file mode 100644 index 0000000000..5b1a8acef2 --- /dev/null +++ b/doc/source/cli/command-objects/volume-message.rst @@ -0,0 +1,8 @@ +============== +volume message +============== + +Block Storage v3 + +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume message * diff --git a/doc/source/cli/command-objects/volume-qos.rst b/doc/source/cli/command-objects/volume-qos.rst index 8fdbc12284..82c4d540c7 100644 --- a/doc/source/cli/command-objects/volume-qos.rst +++ b/doc/source/cli/command-objects/volume-qos.rst @@ -2,165 +2,7 @@ volume qos ========== -Block Storage v1, v2 +Block Storage v2, v3 -volume qos associate --------------------- - -Associate a QoS specification to a volume type - -.. program:: volume qos associate -.. code:: bash - - openstack volume qos associate - - - -.. _volume_qos_associate: -.. describe:: - - QoS specification to modify (name or ID) - -.. describe:: - - Volume type to associate the QoS (name or ID) - -volume qos create ------------------ - -Create new QoS Specification - -.. program:: volume qos create -.. code:: bash - - openstack volume qos create - [--consumer ] - [--property [...] ] - - -.. option:: --consumer - - Consumer of the QoS. Valid consumers: 'front-end', 'back-end', 'both' (defaults to 'both') - -.. option:: --property - - Set a property on this QoS specification (repeat option to set multiple properties) - -.. _volume_qos_create-name: -.. describe:: - - New QoS specification name - -volume qos delete ------------------ - -Delete QoS specification - -.. program:: volume qos delete -.. code:: bash - - openstack volume qos delete - [--force] - [ ...] - -.. option:: --force - - Allow to delete in-use QoS specification(s) - -.. _volume_qos_delete-qos-spec: -.. describe:: - - QoS specification(s) to delete (name or ID) - -volume qos disassociate ------------------------ - -Disassociate a QoS specification from a volume type - -.. program:: volume qos disassociate -.. code:: bash - - openstack volume qos disassociate - --volume-type | --all - - -.. option:: --volume-type - - Volume type to disassociate the QoS from (name or ID) - -.. option:: --all - - Disassociate the QoS from every volume type - -.. _volume_qos_disassociate-qos-spec: -.. describe:: - - QoS specification to modify (name or ID) - -volume qos list ---------------- - -List QoS specifications - -.. program:: volume qos list -.. code:: bash - - openstack volume qos list - -volume qos set --------------- - -Set QoS specification properties - -.. program:: volume qos set -.. code:: bash - - openstack volume qos set - [--property [...] ] - - -.. option:: --property - - Property to add or modify for this QoS specification (repeat option to set multiple properties) - -.. _volume_qos_set-qos-spec: -.. describe:: - - QoS specification to modify (name or ID) - -volume qos show ---------------- - -Display QoS specification details - -.. program:: volume qos show -.. code:: bash - - openstack volume qos show - - -.. _volume_qos_show-qos-spec: -.. describe:: - - QoS specification to display (name or ID) - -volume qos unset ----------------- - -Unset QoS specification properties - -.. program:: volume qos unset -.. code:: bash - - openstack volume qos unset - [--property [...] ] - - -.. option:: --property - - Property to remove from QoS specification (repeat option to remove multiple properties) - -.. _volume_qos_unset-qos-spec: -.. describe:: - - QoS specification to modify (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume qos * diff --git a/doc/source/cli/command-objects/volume-service.rst b/doc/source/cli/command-objects/volume-service.rst index 0499fb9062..43d455ff5a 100644 --- a/doc/source/cli/command-objects/volume-service.rst +++ b/doc/source/cli/command-objects/volume-service.rst @@ -2,65 +2,7 @@ volume service ============== -Block Storage v1, v2 +Block Storage v2, v3 -volume service list -------------------- - -List volume service - -.. program:: volume service list -.. code:: bash - - openstack volume service list - [--host ] - [--service ] - [--long] - -.. option:: --host - - List services on specified host (name only) - -.. option:: --service - - List only specified service (name only) - -.. option:: --long - - List additional fields in output - -volume service set ------------------- - -Set volume service properties - -.. program:: volume service set -.. code:: bash - - openstack volume service set - [--enable | --disable] - [--disable-reason ] - - - -.. option:: --enable - - Enable volume service - -.. option:: --disable - - Disable volume service - -.. option:: --disable-reason - - Reason for disabling the service - (should be used with :option:`--disable` option) - -.. _volume_service_set-host: -.. describe:: - - Name of host - -.. describe:: - - Name of service (Binary name) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume service * diff --git a/doc/source/cli/command-objects/volume-snapshot.rst b/doc/source/cli/command-objects/volume-snapshot.rst index 21a8937018..e63e436dff 100644 --- a/doc/source/cli/command-objects/volume-snapshot.rst +++ b/doc/source/cli/command-objects/volume-snapshot.rst @@ -2,222 +2,7 @@ volume snapshot =============== -Block Storage v1, v2 +Block Storage v2, v3 -volume snapshot create ----------------------- - -Create new volume snapshot - -.. program:: volume snapshot create -.. code:: bash - - openstack volume snapshot create - [--volume ] - [--description ] - [--force] - [--property [...] ] - [--remote-source [...]] - - -.. option:: --volume - - Volume to snapshot (name or ID) (default is ) - -.. option:: --description - - Description of the snapshot - -.. option:: --force - - Create a snapshot attached to an instance. Default is False - -.. option:: --property - - Set a property to this snapshot (repeat option to set multiple properties) - - *Volume version 2 only* - -.. option:: --remote-source - - The attribute(s) of the exsiting remote volume snapshot - (admin required) (repeat option to specify multiple attributes) - e.g.: '--remote-source source-name=test_name --remote-source source-id=test_id' - - *Volume version 2 only* - -.. _volume_snapshot_create-snapshot-name: -.. describe:: - - Name of the new snapshot - -volume snapshot delete ----------------------- - -Delete volume snapshot(s) - -.. program:: volume snapshot delete -.. code:: bash - - openstack volume snapshot delete - [--force] - [ ...] - -.. option:: --force - - Attempt forced removal of snapshot(s), regardless of state (defaults to False) - -.. _volume_snapshot_delete-snapshot: -.. describe:: - - Snapshot(s) to delete (name or ID) - -volume snapshot list --------------------- - -List volume snapshots - -.. program:: volume snapshot list -.. code:: bash - - openstack volume snapshot list - [--all-projects] - [--project [--project-domain ]] - [--long] - [--limit ] - [--marker ] - [--name ] - [--status ] - [--volume ] - -.. option:: --all-projects - - Include all projects (admin only) - -.. option:: --project - - Filter results by project (name or ID) (admin only) - - *Volume version 2 only* - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - - This can be used in case collisions between project names exist. - - *Volume version 2 only* - -.. option:: --long - - List additional fields in output - -.. option:: --status - - Filters results by a status. - ('available', 'error', 'creating', 'deleting' or 'error_deleting') - -.. option:: --name - - Filters results by a name. - -.. option:: --volume - - Filters results by a volume (name or ID). - -.. option:: --limit - - Maximum number of snapshots to display - - *Volume version 2 only* - -.. option:: --marker - - The last snapshot ID of the previous page - - *Volume version 2 only* - -volume snapshot set -------------------- - -Set volume snapshot properties - -.. program:: volume snapshot set -.. code:: bash - - openstack volume snapshot set - [--name ] - [--description ] - [--no-property] - [--property [...] ] - [--state ] - - -.. option:: --name - - New snapshot name - -.. option:: --description - - New snapshot description - -.. option:: --no-property - - Remove all properties from :ref:`\ ` - (specify both :option:`--no-property` and :option:`--property` to - remove the current properties before setting new properties.) - -.. option:: --property - - Property to add or modify for this snapshot (repeat option to set multiple properties) - -.. option:: --state - - New snapshot state. - ("available", "error", "creating", "deleting", or "error_deleting") (admin only) - (This option simply changes the state of the snapshot in the database with - no regard to actual status, exercise caution when using) - - *Volume version 2 only* - -.. _volume_snapshot_set-snapshot: -.. describe:: - - Snapshot to modify (name or ID) - -volume snapshot show --------------------- - -Display volume snapshot details - -.. program:: volume snapshot show -.. code:: bash - - openstack volume snapshot show - - -.. _volume_snapshot_show-snapshot: -.. describe:: - - Snapshot to display (name or ID) - -volume snapshot unset ---------------------- - -Unset volume snapshot properties - -.. program:: volume snapshot unset -.. code:: bash - - openstack volume snapshot unset - [--property ] - - -.. option:: --property - - Property to remove from snapshot (repeat option to remove multiple properties) - -.. _volume_snapshot_unset-snapshot: -.. describe:: - - Snapshot to modify (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume snapshot * diff --git a/doc/source/cli/command-objects/volume-transfer-request.rst b/doc/source/cli/command-objects/volume-transfer-request.rst index 23cd3d3e1b..97dac02a0a 100644 --- a/doc/source/cli/command-objects/volume-transfer-request.rst +++ b/doc/source/cli/command-objects/volume-transfer-request.rst @@ -2,95 +2,7 @@ volume transfer request ======================= -Block Storage v1, v2 +Block Storage v2, v3 -volume transfer request accept ------------------------------- - -Accept volume transfer request - -.. program:: volume transfer request accept -.. code:: bash - - openstack volume transfer request accept - --auth-key - - -.. option:: --auth-key - - Volume transfer request authentication key - -.. _volume_transfer_request_accept: -.. describe:: - - Volume transfer request to accept (ID only) - - Non-admin users are only able to specify the transfer request by ID. - -volume transfer request create ------------------------------- - -Create volume transfer request - -.. program:: volume transfer request create -.. code:: bash - - openstack volume transfer request create - [--name ] - - -.. option:: --name - - New transfer request name (default to None) - -.. _volume_transfer_request_create-volume: -.. describe:: - - Volume to transfer (name or ID) - -volume transfer request delete ------------------------------- - -Delete volume transfer request(s) - -.. program:: volume transfer request delete -.. code:: bash - - openstack volume transfer request delete - [ ...] - -.. _volume_transfer_request_delete-transfer-request: -.. describe:: - - Volume transfer request(s) to delete (name or ID) - -volume transfer request list ----------------------------- - -Lists all volume transfer requests - -.. program:: volume transfer request list -.. code:: bash - - openstack volume transfer request list - --all-projects - -.. option:: --all-projects - - Include all projects (admin only) - -volume transfer request show ----------------------------- - -Show volume transfer request details - -.. program:: volume transfer request show -.. code:: bash - - openstack volume transfer request show - - -.. _volume_transfer_request_show-transfer-request: -.. describe:: - - Volume transfer request to display (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume transfer request * diff --git a/doc/source/cli/command-objects/volume-type.rst b/doc/source/cli/command-objects/volume-type.rst index 2b5aff9940..003ee67306 100644 --- a/doc/source/cli/command-objects/volume-type.rst +++ b/doc/source/cli/command-objects/volume-type.rst @@ -2,290 +2,7 @@ volume type =========== -Block Storage v1, v2 +Block Storage v2, v3 -volume type create ------------------- - -Create new volume type - -.. program:: volume type create -.. code:: bash - - openstack volume type create - [--description ] - [--public | --private] - [--property [...] ] - [--project ] - [--project-domain ] - [--encryption-provider ] - [--encryption-cipher ] - [--encryption-key-size ] - [--encryption-control-location ] - - -.. option:: --description - - Volume type description - - .. versionadded:: 2 - -.. option:: --public - - Volume type is accessible to the public - - .. versionadded:: 2 - -.. option:: --private - - Volume type is not accessible to the public - - .. versionadded:: 2 - -.. option:: --property - - Set a property on this volume type (repeat option to set multiple properties) - -.. option:: --project - - Allow to access private type (name or ID) - (Must be used with :option:`--private` option) - - *Volume version 2 only* - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - This can be used in case collisions between project names exist. - - *Volume version 2 only* - -.. option:: --encryption-provider - - Set the encryption provider format for this volume type - (e.g "luks" or "plain") (admin only) - - This option is required when setting encryption type of a volume. - Consider using other encryption options such as: :option:`--encryption-cipher`, - :option:`--encryption-key-size` and :option:`--encryption-control-location` - -.. option:: --encryption-cipher - - Set the encryption algorithm or mode for this volume type - (e.g "aes-xts-plain64") (admin only) - -.. option:: --encryption-key-size - - Set the size of the encryption key of this volume type - (e.g "128" or "256") (admin only) - -.. option:: --encryption-control-location - - Set the notional service where the encryption is performed - ("front-end" or "back-end") (admin only) - - The default value for this option is "front-end" when setting encryption type of - a volume. Consider using other encryption options such as: :option:`--encryption-cipher`, - :option:`--encryption-key-size` and :option:`--encryption-provider` - -.. _volume_type_create-name: -.. describe:: - - Volume type name - -volume type delete ------------------- - -Delete volume type(s) - -.. program:: volume type delete -.. code:: bash - - openstack volume type delete - [ ...] - -.. _volume_type_delete-volume-type: -.. describe:: - - Volume type(s) to delete (name or ID) - -volume type list ----------------- - -List volume types - -.. program:: volume type list -.. code:: bash - - openstack volume type list - [--long] - [--default | --public | --private] - [--encryption-type] - -.. option:: --long - - List additional fields in output - -.. option:: --public - - List only public types - - *Volume version 2 only* - -.. option:: --private - - List only private types (admin only) - - *Volume version 2 only* - -.. option:: --default - - List the default volume type - - *Volume version 2 only* - -.. option:: --encryption-type - - Display encryption information for each volume type (admin only) - -volume type set ---------------- - -Set volume type properties - -.. program:: volume type set -.. code:: bash - - openstack volume type set - [--name ] - [--description ] - [--property [...] ] - [--project ] - [--project-domain ] - [--encryption-provider ] - [--encryption-cipher ] - [--encryption-key-size ] - [--encryption-control-location ] - - -.. option:: --name - - Set volume type name - - .. versionadded:: 2 - -.. option:: --description - - Set volume type description - - .. versionadded:: 2 - -.. option:: --project - - Set volume type access to project (name or ID) (admin only) - - *Volume version 2 only* - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - This can be used in case collisions between project names exist. - -.. option:: --property - - Set a property on this volume type (repeat option to set multiple properties) - -.. option:: --encryption-provider - - Set the encryption provider format for this volume type - (e.g "luks" or "plain") (admin only) - - This option is required when setting encryption type of a volume for the first time. - Consider using other encryption options such as: :option:`--encryption-cipher`, - :option:`--encryption-key-size` and :option:`--encryption-control-location` - -.. option:: --encryption-cipher - - Set the encryption algorithm or mode for this volume type - (e.g "aes-xts-plain64") (admin only) - -.. option:: --encryption-key-size - - Set the size of the encryption key of this volume type - (e.g "128" or "256") (admin only) - -.. option:: --encryption-control-location - - Set the notional service where the encryption is performed - ("front-end" or "back-end") (admin only) - - The default value for this option is "front-end" when setting encryption type of - a volume for the first time. Consider using other encryption options such as: - :option:`--encryption-cipher`, :option:`--encryption-key-size` and :option:`--encryption-provider` - -.. _volume_type_set-volume-type: -.. describe:: - - Volume type to modify (name or ID) - -volume type show ----------------- - -Display volume type details - -.. program:: volume type show -.. code:: bash - - openstack volume type show - [--encryption-type] - - -.. option:: --encryption-type - - Display encryption information of this volume type (admin only) - -.. _volume_type_show-volume-type: -.. describe:: - - Volume type to display (name or ID) - -volume type unset ------------------ - -Unset volume type properties - -.. program:: volume type unset -.. code:: bash - - openstack volume type unset - [--property [...] ] - [--project ] - [--project-domain ] - [--encryption-type] - - -.. option:: --property - - Property to remove from volume type (repeat option to remove multiple properties) - -.. option:: --project - - Removes volume type access from project (name or ID) (admin only) - - *Volume version 2 only* - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - This can be used in case collisions between project names exist. - - *Volume version 2 only* - -.. option:: --encryption-type - - Remove the encryption type for this volume type (admin only) - -.. _volume_type_unset-volume-type: -.. describe:: - - Volume type to modify (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume type * diff --git a/doc/source/cli/command-objects/volume.rst b/doc/source/cli/command-objects/volume.rst index fc6188c0a8..337bb9fa2b 100644 --- a/doc/source/cli/command-objects/volume.rst +++ b/doc/source/cli/command-objects/volume.rst @@ -2,408 +2,33 @@ volume ====== -Block Storage v1, v2 +Block Storage v2, v3 -volume create -------------- +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume create -Create new volume +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume delete -.. program:: volume create -.. code:: bash +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume list - openstack volume create - [--size ] - [--type ] - [--image | --snapshot | --source ] - [--description ] - [--user ] - [--project ] - [--availability-zone ] - [--consistency-group ] - [--property [...] ] - [--hint [...] ] - [--multi-attach] - [--bootable | --non-bootable] - [--read-only | --read-write] - +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume migrate -.. option:: --size +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume set - Volume size in GB - (Required unless --snapshot or --source is specified) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume show -.. option:: --type +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume unset - Set the type of volume +Block Storage v3 - Select ```` from the available types as shown - by ``volume type list``. +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume summary -.. option:: --image - - Use ```` as source of volume (name or ID) - - This is commonly used to create a boot volume for a server. - -.. option:: --snapshot - - Use ```` as source of volume (name or ID) - -.. option:: --source - - Volume to clone (name or ID) - -.. option:: --description - - Volume description - -.. option:: --user - - Specify an alternate user (name or ID) - -.. option:: --project - - Specify an alternate project (name or ID) - -.. option:: --availability-zone - - Create volume in ```` - -.. option:: --consistency-group - - Consistency group where the new volume belongs to - -.. option:: --property - - Set a property on this volume (repeat option to set multiple properties) - -.. option:: --hint - - Arbitrary scheduler hint key-value pairs to help boot an instance - (repeat option to set multiple hints) - -.. option:: --multi-attach - - Allow volume to be attached more than once (default to False) - -.. option:: --bootable - - Mark volume as bootable - -.. option:: --non-bootable - - Mark volume as non-bootable (default) - -.. option:: --read-only - - Set volume to read-only access mode - -.. option:: --read-write - - Set volume to read-write access mode (default) - -.. _volume_create-name: -.. describe:: - - Volume name - -The :option:`--project` and :option:`--user` options are typically only -useful for admin users, but may be allowed for other users depending on -the policy of the cloud and the roles granted to the user. - -volume delete -------------- - -Delete volume(s) - -.. program:: volume delete -.. code:: bash - - openstack volume delete - [--force | --purge] - [ ...] - -.. option:: --force - - Attempt forced removal of volume(s), regardless of state (defaults to False) - -.. option:: --purge - - Remove any snapshots along with volume(s) (defaults to False) - - *Volume version 2 only* - -.. _volume_delete-volume: -.. describe:: - - Volume(s) to delete (name or ID) - -volume list ------------ - -List volumes - -.. program:: volume list -.. code:: bash - - openstack volume list - [--project [--project-domain ]] - [--user [--user-domain ]] - [--name ] - [--status ] - [--all-projects] - [--long] - [--limit ] - [--marker ] - -.. option:: --project - - Filter results by ```` (name or ID) (admin only) - - *Volume version 2 only* - -.. option:: --project-domain - - Domain the project belongs to (name or ID). - - This can be used in case collisions between project names exist. - - *Volume version 2 only* - -.. option:: --user - - Filter results by ```` (name or ID) (admin only) - - *Volume version 2 only* - -.. option:: --user-domain - - Domain the user belongs to (name or ID). - - This can be used in case collisions between user names exist. - - *Volume version 2 only* - -.. option:: --name - - Filter results by volume name - -.. option:: --status - - Filter results by status - -.. option:: --all-projects - - Include all projects (admin only) - -.. option:: --long - - List additional fields in output - -.. option:: --limit - - Maximum number of volumes to display - -.. option:: --marker - - The last volume ID of the previous page - - *Volume version 2 only* - -volume migrate --------------- - -Migrate volume to a new host - -.. program:: volume migrate -.. code:: bash - - openstack volume migrate - --host - [--force-host-copy] - [--lock-volume] - - -.. option:: --host - - Destination host (takes the form: host@backend-name#pool) (required) - -.. option:: --force-host-copy - - Enable generic host-based force-migration, - which bypasses driver optimizations - -.. option:: --lock-volume - - If specified, the volume state will be locked and will not allow - a migration to be aborted (possibly by another operation) - - *Volume version 2 only* - -.. _volume_migrate-volume: -.. describe:: - - Volume to migrate (name or ID) - -volume set ----------- - -Set volume properties - -.. program:: volume set -.. code:: bash - - openstack volume set - [--name ] - [--size ] - [--description ] - [--no-property] - [--property [...] ] - [--image-property [...] ] - [--state ] - [--attached | --detached ] - [--type ] - [--retype-policy ] - [--bootable | --non-bootable] - [--read-only | --read-write] - - -.. option:: --name - - New volume name - -.. option:: --size - - Extend volume size in GB - -.. option:: --description - - New volume description - -.. option:: --no-property - - Remove all properties from :ref:`\ ` - (specify both :option:`--no-property` and :option:`--property` to - remove the current properties before setting new properties.) - -.. option:: --property - - Set a property on this volume (repeat option to set multiple properties) - -.. option:: --type - - New volume type (name or ID) - - *Volume version 2 only* - -.. option:: --retype-policy - - Migration policy while re-typing volume - ("never" or "on-demand", default is "never" ) - (available only when :option:`--type` option is specified) - - *Volume version 2 only* - -.. option:: --bootable - - Mark volume as bootable - -.. option:: --non-bootable - - Mark volume as non-bootable - -.. option:: --read-only - - Set volume to read-only access mode - -.. option:: --read-write - - Set volume to read-write access mode - -.. option:: --image-property - - Set an image property on this volume - (repeat option to set multiple image properties) - - Image properties are copied along with the image when creating a volume - using ``--image``. Note that these properties are immutable on the image - itself, this option updates the copy attached to this volume. - - *Volume version 2 only* - -.. option:: --state - - New volume state - ("available", "error", "creating", "deleting", "in-use", - "attaching", "detaching", "error_deleting" or "maintenance") (admin only) - (This option simply changes the state of the volume in the database with - no regard to actual status, exercise caution when using) - - *Volume version 2 only* - -.. option:: --attached - - Set volume attachment status to "attached" (admin only) - (This option simply changes the state of the volume in the database with - no regard to actual status, exercise caution when using) - - *Volume version 2 only* - -.. option:: --deattach - - Set volume attachment status to "detached" (admin only) - (This option simply changes the state of the volume in the database with - no regard to actual status, exercise caution when using) - - *Volume version 2 only* - -.. _volume_set-volume: -.. describe:: - - Volume to modify (name or ID) - -volume show ------------ - -Show volume details - -.. program:: volume show -.. code:: bash - - openstack volume show - - -.. _volume_show-volume: -.. describe:: - - Volume to display (name or ID) - -volume unset ------------- - -Unset volume properties - -.. program:: volume unset -.. code:: bash - - openstack volume unset - [--property ] - [--image-property ] - - -.. option:: --property - - Remove a property from volume (repeat option to remove multiple properties) - -.. option:: --image-property - - Remove an image property from volume - (repeat option to remove multiple image properties) - - *Volume version 2 only* - -.. _volume_unset-volume: -.. describe:: - - Volume to modify (name or ID) +.. autoprogram-cliff:: openstack.volume.v3 + :command: volume revert diff --git a/doc/source/cli/commands.rst b/doc/source/cli/commands.rst index 0dfac00bdc..653e2a50bd 100644 --- a/doc/source/cli/commands.rst +++ b/doc/source/cli/commands.rst @@ -76,6 +76,8 @@ referring to both Compute and Volume quotas. * ``address scope``: (**Network**) a scope of IPv4 or IPv6 addresses * ``aggregate``: (**Compute**) a grouping of compute hosts * ``availability zone``: (**Compute**, **Network**, **Volume**) a logical partition of hosts or block storage or network services +* ``block storage cluster``: (**Volume**) clusters of volume services +* ``block storage resource filter``: (**Volume**) filters for volume service resources * ``catalog``: (**Identity**) service catalog * ``command``: (**Internal**) installed commands in the OSC process * ``compute agent``: (**Compute**) a cloud Compute agent available to a hypervisor @@ -153,12 +155,17 @@ referring to both Compute and Volume quotas. * ``user``: (**Identity**) individual cloud resources users * ``user role``: (**Identity**) roles assigned to a user * ``volume``: (**Volume**) block volumes +* ``volume attachment``: (**Volume**) an attachment of a volumes to a server * ``volume backup``: (**Volume**) backup for volumes -* ``volume backend capability``: (**volume**) volume backend storage capabilities -* ``volume backend pool``: (**volume**) volume backend storage pools +* ``volume backend capability``: (**Volume**) volume backend storage capabilities +* ``volume backend pool``: (**Volume**) volume backend storage pools * ``volume backup record``: (**Volume**) volume record that can be imported or exported -* ``volume backend``: (**volume**) volume backend storage +* ``volume backend``: (**Volume**) volume backend storage +* ``volume group``: (**Volume**) group of volumes +* ``volume group snapshot``: (**Volume**) a point-in-time copy of a volume group +* ``volume group type``: (**Volume**) deployment-specific types of volumes groups available * ``volume host``: (**Volume**) the physical computer for volumes +* ``volume message``: (**Volume**) volume API internal messages detailing volume failure messages * ``volume qos``: (**Volume**) quality-of-service (QoS) specification for volumes * ``volume snapshot``: (**Volume**) a point-in-time copy of a volume * ``volume type``: (**Volume**) deployment-specific types of volumes available @@ -184,23 +191,14 @@ conflicts when creating new plugins. For a complete list check out * ``appcontainer service``: (**Application Container (Zun)**) * ``baremetal``: (**Baremetal (Ironic)**) * ``claim``: (**Messaging (Zaqar)**) -* ``cluster``: (**Clustering (Senlin)**) -* ``cluster action``: (**Clustering (Senlin)**) -* ``cluster event``: (**Clustering (Senlin)**) -* ``cluster members``: (**Clustering (Senlin)**) -* ``cluster node``: (**Clustering (Senlin)**) -* ``cluster policy``: (**Clustering (Senlin)**) -* ``cluster policy binding``: (**Clustering (Senlin)**) -* ``cluster policy type``: (**Clustering (Senlin)**) -* ``cluster profile``: (**Clustering (Senlin)**) -* ``cluster profile type``: (**Clustering (Senlin)**) -* ``cluster receiver``: (**Clustering (Senlin)**) +* ``coe ca``: (**Container Orchestration Engine (Magnum)**) +* ``coe cluster``: (**Container Orchestration Engine (Magnum)**) +* ``coe cluster template``: (**Container Orchestration Engine (Magnum)**) +* ``coe quotas``: (**Container Orchestration Engine (Magnum)**) +* ``coe service``: (**Container Orchestration Engine (Magnum)**) +* ``coe stats``: (**Container Orchestration Engine (Magnum)**) * ``cron trigger``: (**Workflow Engine (Mistral)**) * ``database flavor``: (**Database (Trove)**) -* ``dataprocessing data source``: (**Data Processing (Sahara)**) -* ``dataprocessing image``: (**Data Processing (Sahara)**) -* ``dataprocessing image tags``: (**Data Processing (Sahara)**) -* ``dataprocessing plugin``: (**Data Processing (Sahara)**) * ``loadbalancer``: (**Load Balancer (Octavia)**) * ``loadbalancer healthmonitor``: (**Load Balancer (Octavia)**) * ``loadbalancer l7policy``: (**Load Balancer (Octavia)**) @@ -219,13 +217,35 @@ conflicts when creating new plugins. For a complete list check out * ``ptr record``: (**DNS (Designate)**) * ``queue``: (**Messaging (Zaqar)**) * ``recordset``: (**DNS (Designate)**) -* ``rsd``: (**Disaggregated Hardware Resource Management (RSD)**) -* ``search`` (**Search (Searchlight)**) -* ``search facet`` (**Search (Searchlight)**) -* ``search resource type`` (**Search (Searchlight)**) * ``secret``: (**Key Manager (Barbican)**) * ``secret container``: (**Key Manager (Barbican)**) * ``secret order``: (**Key Manager (Barbican)**) +* ``share``: (**Share (Manila)**) +* ``share access``: (**Share (Manila)**) +* ``share availability zone``: (**Share (Manila)**) +* ``share backup``: (**Share (Manila)**) +* ``share export location``: (**Share (Manila)**) +* ``share group``: (**Share (Manila)**) +* ``share group snapshot``: (**Share (Manila)**) +* ``share group type``: (**Share (Manila)**) +* ``share instance``: (**Share (Manila)**) +* ``share limits show``: (**Share (Manila)**) +* ``share lock``: (**Share (Manila)**) +* ``share message``: (**Share (Manila)**) +* ``share migration``: (**Share (Manila)**) +* ``share network``: (**Share (Manila)**) +* ``share quota``: (**Share (Manila)**) +* ``share replica``: (**Share (Manila)**) +* ``share security service``: (**Share (Manila)**) +* ``share server``: (**Share (Manila)**) +* ``share server migration``: (**Share (Manila)**) +* ``share service``: (**Share (Manila)**) +* ``share snapshot``: (**Share (Manila)**) +* ``share snapshot access``: (**Share (Manila)**) +* ``share snapshot export location``: (**Share (Manila)**) +* ``share snapshot instance``: (**Share (Manila)**) +* ``share transfer``: (**Share (Manila)**) +* ``share type``: (**Share (Manila)**) * ``software config``: (**Orchestration (Heat)**) * ``software deployment``: (**Orchestration (Heat)**) * ``stack event``: (**Orchestration (Heat)**) @@ -269,7 +289,7 @@ Those actions with an opposite action are noted in parens if applicable. live server migration if possible * ``pause`` (``unpause``) - stop one or more servers and leave them in memory * ``query`` - Query resources by Elasticsearch query string or json format DSL. -* ``purge`` - clean resources associated with a specific project +* ``cleanup`` - flexible clean resources associated with a specific project * ``reboot`` - forcibly reboot a server * ``rebuild`` - rebuild a server using (most of) the same arguments as in the original create * ``remove`` (``add``) - remove an object from a group of objects diff --git a/doc/source/cli/data/cinder.csv b/doc/source/cli/data/cinder.csv index 22fb84cffa..1b199400b4 100644 --- a/doc/source/cli/data/cinder.csv +++ b/doc/source/cli/data/cinder.csv @@ -1,104 +1,146 @@ -absolute-limits,limits show --absolute,Lists absolute limits for a user. -availability-zone-list,availability zone list --volume,Lists all availability zones. -backup-create,volume backup create,Creates a volume backup. -backup-delete,volume backup delete,Removes a backup. -backup-export,volume backup record export,Export backup metadata record. -backup-import,volume backup record import,Import backup metadata record. -backup-list,volume backup list,Lists all backups. -backup-reset-state,volume backup set --state,Explicitly updates the backup state. -backup-restore,volume backup restore,Restores a backup. -backup-show,volume backup show,Show backup details. -cgsnapshot-create,consistency group snapshot create,Creates a cgsnapshot. -cgsnapshot-delete,consistency group snapshot delete,Removes one or more cgsnapshots. -cgsnapshot-list,consistency group snapshot list,Lists all cgsnapshots. -cgsnapshot-show,consistency group snapshot show,Shows cgsnapshot details. -consisgroup-create,consistency group create,Creates a consistency group. -consisgroup-create-from-src,consistency group create --consistency-group-snapshot,Creates a consistency group from a cgsnapshot or a source CG -consisgroup-delete,consistency group delete,Removes one or more consistency groups. -consisgroup-list,consistency group list,Lists all consistencygroups. -consisgroup-show,consistency group show,Shows details of a consistency group. -consisgroup-update,consistency group set,Updates a consistencygroup. -create,volume create,Creates a volume. -credentials,WONTFIX,Shows user credentials returned from auth. -delete,volume delete,Removes one or more volumes. -encryption-type-create,volume type create --encryption-provider --enc..,Creates encryption type for a volume type. Admin only. -encryption-type-delete,volume type delete,Deletes encryption type for a volume type. Admin only. -encryption-type-list,volume type list --encryption-type,Shows encryption type details for volume types. Admin only. -encryption-type-show,volume type list --encryption-show,Shows encryption type details for volume type. Admin only. -encryption-type-update,volume type set --encryption-provider --enc..,Update encryption type information for a volume type (Admin Only). -endpoints,catalog list,Discovers endpoints registered by authentication service. -extend,volume set --size,Attempts to extend size of an existing volume. -extra-specs-list,volume type list --long,Lists current volume types and extra specs. -failover-host,volume host failover,Failover a replicating cinder-volume host. -force-delete,volume delete --force,"Attempts force-delete of volume, regardless of state." -freeze-host,volume host set --disable,Freeze and disable the specified cinder-volume host. -get-capabilities,volume backend capability show,Show capabilities of a volume backend. Admin only. -get-pools,volume backend pool list,Show pool information for backends. Admin only. -image-metadata,volume set --image-property,Sets or deletes volume image metadata. -image-metadata-show,volume show,Shows volume image metadata. -list,volume list,Lists all volumes. -manage,volume create --remote-source k=v,Manage an existing volume. -metadata,volume set --property k=v / volume unset --property k,Sets or deletes volume metadata. -metadata-show,volume show,Shows volume metadata. -metadata-update-all,volume set --property k=v,Updates volume metadata. -migrate,volume migrate --host --force-copy --lock-volume ,Migrates volume to a new host. -qos-associate,volume qos associate,Associates qos specs with specified volume type. -qos-create,volume qos create,Creates a qos specs. -qos-delete,volume qos delete,Deletes a specified qos specs. -qos-disassociate,volume qos disassociate,Disassociates qos specs from specified volume type. -qos-disassociate-all,volume qos disassociate --all,Disassociates qos specs from all associations. -qos-get-association,volume qos show,Gets all associations for specified qos specs. -qos-key,volume qos set --property k=v / volume qos unset --property k,Sets or unsets specifications for a qos spec -qos-list,volume qos list,Lists qos specs. -qos-show,volume qos show,Shows a specified qos specs. -quota-class-show,quota show --class,Lists quotas for a quota class. -quota-class-update,quota set --class,Updates quotas for a quota class. -quota-defaults,quota show --default,Lists default quotas for a tenant. -quota-delete,,Delete the quotas for a tenant. -quota-show,quota show,Lists quotas for a tenant. -quota-update,quota set,Updates quotas for a tenant. -quota-usage,,Lists quota usage for a tenant. -rate-limits,limits show --rate,Lists rate limits for a user. -readonly-mode-update,volume set --read-only-mode | --read-write-mode,Updates volume read-only access-mode flag. -rename,volume set --name,Renames a volume. -replication-promote,WONTFIX,Promote a secondary volume to primary for a relationship -replication-reenable,WONTFIX,Sync the secondary volume with primary for a relationship -reset-state,volume set --state,Explicitly updates the volume state. -retype,volume type set --type,Changes the volume type for a volume. -service-disable,volume service set --disable,Disables the service. -service-enable,volume service set --enable,Enables the service. -service-list,volume service list,Lists all services. Filter by host and service binary. -set-bootable,volume set --bootable / --not-bootable,Update bootable status of a volume. -show,volume show,Shows volume details. -snapshot-create,snapshot create,Creates a snapshot. -snapshot-delete,snapshot delete,Remove one or more snapshots. -snapshot-list,snapshot list,Lists all snapshots. -snapshot-manage,volume snapshot create --remote-source ,Manage an existing snapshot. -snapshot-metadata,snapshot set --property k=v / snapshot unset --property k,Sets or deletes snapshot metadata. -snapshot-metadata-show,snapshot show,Shows snapshot metadata. -snapshot-metadata-update-all,snapshot set --property k=v,Updates snapshot metadata. -snapshot-rename,snapshot set --name,Renames a snapshot. -snapshot-reset-state,snapshot set --state,Explicitly updates the snapshot state. -snapshot-show,snapshot show,Shows snapshot details. -snapshot-unmanage,volume snapshot delete --remote,Stop managing a snapshot. -thaw-host,volume host set --enable,Thaw and enable the specified cinder-volume host. -transfer-accept,volume transfer accept,Accepts a volume transfer. -transfer-create,volume transfer create,Creates a volume transfer. -transfer-delete,volume transfer delete,Undoes a transfer. -transfer-list,volume transfer list,Lists all transfers. -transfer-show,volume transfer show,Show transfer details. -type-access-add,volume type set --project,Adds volume type access for the given project. -type-access-list,volume type show,Print access information about the given volume type. -type-access-remove,volume type unset --project,Removes volume type access for the given project. -type-create,volume type create,Creates a volume type. -type-default,volume type list --default,List the default volume type. -type-delete,volume type delete,Deletes a specified volume type. -type-key,volume type set --property k=v / volume type unset --property k,Sets or unsets extra_spec for a volume type. -type-list,volume type list,Lists available 'volume types'. -type-show,volume type show,Show volume type details. -type-update,volume type set,"Updates volume type name, description, and/or is_public." -unmanage,volume delete --remote,Stop managing a volume. -upload-to-image,image create --volume,Uploads volume to Image Service as an image. -bash-completion,complete,Prints arguments for bash_completion. -help,help,Shows help about this program or one of its subcommands. -list-extensions,extension list --volume,Lists all available os-api extensions. +absolute-limits,limits show --absolute,Lists absolute limits for a user. +api-version,openstack versions show --service volume,Display the server API version information. +availability-zone-list,availability zone list --volume,Lists all availability zones. +attachment-complete,volume attachment complete,Complete an attachment for a cinder volume. (Supported by API versions 3.44 - 3.latest) +attachment-create,volume attachment create,Create an attachment for a cinder volume. (Supported by API versions 3.27 - 3.latest) +attachment-delete,volume attachment delete,Delete an attachment for a cinder volume. (Supported by API versions 3.27 - 3.latest) +attachment-list,volume attachment list,Lists all attachments. (Supported by API versions 3.27 - 3.latest) +attachment-show,volume attachment show,Show detailed information for attachment. (Supported by API versions 3.27 - 3.latest) +attachment-update,volume attachment update,Update an attachment for a cinder volume. (Supported by API versions 3.27 - 3.latest) +backup-create,volume backup create,Creates a volume backup. +backup-delete,volume backup delete,Removes a backup. +backup-export,volume backup record export,Export backup metadata record. +backup-import,volume backup record import,Import backup metadata record. +backup-list,volume backup list,Lists all backups. +backup-reset-state,volume backup set --state,Explicitly updates the backup state. +backup-restore,volume backup restore,Restores a backup. +backup-show,volume backup show,Show backup details. +backup-update,volume backup set,Updates a backup. (Supported by API versions 3.9 - 3.latest) +cgsnapshot-create,consistency group snapshot create,Creates a cgsnapshot. +cgsnapshot-delete,consistency group snapshot delete,Removes one or more cgsnapshots. +cgsnapshot-list,consistency group snapshot list,Lists all cgsnapshots. +cgsnapshot-show,consistency group snapshot show,Shows cgsnapshot details. +cluster-disable,block storage cluster set --disable,Disables clustered services. (Supported by API versions 3.7 - 3.latest) +cluster-enable,block storage cluster set --enable,Enables clustered services. (Supported by API versions 3.7 - 3.latest) +cluster-list,block storage cluster list,Lists clustered services with optional filtering. (Supported by API versions 3.7 - 3.latest) +cluster-show,block storage cluster show,Show detailed information on a clustered service. (Supported by API versions 3.7 - 3.latest) +consisgroup-create,consistency group create,Creates a consistency group. +consisgroup-create-from-src,consistency group create --consistency-group-snapshot,Creates a consistency group from a cgsnapshot or a source CG +consisgroup-delete,consistency group delete,Removes one or more consistency groups. +consisgroup-list,consistency group list,Lists all consistencygroups. +consisgroup-show,consistency group show,Shows details of a consistency group. +consisgroup-update,consistency group set,Updates a consistencygroup. +create,volume create,Creates a volume. +delete,volume delete,Removes one or more volumes. +encryption-type-create,volume type create --encryption-provider --enc..,Creates encryption type for a volume type. Admin only. +encryption-type-delete,volume type delete,Deletes encryption type for a volume type. Admin only. +encryption-type-list,volume type list --encryption-type,Shows encryption type details for volume types. Admin only. +encryption-type-show,volume type list --encryption-show,Shows encryption type details for volume type. Admin only. +encryption-type-update,volume type set --encryption-provider --enc..,Update encryption type information for a volume type (Admin Only). +extend,volume set --size,Attempts to extend size of an existing volume. +extra-specs-list,volume type list --long,Lists current volume types and extra specs. +failover-host,volume host failover,Failover a replicating cinder-volume host. +force-delete,volume delete --force,"Attempts force-delete of volume regardless of state." +freeze-host,volume host set --disable,Freeze and disable the specified cinder-volume host. +get-capabilities,volume backend capability show,Show capabilities of a volume backend. Admin only. +get-pools,volume backend pool list,Show pool information for backends. Admin only. +group-create,volume group create,Creates a group. (Supported by API versions 3.13 - 3.latest) +group-create-from-src,volume group create [--source-group|--group-snapshot],Creates a group from a group snapshot or a source group. (Supported by API versions 3.14 - 3.latest) +group-delete,volume group delete,Removes one or more groups. (Supported by API versions 3.13 - 3.latest) +group-disable-replication,volume group set --disable-replication,Disables replication for group. (Supported by API versions 3.38 - 3.latest) +group-enable-replication,volume group set --enable-replication,Enables replication for group. (Supported by API versions 3.38 - 3.latest) +group-failover-replication,volume group failover,Fails over replication for group. (Supported by API versions 3.38 - 3.latest) +group-list,volume group list,Lists all groups. (Supported by API versions 3.13 - 3.latest) +group-list-replication-targets,volume group list --replication-targets,Lists replication targets for group. (Supported by API versions 3.38 - 3.latest) +group-show,volume group show,Shows details of a group. (Supported by API versions 3.13 - 3.latest) +group-snapshot-create,volume group snapshot create,Creates a group snapshot. (Supported by API versions 3.14 - 3.latest) +group-snapshot-delete,volume group snapshot delete,Removes one or more group snapshots. (Supported by API versions 3.14 - 3.latest) +group-snapshot-list,volume group snapshot list,Lists all group snapshots. (Supported by API versions 3.14 - 3.latest) +group-snapshot-show,volume group snapshot show,Shows group snapshot details. (Supported by API versions 3.14 - 3.latest) +group-specs-list,volume group type list,Lists current group types and specs. (Supported by API versions 3.11 - 3.latest) +group-type-create,volume group type create,Creates a group type. (Supported by API versions 3.11 - 3.latest) +group-type-default,volume group type list --default,List the default group type. (Supported by API versions 3.11 - 3.latest) +group-type-delete,volume group type delete,Deletes group type or types. (Supported by API versions 3.11 - 3.latest) +group-type-key,volume group type set,Sets or unsets group_spec for a group type. (Supported by API versions 3.11 - 3.latest) +group-type-list,volume group type set,Lists available 'group types'. (Admin only will see private types) (Supported by API versions 3.11 - 3.latest) +group-type-show,volume group type show,Show group type details. (Supported by API versions 3.11 - 3.latest) +group-type-update,volume group type set,Updates group type name description and/or is_public. (Supported by API versions 3.11 - 3.latest) +group-update,volume group set,Updates a group. (Supported by API versions 3.13 - 3.latest) +image-metadata,volume set --image-property,Sets or deletes volume image metadata. +image-metadata-show,volume show,Shows volume image metadata. +list,volume list,Lists all volumes. +list-filters,block storage resource filter list,List enabled filters. (Supported by API versions 3.33 - 3.latest) +manage,volume create --remote-source k=v,Manage an existing volume. +manageable-list,block storage volume manageable list,Lists all manageable volumes. (Supported by API versions 3.8 - 3.latest) +message-delete,volume message delete,Removes one or more messages. (Supported by API versions 3.3 - 3.latest) +message-list,volume message list,Lists all messages. (Supported by API versions 3.3 - 3.latest) +message-show,volume message show,Shows message details. (Supported by API versions 3.3 - 3.latest) +metadata,volume set --property k=v / volume unset --property k,Sets or deletes volume metadata. +metadata-show,volume show,Shows volume metadata. +metadata-update-all,volume set --property k=v,Updates volume metadata. +migrate,volume migrate --host --force-copy --lock-volume ,Migrates volume to a new host. +qos-associate,volume qos associate,Associates qos specs with specified volume type. +qos-create,volume qos create,Creates a qos specs. +qos-delete,volume qos delete,Deletes a specified qos specs. +qos-disassociate,volume qos disassociate,Disassociates qos specs from specified volume type. +qos-disassociate-all,volume qos disassociate --all,Disassociates qos specs from all associations. +qos-get-association,volume qos show,Gets all associations for specified qos specs. +qos-key,volume qos set --property k=v / volume qos unset --property k,Sets or unsets specifications for a qos spec +qos-list,volume qos list,Lists qos specs. +qos-show,volume qos show,Shows a specified qos specs. +quota-class-show,quota show --class,Lists quotas for a quota class. +quota-class-update,quota set --class,Updates quotas for a quota class. +quota-defaults,quota show --default,Lists default quotas for a tenant. +quota-delete,quota delete --volume,Delete the quotas for a tenant. +quota-show,quota show,Lists quotas for a tenant. +quota-update,quota set,Updates quotas for a tenant. +quota-usage,quota show --usage,Lists quota usage for a tenant. +rate-limits,limits show --rate,Lists rate limits for a user. +readonly-mode-update,volume set --read-only-mode | --read-write-mode,Updates volume read-only access-mode flag. +rename,volume set --name,Renames a volume. +reset-state,volume set --state,Explicitly updates the volume state. +retype,volume type set --type,Changes the volume type for a volume. +revert-to-snapshot,volume revert,Revert a volume to the specified snapshot. (Supported by API versions 3.40 - 3.latest) +service-disable,volume service set --disable,Disables the service. +service-enable,volume service set --enable,Enables the service. +service-get-log,block storage log level list,(Supported by API versions 3.32 - 3.latest) +service-list,volume service list,Lists all services. Filter by host and service binary. +service-set-log,block storage log level set,(Supported by API versions 3.32 - 3.latest) +set-bootable,volume set --bootable / --not-bootable,Update bootable status of a volume. +show,volume show,Shows volume details. +snapshot-create,volume snapshot create,Creates a snapshot. +snapshot-delete,volume snapshot delete,Remove one or more snapshots. +snapshot-list,volume snapshot list,Lists all snapshots. +snapshot-manage,volume snapshot create --remote-source ,Manage an existing snapshot. +snapshot-manageable-list,block storage snapshot manageable list,Lists all manageable snapshots. (Supported by API versions 3.8 - 3.latest) +snapshot-metadata,volume snapshot set --property k=v / snapshot unset --property k,Sets or deletes snapshot metadata. +snapshot-metadata-show,volume snapshot show,Shows snapshot metadata. +snapshot-metadata-update-all,volume snapshot set --property k=v,Updates snapshot metadata. +snapshot-rename,volume snapshot set --name,Renames a snapshot. +snapshot-reset-state,volume snapshot set --state,Explicitly updates the snapshot state. +snapshot-show,volume snapshot show,Shows snapshot details. +snapshot-unmanage,volume snapshot delete --remote,Stop managing a snapshot. +summary,volume summary,Get volumes summary. (Supported by API versions 3.12 - 3.latest) +thaw-host,volume host set --enable,Thaw and enable the specified cinder-volume host. +transfer-accept,volume transfer accept,Accepts a volume transfer. +transfer-create,volume transfer create,Creates a volume transfer. +transfer-delete,volume transfer delete,Undoes a transfer. +transfer-list,volume transfer list,Lists all transfers. +transfer-show,volume transfer show,Show transfer details. +type-access-add,volume type set --project,Adds volume type access for the given project. +type-access-list,volume type show,Print access information about the given volume type. +type-access-remove,volume type unset --project,Removes volume type access for the given project. +type-create,volume type create,Creates a volume type. +type-default,volume type list --default,List the default volume type. +type-delete,volume type delete,Deletes a specified volume type. +type-key,volume type set --property k=v / volume type unset --property k,Sets or unsets extra_spec for a volume type. +type-list,volume type list,Lists available 'volume types'. +type-show,volume type show,Show volume type details. +type-update,volume type set,"Updates volume type name description and/or is_public." +unmanage,volume delete --remote,Stop managing a volume. +upload-to-image,image create --volume,Uploads volume to Image Service as an image. +version-list,versions show --service block-storage,List all API versions. (Supported by API versions 3.0 - 3.latest) +work-cleanup,block storage cleanup,Request cleanup of services with optional filtering. (Supported by API versions 3.24 - 3.latest) +bash-completion,complete,Prints arguments for bash_completion. +help,help,Shows help about this program or one of its subcommands. +list-extensions,extension list --volume,Lists all available os-api extensions. diff --git a/doc/source/cli/data/glance.csv b/doc/source/cli/data/glance.csv index 994a8fdaae..f978962274 100644 --- a/doc/source/cli/data/glance.csv +++ b/doc/source/cli/data/glance.csv @@ -1,24 +1,67 @@ +cache-clear,cached image clear,"Clear all images from cache, queue or both." +cache-delete,cached image delete,Delete image from cache/caching queue. +cache-list,cached image list,Get cache state. +cache-queue,cached image queue,Queue image(s) for caching. explain,WONTFIX,Describe a specific model. image-create,image create,Create a new image. +image-create-via-import, image create --import,"EXPERIMENTAL: Create a new image via image import using glance-direct import method. Missing support for web-download, copy-image and glance-download import methods. The OSC command is also missing support for importing image to specified store as well as all stores (--store, --stores, --all-stores) and skip or stop processing if import fails to one of the store (--allow-failure)" image-deactivate,image set --deactivate,Deactivate specified image. image-delete,image delete,Delete specified image. image-download,image save,Download a specific image. +image-import,image import,Initiate the image import taskflow. image-list,image list,List images you can access. image-reactivate,image set --activate,Reactivate specified image. image-show,image show,Describe a specific image. +image-stage,image stage,Upload data for a specific image to staging. image-tag-delete,image unset --tag ,Delete the tag associated with the given image. image-tag-update,image set --tag ,Update an image with the given tag. +image-tasks,,Get tasks associated with image. image-update,image set,Update an existing image. image-upload,,Upload data for a specific image. +import-info,image import info,Show available import methods from Glance. location-add,,Add a location (and related metadata) to an image. location-delete,,Remove locations (and related metadata) from an image. location-update,,Update metadata of an image's location. +md-namespace-create,image metadef namespace create,Create a new metadata definitions namespace. +md-namespace-delete,image metadef namespace delete,Delete specified metadata definitions namespace with its contents. +md-namespace-import,WONTFIX,Import a metadata definitions namespace from file or standard input. +md-namespace-list,image metadef namespace list,List metadata definitions namespaces. +md-namespace-objects-delete,image metadef object delete,Delete all metadata definitions objects inside a specific namespace. +md-namespace-properties-delete,image metadef property delete,Delete all metadata definitions property inside a specific namespace. +md-namespace-resource-type-list,image metadef resource type association list,List resource types associated to specific namespace. +md-namespace-show,image metadef namespace show,Describe a specific metadata definitions namespace. +md-namespace-tags-delete,,Delete all metadata definitions tags inside a specific namespace. +md-namespace-update,,Update an existing metadata definitions namespace. +md-object-create,image metadef object create,Create a new metadata definitions object inside a namespace. +md-object-show,image metadef object show,Describe a specific metadata definitions object inside a namespace. +md-object-list,image metadef object list,List metadata definitions objects inside a specific namespace. +md-object-delete,image metadef object delete,Delete a specific metadata definitions object inside a namespace. +md-object-property-show,image metadef object property show,Describe a specific metadata definitions property inside an object. +md-object-update,image metadef object update,Update metadata definitions object inside a namespace. +md-property-create,image metadef property create,Create a new metadata definitions property inside a namespace. +md-property-delete,image metadef property delete,Delete a specific metadata definitions property inside a namespace. +md-property-list,image metadef property list,List metadata definitions properties inside a specific namespace. +md-property-show,image metadef property show,Describe a specific metadata definitions property inside a namespace. +md-property-update,image metadef property set,Update metadata definitions property inside a namespace. +md-resource-type-associate,image metadef resource type association create,Associate resource type with a metadata definitions namespace. +md-resource-type-deassociate,image metadef resource type association delete,Deassociate resource type with a metadata definitions namespace. +md-resource-type-list,image metadef resource type list,List available resource type names. +md-tag-create,,Add a new metadata definitions tag inside a namespace. +md-tag-create-multiple,,Create new metadata definitions tags inside a namespace. +md-tag-delete,,Delete a specific metadata definitions tag inside a namespace. +md-tag-list,,List metadata definitions tags inside a specific namespace. +md-tag-show,,Describe a specific metadata definitions tag inside a namespace. +md-tag-update,,Rename a metadata definitions tag inside a namespace. member-create,image add project,Create member for a given image. member-delete,image remove project,Delete image member. -member-list,,Describe sharing permissions by image. +member-get,image member get,Show details of an image member +member-list,image member list,Describe sharing permissions by image. member-update,image set --accept --reject --status,Update the status of a member for a given image. -task-create,,Create a new task. -task-list,,List tasks you can access. -task-show,,Describe a specific task. +stores-delete,image delete --store,Delete image from specific store. +stores-info,,Print available backends from Glance. +task-create,WONTFIX,Create a new task. +task-list,image task list,List tasks you can access. +task-show,image task show,Describe a specific task. +usage,,Get quota usage information. bash-completion,complete,Prints arguments for bash_completion. help,help,Display help about this program or one of its subcommands. diff --git a/doc/source/cli/data/keystone.csv b/doc/source/cli/data/keystone.csv index bcc305515f..2a7e7f5690 100644 --- a/doc/source/cli/data/keystone.csv +++ b/doc/source/cli/data/keystone.csv @@ -1,37 +1,37 @@ -catalog,catalog show,"List service catalog, possibly filtered by service." -ec2-credentials-create,ec2 credentials create,Create EC2-compatible credentials for user per tenant. -ec2-credentials-delete,ec2 credentials delete,Delete EC2-compatible credentials. -ec2-credentials-get,ec2 credentials show,Display EC2-compatible credentials. -ec2-credentials-list,ec2 credentials list,List EC2-compatible credentials for a user. -endpoint-create,endpoint create,Create a new endpoint associated with a service. -endpoint-delete,endpoint delete,Delete a service endpoint. -endpoint-get,endpoint get,Find endpoint filtered by a specific attribute or service type. -endpoint-list,endpoint list,List configured service endpoints. -password-update,user password set,Update own password. -role-create,role create,Create new role. -role-delete,role delete,Delete role. -role-get,role show,Display role details. -role-list,role list,List all roles. -service-create,service create,Add service to Service Catalog. -service-delete,service delete,Delete service from Service Catalog. -service-get,service show,Display service from Service Catalog. -service-list,service list,List all services in Service Catalog. -tenant-create,project create,Create new tenant. -tenant-delete,project delete,Delete tenant. -tenant-get,project show,Display tenant details. -tenant-list,project list,List all tenants. -tenant-update,project set,"Update tenant name, description, enabled status." -token-get,token issue,Display the current user token. -user-create,user create,Create new user. -user-delete,user delete,Delete user. -user-get,user show,Display user details. -user-list,user list,List users. -user-password-update,user set --password,Update user password. -user-role-add,role add --user --project,Add role to user. -user-role-list,role assignment list --user --project,List roles granted to a user. -user-role-remove,role remove --user --project,Remove role from user. -user-update,user set,"Update user's name, email, and enabled status." -discover,WONTFIX,"Discover Keystone servers, supported API versions and extensions." -bootstrap,WONTFIX,"Grants a new role to a new user on a new tenant, after creating each." -bash-completion,complete,Prints all of the commands and options to stdout. -help,help,Display help about this program or one of its subcommands. +catalog,catalog show,"List service catalog, possibly filtered by service." +ec2-credentials-create,ec2 credentials create,Create EC2-compatible credentials for user per tenant. +ec2-credentials-delete,ec2 credentials delete,Delete EC2-compatible credentials. +ec2-credentials-get,ec2 credentials show,Display EC2-compatible credentials. +ec2-credentials-list,ec2 credentials list,List EC2-compatible credentials for a user. +endpoint-create,endpoint create,Create a new endpoint associated with a service. +endpoint-delete,endpoint delete,Delete a service endpoint. +endpoint-get,endpoint get,Find endpoint filtered by a specific attribute or service type. +endpoint-list,endpoint list,List configured service endpoints. +password-update,user password set,Update own password. +role-create,role create,Create new role. +role-delete,role delete,Delete role. +role-get,role show,Display role details. +role-list,role list,List all roles. +service-create,service create,Add service to Service Catalog. +service-delete,service delete,Delete service from Service Catalog. +service-get,service show,Display service from Service Catalog. +service-list,service list,List all services in Service Catalog. +tenant-create,project create,Create new tenant. +tenant-delete,project delete,Delete tenant. +tenant-get,project show,Display tenant details. +tenant-list,project list,List all tenants. +tenant-update,project set,"Update tenant name, description, enabled status." +token-get,token issue,Display the current user token. +user-create,user create,Create new user. +user-delete,user delete,Delete user. +user-get,user show,Display user details. +user-list,user list,List users. +user-password-update,user set --password,Update user password. +user-role-add,role add --user --project,Add role to user. +user-role-list,role assignment list --user --project,List roles granted to a user. +user-role-remove,role remove --user --project,Remove role from user. +user-update,user set,"Update user's name, email, and enabled status." +discover,WONTFIX,"Discover Keystone servers, supported API versions and extensions." +bootstrap,WONTFIX,"Grants a new role to a new user on a new tenant, after creating each." +bash-completion,complete,Prints all of the commands and options to stdout. +help,help,Display help about this program or one of its subcommands. diff --git a/doc/source/cli/data/neutron.csv b/doc/source/cli/data/neutron.csv index 080114e241..2399ed825f 100644 --- a/doc/source/cli/data/neutron.csv +++ b/doc/source/cli/data/neutron.csv @@ -35,6 +35,23 @@ dhcp-agent-network-add,network agent add network,Add a network to a DHCP agent. dhcp-agent-network-remove,network agent remove network,Remove a network from a DHCP agent. ext-list,extension list,List all extensions. ext-show,extension show,Show information of a given resource. +firewall-create,,Create a firewall. +firewall-delete,,Delete a given firewall. +firewall-list,,List firewalls that belong to a given tenant. +firewall-policy-create,,Create a firewall policy. +firewall-policy-delete,,Delete a given firewall policy. +firewall-policy-insert-rule,,Insert a rule into a given firewall policy. +firewall-policy-list,,List firewall policies that belong to a given tenant. +firewall-policy-remove-rule,,Remove a rule from a given firewall policy. +firewall-policy-show,,Show information of a given firewall policy. +firewall-policy-update,,Update a given firewall policy. +firewall-rule-create,,Create a firewall rule. +firewall-rule-delete,,Delete a given firewall rule. +firewall-rule-list,,List firewall rules that belong to a given tenant. +firewall-rule-show,,Show information of a given firewall rule. +firewall-rule-update,,Update a given firewall rule. +firewall-show,,Show information of a given firewall. +firewall-update,,Update a given firewall. flavor-associate,network flavor add profile,Add a Neutron service flavor with a flavor profile. flavor-create,network flavor create,Create a Neutron service flavor. flavor-delete,network flavor delete,Delete a given Neutron service flavor. @@ -171,7 +188,7 @@ qos-policy-list,network qos policy list,List QoS policies that belong to a given qos-policy-show,network qos policy show,Show information of a given qos policy. qos-policy-update,network qos policy set,Update a given qos policy. quota-default-show,quota show --default,Show default quotas for a given tenant. -quota-delete,,Delete defined quotas of a given tenant. +quota-delete,quota delete --network,Delete defined quotas of a given tenant. quota-list,quota list,List quotas of all tenants who have non-default quota values. quota-show,quota show,Show quotas for a given tenant. quota-update,quota set,Define tenant's quotas not to use defaults. @@ -213,15 +230,7 @@ subnetpool-show,subnet pool show,Show information of a given subnetpool. subnetpool-update,subnet pool set / subnet pool unset,Update subnetpool's information. tag-add,network set --tag,Add a tag into the resource. tag-remove,network unset --tag,Remove a tag on the resource. -tag-replace,,Replace all tags on the resource. -tap-flow-create,tapflow create,Create a tap flow -tap-flow-delete,tapflow delete,Delete a tap flow -tap-flow-list,tapflow list,List all tap flows -tap-flow-show,tapflow show,Show details of the tap flow -tap-service-create,tapservice create,Create a tap service -tap-service-delete,tapservice delete,Delete a tap service -tap-service-list,tapservice list,List all tap services -tap-service-show,tapservice show,Show details of the tap service +tag-replace,network set --no-tag --tag,Replace all tags on the resource. vpn-endpoint-group-create,,Create a VPN endpoint group. vpn-endpoint-group-delete,,Delete a given VPN endpoint group. vpn-endpoint-group-list,,List VPN endpoint groups that belong to a given tenant. @@ -242,3 +251,12 @@ vpn-service-delete,,Delete a given VPN service. vpn-service-list,,List VPN service configurations that belong to a given tenant. vpn-service-show,,Show information of a given VPN service. vpn-service-update,,Update a given VPN service. + +tap-flow-create,tapflow create,Create a tap flow +tap-flow-delete,tapflow delete,Delete a tap flow +tap-flow-list,tapflow list,List all tap flows +tap-flow-show,tapflow show,Show details of the tap flow +tap-service-create,tapservice create,Create a tap service +tap-service-delete,tapservice delete,Delete a tap service +tap-service-list,tapservice list,List all tap services +tap-service-show,tapservice show,Show details of the tap service diff --git a/doc/source/cli/data/nova.csv b/doc/source/cli/data/nova.csv index c319a4a69d..ff691a5193 100644 --- a/doc/source/cli/data/nova.csv +++ b/doc/source/cli/data/nova.csv @@ -1,10 +1,10 @@ -add-fixed-ip,server add fixed ip,Add new IP address on a network to server. add-secgroup,server add security group,Add a Security Group to a server. agent-create,compute agent create,Create new agent build. agent-delete,compute agent delete,Delete existing agent build. agent-list,compute agent list,List all builds. agent-modify,compute agent set,Modify existing agent build. aggregate-add-host,aggregate add host,Add the host to the specified aggregate. +aggregate-cache-images,aggregate cache image,Request images be cached. (Supported by API versions '2.81' - '2.latest') [hint: use '-- os-compute-api-version' flag to show help message for proper version] aggregate-create,aggregate create,Create a new aggregate with the specified details. aggregate-delete,aggregate delete,Delete the aggregate. aggregate-list,aggregate list,Print a list of all aggregates. @@ -15,51 +15,42 @@ aggregate-update,aggregate set / unset,Update the aggregate's name and optionall availability-zone-list,availability zone list,List all the availability zones. backup,server backup create,Backup a server by creating a 'backup' type snapshot. boot,server create,Boot a new server. -cell-capacities,,Get cell capacities for all cells or a given cell. -cell-show,,Show details of a given cell. -clear-password,server set --root-password,Clear the admin password for a server from the metadata server. -cloudpipe-configure,WONTFIX,Update the VPN IP/port of a cloudpipe instance. -cloudpipe-create,WONTFIX,Create a cloudpipe instance for the given project. -cloudpipe-list,WONTFIX,Print a list of all cloudpipe instances. +clear-password,server set --root-password,Clear the admin password for a server from the metadata server. This action does not actually change the instance server password. console-log,console log show,Get console log output of a server. delete,server delete,Immediately shut down and delete specified server(s). diagnostics,openstack server show --diagnostics,Retrieve server diagnostics. -evacuate,,Evacuate server from failed host. -flavor-access-add,,Add flavor access for the given tenant. -flavor-access-list,,Print access information about the given flavor. -flavor-access-remove,,Remove flavor access for the given tenant. +evacuate,server evacuate,Evacuate server from failed host. +flavor-access-add,flavor set --project,Add flavor access for the given tenant. +flavor-access-list,flavor show,Print access information about the given flavor. +flavor-access-remove,flavor unset,Remove flavor access for the given tenant. flavor-create,flavor create,Create a new flavor. flavor-delete,flavor delete,Delete a specific flavor -flavor-key,flavor set / unset,Set or unset extra_spec for a flavor. +flavor-key,flavor set / unset --property,Set or unset extra_spec for a flavor. flavor-list,flavor list,Print a list of available 'flavors' flavor-show,flavor show,Show details about the given flavor. -floating-ip-associate,server add floating ip,Associate a floating IP address to a server. -floating-ip-disassociate,server remove floating ip,Disassociate a floating IP address from a server. +flavor-update,flavor set --description,Update the description of an existing flavor. (Supported by API versions '2.55' - '2.latest') [hint: use '--os-compute-api-version' flag to show help message for proper version] force-delete,server delete,Force delete a server. -get-mks-console,console url show --mks,Get an MKS console to a server. -get-password,WONTFIX,Get the admin password for a server. +get-mks-console,console url show --mks,Get an MKS console to a server. (Supported by API versions '2.8' - '2.latest') [hint: use ' --os-compute-api-version' flag to show help message for proper version] +get-password,WONTFIX,Get the admin password for a server. This operation calls the metadata service to query metadata information and does not read password information from the server itself. get-rdp-console,console url show --rdp,Get a rdp console to a server. get-serial-console,console url show --serial,Get a serial console to a server. get-spice-console,console url show --spice,Get a spice console to a server. -get-vnc-console,console url show --novnc | --xvpvnc,Get a vnc console to a server. -host-action,,Perform a power action on a host. -host-describe,host show,Describe a specific host. -host-evacuate,,Evacuate all instances from failed host. -host-evacuate-live,,Live migrate all instances off the specified host to other available hosts. -host-list,host list,List all hosts by service. -host-meta,,Set or Delete metadata on all instances of a host. -host-servers-migrate,,Cold migrate all instances off the specified host to other available hosts. -host-update,host set,Update host settings. -hypervisor-list,hypervisor list,List hypervisors. -hypervisor-servers,,List servers belonging to specific hypervisors. +get-vnc-console,console url show --novnc,Get a vnc console to a server. +host-evacuate,WONTFIX,Evacuate all instances from failed host. +host-evacuate-live,WONTFIX,Live migrate all instances off the specified host to other available hosts. +host-meta,WONTFIX,Set or Delete metadata on all instances of a host. +host-servers-migrate,WONTFIX,Cold migrate all instances off the specified host to other available hosts. +hypervisor-list,hypervisor list,List hypervisors. (Supported by API versions '2.0' - '2.latest') +hypervisor-servers,server list --host,List servers belonging to specific hypervisors. hypervisor-show,hypervisor show,Display the details of the specified hypervisor. hypervisor-stats,hypervisor stats show,Get hypervisor statistics over all compute nodes. -hypervisor-uptime,,Display the uptime of the specified hypervisor. +hypervisor-uptime,hypervisor show,Display the uptime of the specified hypervisor. image-create,server image create,Create a new image by taking a snapshot of a running server. -instance-action,,Show an action. -instance-action-list,,List actions on a server. -interface-attach,,Attach a network interface to a server. -interface-detach,,Detach a network interface from a server. +instance-action,server event show,Show an action. +instance-action-list,server event list,List actions on a server. +instance-usage-audit-log,WONTFIX,List/Get server usage audits. +interface-attach,server add port / server add floating ip / server add fixed ip,Attach a network interface to a server. +interface-detach,server remove port,Detach a network interface from a server. interface-list,port list --server,List interfaces attached to a server. keypair-add,keypair create,Create a new key pair for use with servers. keypair-delete,keypair delete,Delete keypair given by its name. @@ -67,26 +58,24 @@ keypair-list,keypair list,Print a list of keypairs for a user keypair-show,keypair show,Show details about the given keypair. limits,limits show,Print rate and absolute limits. list,server list,List active servers. -list-extensions,extension list,List all the os-api extensions that are available. list-secgroup,security group list,List Security Group(s) of a server. -live-migration,,Migrate running server to a new machine. -live-migration-abort,,Abort an on-going live migration. -live-migration-force-comp,,Force on-going live migration to complete. +live-migration,server migration list,Migrate running server to a new machine. +live-migration-abort,server migration abort,Abort an on-going live migration. +live-migration-force-comp,server migration force complete,Force on-going live migration to complete. lock,server lock,Lock a server. meta,server set --property / unset,Set or delete metadata on a server. migrate,server migrate,Migrate a server. The new host will be selected by the scheduler. -migration-list,,Print a list of migrations. +migration-list,server migration list,Print a list of migrations. pause,server pause,Pause a server. -quota-class-show,,List the quotas for a quota class. +quota-class-show,quota show --class,List the quotas for a quota class. quota-class-update,quota set --class,Update the quotas for a quota class. quota-defaults,quota list,List the default quotas for a tenant. -quota-delete,quota set,Delete quota for a tenant/user so their quota will Revert back to default. +quota-delete,quota delete --compute,Delete quota for a tenant/user so their quota will Revert back to default. quota-show,quota show,List the quotas for a tenant/user. quota-update,quota set,Update the quotas for a tenant/user. reboot,server reboot,Reboot a server. rebuild,server rebuild,"Shutdown, re-image, and re-boot a server." refresh-network,WONTFIX,Refresh server network information. -remove-fixed-ip,server remove fixed ip,Remove an IP address from a server. remove-secgroup,server remove security group,Remove a Security Group from a server. rescue,server rescue,Reboots a server into rescue mode. reset-network,WONTFIX,Reset network of a server. @@ -100,13 +89,14 @@ server-group-create,server group create,Create a new server group with the speci server-group-delete,server group delete,Delete specific server group(s). server-group-get,server group show,Get a specific server group. server-group-list,server group list,Print a list of all server groups. -server-migration-list,,Get the migrations list of specified server. -server-migration-show,,Get the migration of specified server. -server-tag-add,,Add one or more tags to a server. -server-tag-delete,,Delete one or more tags from a server. -server-tag-delete-all,,Delete all tags from a server. -server-tag-list,,Get list of tags from a server. -server-tag-set,,Set list of tags to a server. +server-migration-list,server migration list,Get the migrations list of specified server. +server-migration-show,server migration show,Get the migration of specified server. +server-tag-add,server set --tag,Add one or more tags to a server. +server-tag-delete,server unset --tag,Delete one or more tags from a server. +server-tag-delete-all,server unset --tag,Delete all tags from a server. +server-tag-list,server list --tag,Get list of tags from a server. +server-tag-set,server set --tag,Set list of tags to a server. +server-topology,openstack server show --topology,Retrieve server topology. (Supported by API versions '2.78' - '2.latest') [hint: use '-- os-compute-api-version' flag to show help message for proper version] service-delete,compute service delete,Delete the service. service-disable,compute service set --disable,Disable the service. service-enable,compute service set --enable,Enable the service. @@ -121,22 +111,17 @@ start,server start,Start the server(s). stop,server stop,Stop the server(s). suspend,server suspend,Suspend a server. trigger-crash-dump,server dump create,Trigger crash dump in an instance. -topology,openstack server show --topology,Retrieve server NUMA topology. unlock,server unlock,Unlock a server. unpause,server unpause,Unpause a server. unrescue,server unrescue,Restart the server from normal boot disk again. unshelve,server unshelve,Unshelve a server. -update,server set / unset --description,Update or unset the description for a server. -update,server set --name,Update the name for a server. +update,server set / unset,Update the name or the description for a server. usage,usage show,Show usage data for a single tenant. usage-list,usage list,List usage data for all tenants. -version-list,,List all API versions. -virtual-interface-list,,Show virtual interface info about the given server. +version-list,versions show --service compute,List all API versions. volume-attach,server add volume,Attach a volume to a server. -volume-attachments,server show,List all the volumes attached to a server. +volume-attachments,server volume list,List all the volumes attached to a server. volume-detach,server remove volume,Detach a volume from a server. -volume-update,,Update volume attachment. -x509-create-cert,WONTFIX,Create x509 cert for a user in tenant. -x509-get-root-cert,WONTFIX,Fetch the x509 root cert. -bash-completion,complete,Prints all of the commands and options to +volume-update,server volume update,Update volume attachment. +bash-completion,complete,Prints all of the commands and options to stdout so that the nova.bash_completion script doesn't have to hard code them. help,help,Display help about this program or one of its subcommands. diff --git a/doc/source/cli/data/swift.csv b/doc/source/cli/data/swift.csv index 681474125b..87d781e271 100644 --- a/doc/source/cli/data/swift.csv +++ b/doc/source/cli/data/swift.csv @@ -1,10 +1,10 @@ -delete,object delete / container delete,Delete a container or objects within a container. -download,object save / container save,Download objects from containers. -list,object list / container list,Lists the containers for the account or the objects for a container. -post,container create / object set / container set / object store account set,"Updates meta information for the account, container, or object." -copy,,"Copies object, optionally adds meta." -stat,object show / container show / object store account show,"Displays information for the account, container, or object." -upload,object create,Uploads files or directories to the given container. -capabilities,,List cluster capabilities. -tempurl,,Create a temporary URL. -auth,WONTFIX,Display auth related environment variables. +delete,object delete / container delete,Delete a container or objects within a container. +download,object save / container save,Download objects from containers. +list,object list / container list,Lists the containers for the account or the objects for a container. +post,container create / object set / container set / object store account set,"Updates meta information for the account, container, or object." +copy,,"Copies object, optionally adds meta." +stat,object show / container show / object store account show,"Displays information for the account, container, or object." +upload,object create,Uploads files or directories to the given container. +capabilities,,List cluster capabilities. +tempurl,,Create a temporary URL. +auth,WONTFIX,Display auth related environment variables. diff --git a/doc/source/cli/man/openstack.rst b/doc/source/cli/man/openstack.rst index dc327a66e8..8f7124dd6d 100644 --- a/doc/source/cli/man/openstack.rst +++ b/doc/source/cli/man/openstack.rst @@ -49,7 +49,7 @@ command line. The primary difference is the use of 'project' in the name of the Refer to the keystoneclient library documentation for more details about these plugins and their options, and for a complete list of available plugins. Please bear in mind that some plugins might not support all of the functionalities of :program:`openstack`; for example the v3unscopedsaml plugin can deliver only unscoped tokens, some commands might not be available through this authentication method. -Additionally, it is possible to use Keystone's service token to authenticate, by setting the options :option:`--os-token` and :option:`--os-url` (or the environment variables :envvar:`OS_TOKEN` and :envvar:`OS_URL` respectively). This method takes precedence over authentication plugins. +Additionally, it is possible to use Keystone's service token to authenticate, by setting the options :option:`--os-token` and :option:`--os-endpoint` (or the environment variables :envvar:`OS_TOKEN` and :envvar:`OS_ENDPOINT` respectively). This method takes precedence over authentication plugins. .. NOTE:: To use the ``v3unscopedsaml`` method, the lxml package will need to be installed. @@ -106,9 +106,9 @@ OPTIONS Authentication URL -.. option:: --os-url +.. option:: --os-endpoint - Service URL, when using a service token for authentication + Service ENDPOINT, when using a service token for authentication .. option:: --os-domain-name @@ -349,7 +349,7 @@ file, but if those are incomplete it may be impossible to know which auth type is intended. The :option:`--os-auth-type` option can always be used to force a specific type. -When :option:`--os-token` and :option:`--os-url` are both present the +When :option:`--os-token` and :option:`--os-endpoint` are both present the ``token_endpoint`` auth type is selected automatically. If :option:`--os-auth-url` and :option:`--os-username` are present ``password`` auth type is selected. @@ -466,9 +466,9 @@ The following environment variables can be set to alter the behaviour of :progra - ``v3applicationcredential`` - ``v3multifactor`` -.. envvar:: OS_URL +.. envvar:: OS_ENDPOINT - Service URL (when using the service token) + Service ENDPOINT (when using the service token) .. envvar:: OS_DOMAIN_NAME @@ -593,8 +593,8 @@ The following environment variables can be set to alter the behaviour of :progra BUGS ==== -Bug reports are accepted at the python-openstackclient StoryBoard project -"https://storyboard.openstack.org/#!/project/975". +Bug reports are accepted at the python-openstackclient Launchpad project +"https://bugs.launchpad.net/python-openstackclient". AUTHORS diff --git a/doc/source/cli/plugin-commands/cyborg.rst b/doc/source/cli/plugin-commands/cyborg.rst new file mode 100644 index 0000000000..aedaa6b53d --- /dev/null +++ b/doc/source/cli/plugin-commands/cyborg.rst @@ -0,0 +1,4 @@ +cyborg +------ + +.. autoprogram-cliff:: openstack.accelerator.v2 diff --git a/doc/source/cli/plugin-commands/index.rst b/doc/source/cli/plugin-commands/index.rst index 4e1ce54b13..2622ee58b3 100644 --- a/doc/source/cli/plugin-commands/index.rst +++ b/doc/source/cli/plugin-commands/index.rst @@ -9,37 +9,19 @@ Plugin Commands aodh barbican + cyborg designate gnocchi heat ironic ironic-inspector + magnum manila mistral neutron octavia placement - rsd - sahara - senlin trove watcher zaqar zun - -.. TODO(efried): Make pages for the following once they're fixed. - -.. cue -.. # cueclient is not in global-requirements -.. # list-plugins:: openstack.mb.v1 -.. # :detailed: - -.. murano -.. # the murano docs cause warnings and a broken docs build -.. # .. list-plugins:: openstack.application_catalog.v1 -.. # :detailed: - -.. tripleo -.. # tripleoclient is not in global-requirements -.. # list-plugins:: openstack.tripleoclient.v1 -.. # :detailed: diff --git a/doc/source/cli/plugin-commands/magnum.rst b/doc/source/cli/plugin-commands/magnum.rst new file mode 100644 index 0000000000..9b3f9f7e8a --- /dev/null +++ b/doc/source/cli/plugin-commands/magnum.rst @@ -0,0 +1,4 @@ +magnum +------ + +.. autoprogram-cliff:: openstack.container_infra.v1 diff --git a/doc/source/cli/plugin-commands/rsd.rst b/doc/source/cli/plugin-commands/rsd.rst deleted file mode 100644 index d28cea316f..0000000000 --- a/doc/source/cli/plugin-commands/rsd.rst +++ /dev/null @@ -1,4 +0,0 @@ -rsd ---- - -.. autoprogram-cliff:: openstack.rsd.v2 diff --git a/doc/source/cli/plugin-commands/sahara.rst b/doc/source/cli/plugin-commands/sahara.rst deleted file mode 100644 index 7c51756a3a..0000000000 --- a/doc/source/cli/plugin-commands/sahara.rst +++ /dev/null @@ -1,4 +0,0 @@ -sahara ------- - -.. autoprogram-cliff:: openstack.data_processing.v1 diff --git a/doc/source/cli/plugin-commands/senlin.rst b/doc/source/cli/plugin-commands/senlin.rst deleted file mode 100644 index 90929058f8..0000000000 --- a/doc/source/cli/plugin-commands/senlin.rst +++ /dev/null @@ -1,4 +0,0 @@ -senlin ------- - -.. autoprogram-cliff:: openstack.clustering.v1 diff --git a/doc/source/conf.py b/doc/source/conf.py index 4b60ce4a5d..6ee3145558 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # # OpenStack Command Line Client documentation build configuration file, created # by sphinx-quickstart on Wed May 16 12:05:58 2012. @@ -15,22 +14,22 @@ # -- General configuration ---------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' +# needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinx.ext.autodoc', - 'sphinx.ext.doctest', - 'sphinx.ext.todo', - 'openstackdocstheme', - 'stevedore.sphinxext', - 'cliff.sphinxext', - 'sphinxcontrib.apidoc', - ] +extensions = [ + 'sphinx.ext.autodoc', + 'sphinx.ext.doctest', + 'sphinx.ext.todo', + 'openstackdocstheme', + 'stevedore.sphinxext', + 'cliff.sphinxext', + 'sphinxcontrib.apidoc', +] # openstackdocstheme options openstackdocs_repo_name = 'openstack/python-openstackclient' -openstackdocs_use_storyboard = True openstackdocs_auto_name = False # Add project 'foo' to this list to enable the :foo-doc: role @@ -39,30 +38,30 @@ ] # Add any paths that contain templates here, relative to this directory. -#templates_path = ['_templates'] +# templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. -#source_encoding = 'utf-8-sig' +# source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. -project = u'OpenStack Command Line Client' -copyright = u'2012-2013 OpenStack Foundation' +project = 'OpenStack Command Line Client' +copyright = '2012-2013 OpenStack Foundation' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. -#language = None +# language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: -#today = '' +# today = '' # Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' +# today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. @@ -70,18 +69,18 @@ # The reST default role (used for this markup: `text`) to use for all # documents. -#default_role = None +# default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True +# add_function_parentheses = True # If true, the current module name will be prepended to all description # unit titles (such as .. function::). -#add_module_names = True +# add_module_names = True # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. -#show_authors = False +# show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'native' @@ -94,75 +93,75 @@ # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -#html_theme_path = ["."] -#html_theme = '_theme' +# html_theme_path = ["."] +# html_theme = '_theme' html_theme = 'openstackdocs' # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. -#html_theme_options = {} +# html_theme_options = {} # Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] +# html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". -#html_title = None +# html_title = None # A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None +# html_short_title = None # The name of an image file (relative to this directory) to place at the top # of the sidebar. -#html_logo = None +# html_logo = None # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. -#html_favicon = None +# html_favicon = None # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = ['_static'] +# html_static_path = ['_static'] # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. -#html_use_smartypants = True +# html_use_smartypants = True # Custom sidebar templates, maps document names to template names. -#html_sidebars = {} +# html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. -#html_additional_pages = {} +# html_additional_pages = {} # If false, no module index is generated. -#html_domain_indices = True +# html_domain_indices = True # If false, no index is generated. -#html_use_index = True +# html_use_index = True # If true, the index is split into individual pages for each letter. -#html_split_index = False +# html_split_index = False # If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True +# html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True +# html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True +# html_show_copyright = True # If true, an OpenSearch description file will be output, and all pages will # contain a tag referring to it. The value of this option must be the # base URL from which the finished HTML is served. -#html_use_opensearch = '' +# html_use_opensearch = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None +# html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'OpenStackCommandLineClientdoc' @@ -174,44 +173,46 @@ # -- Options for LaTeX output ------------------------------------------------- latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', + # The paper size ('letterpaper' or 'a4paper'). + #'papersize': 'letterpaper', + # The font size ('10pt', '11pt' or '12pt'). + #'pointsize': '10pt', + # Additional stuff for the LaTeX preamble. + #'preamble': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, author, documentclass [howto/manual]) # . latex_documents = [ - ('index', 'OpenStackCommandLineClient.tex', - u'OpenStack Command Line Client Documentation', - u'OpenStack', 'manual'), + ( + 'index', + 'OpenStackCommandLineClient.tex', + 'OpenStack Command Line Client Documentation', + 'OpenStack', + 'manual', + ), ] # The name of an image file (relative to this directory) to place at the top of # the title page. -#latex_logo = None +# latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. -#latex_use_parts = False +# latex_use_parts = False # If true, show page references after internal links. -#latex_show_pagerefs = False +# latex_show_pagerefs = False # If true, show URL addresses after external links. -#latex_show_urls = False +# latex_show_urls = False # Documents to append as an appendix to all manuals. -#latex_appendices = [] +# latex_appendices = [] # If false, no module index is generated. -#latex_domain_indices = True +# latex_domain_indices = True # -- Options for manual page output ------------------------------------------- @@ -222,14 +223,14 @@ ( 'cli/man/openstack', 'openstack', - u'OpenStack Command Line Client', - [u'OpenStack contributors'], + 'OpenStack Command Line Client', + ['OpenStack contributors'], 1, ), ] # If true, show URL addresses after external links. -#man_show_urls = False +# man_show_urls = False # -- Options for Texinfo output ----------------------------------------------- @@ -238,21 +239,25 @@ # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [ - ('index', 'OpenStackCommandLineClient', - u'OpenStack Command Line Client Documentation', - u'OpenStack', 'OpenStackCommandLineClient', - 'One line description of project.', - 'Miscellaneous'), + ( + 'index', + 'OpenStackCommandLineClient', + 'OpenStack Command Line Client Documentation', + 'OpenStack', + 'OpenStackCommandLineClient', + 'One line description of project.', + 'Miscellaneous', + ), ] # Documents to append as an appendix to all manuals. -#texinfo_appendices = [] +# texinfo_appendices = [] # If false, no module index is generated. -#texinfo_domain_indices = True +# texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' +# texinfo_show_urls = 'footnote' # -- Options for cliff.sphinxext plugin --------------------------------------- @@ -260,8 +265,16 @@ autoprogram_cliff_application = 'openstack' autoprogram_cliff_ignored = [ - '--help', '--format', '--column', '--max-width', '--fit-width', - '--print-empty', '--prefix', '--noindent', '--quote'] + '--help', + '--format', + '--column', + '--max-width', + '--fit-width', + '--print-empty', + '--prefix', + '--noindent', + '--quote', +] # Prevent cliff from generating "This command is provided by the # python-openstackclient plugin." diff --git a/doc/source/contributor/command-errors.rst b/doc/source/contributor/command-errors.rst index c4adb7d190..f47dfec7c3 100644 --- a/doc/source/contributor/command-errors.rst +++ b/doc/source/contributor/command-errors.rst @@ -29,8 +29,9 @@ Example This example is taken from ``keypair create`` where the ``--public-key`` option specifies a file containing the public key to upload. If the file is not found, -the IOError exception is trapped and a more specific CommandError exception is -raised that includes the name of the file that was attempted to be opened. +the ``IOError`` exception is trapped and a more specific ``CommandError`` +exception is raised that includes the name of the file that was attempted to be +opened. .. code-block:: python @@ -45,7 +46,7 @@ raised that includes the name of the file that was attempted to be opened. public_key = parsed_args.public_key if public_key: try: - with io.open( + with open( os.path.expanduser(parsed_args.public_key), "rb" ) as p: @@ -56,8 +57,8 @@ raised that includes the name of the file that was attempted to be opened. msg % (parsed_args.public_key, e), ) - keypair = compute_client.keypairs.create( - parsed_args.name, + keypair = compute_client.create_keypair( + name=parsed_args.name, public_key=public_key, ) diff --git a/doc/source/contributor/developing.rst b/doc/source/contributor/developing.rst index 9142edb86c..c6573b9ba6 100644 --- a/doc/source/contributor/developing.rst +++ b/doc/source/contributor/developing.rst @@ -6,16 +6,18 @@ Communication ------------- IRC Channel -=========== +~~~~~~~~~~~ + The OpenStackClient team doesn't have regular meetings so if you have questions or anything you want to discuss, come to our channel: #openstack-sdks + Testing ------- Tox prerequisites and installation -================================== +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Install the prerequisites for Tox: @@ -23,23 +25,22 @@ Install the prerequisites for Tox: .. code-block:: bash - $ apt-get install gcc gettext python-dev libxml2-dev libxslt1-dev \ + $ apt-get install gcc gettext python3-dev libxml2-dev libxslt1-dev \ zlib1g-dev You may need to use pip install for some packages. - * On RHEL or CentOS including Fedora: .. code-block:: bash - $ yum install gcc python-devel libxml2-devel libxslt-devel + $ yum install gcc python3-devel libxml2-devel libxslt-devel * On openSUSE or SUSE linux Enterprise: .. code-block:: bash - $ zypper install gcc python-devel libxml2-devel libxslt-devel + $ zypper install gcc python3-devel libxml2-devel libxslt-devel Install python-tox: @@ -59,7 +60,7 @@ To run the full suite of tests maintained within OpenStackClient. virtualenvs. You can later use the ``-r`` option with ``tox`` to rebuild your virtualenv in a similar manner. -To run tests for one or more specific test environments(for example, the most +To run tests for one or more specific test environments (for example, the most common configuration of the latest Python version and PEP-8), list the environments with the ``-e`` option, separated by spaces: @@ -70,7 +71,7 @@ environments with the ``-e`` option, separated by spaces: See ``tox.ini`` for the full list of available test environments. Running functional tests -======================== +~~~~~~~~~~~~~~~~~~~~~~~~ OpenStackClient also maintains a set of functional tests that are optimally designed to be run against OpenStack's gate. Optionally, a developer may @@ -87,10 +88,10 @@ To run a specific functional test: .. code-block:: bash - $ tox -e functional -- --regex functional.tests.compute.v2.test_server + $ tox -e functional -- --regex tests.functional.compute.v2.test_server Running with PDB -================ +~~~~~~~~~~~~~~~~ Using PDB breakpoints with ``tox`` and ``testr`` normally does not work since the tests fail with a `BdbQuit` exception rather than stopping at the @@ -109,8 +110,32 @@ For reference, the `debug`_ ``tox`` environment implements the instructions .. _`debug`: https://wiki.openstack.org/wiki/Testr#Debugging_.28pdb.29_Tests -Building the Documentation --------------------------- +Coding Style +------------ + +OpenStackClient uses `flake8`__ along with `hacking`__, an OpenStack-specific +superset of ``flake8`` rules, to enforce coding style. This can be run manually +using ``tox``: + +.. code-block:: bash + + $ tox -e pep8 + +Alternatively, you can use the `pre-commit framework`__ to allow running of +some linters on each commit. This must be enabled locally to function: + +.. code-block:: bash + + $ pip install --user pre-commit + $ pre-commit install --allow-missing-config + +.. __: https://flake8.pycqa.org/en/latest/ +.. __: https://docs.openstack.org/hacking/latest/user/hacking.html +.. __: https://pre-commit.com/ + + +Documentation +------------- The documentation is generated with Sphinx using the ``tox`` command. To create HTML docs, run the commands: @@ -121,6 +146,7 @@ create HTML docs, run the commands: The resultant HTML will be in the ``doc/build/html`` directory. + Release Notes ------------- @@ -156,6 +182,7 @@ To run the commands and see results: At last, look at the generated release notes files in ``releasenotes/build/html`` in your browser. + Testing new code ---------------- @@ -174,7 +201,7 @@ or $ pip install -e . Standardize Import Format -========================= +~~~~~~~~~~~~~~~~~~~~~~~~~ More information about Import Format, see `Import Order Guide `__. @@ -193,7 +220,7 @@ The import order shows below: {{begin your code}} Example -~~~~~~~ +^^^^^^^ .. code-block:: python diff --git a/doc/source/contributor/humaninterfaceguide.rst b/doc/source/contributor/humaninterfaceguide.rst index a7db380053..db6d7987b9 100644 --- a/doc/source/contributor/humaninterfaceguide.rst +++ b/doc/source/contributor/humaninterfaceguide.rst @@ -117,14 +117,14 @@ interface to the user, not the user to the interface. Commands should be discoverable via the interface itself. -To determine a list of available commands, use the :code:`-h` or -:code:`--help` options: +To determine a list of available commands, use the ``-h`` or +``--help`` options: .. code-block:: bash $ openstack --help -For help with an individual command, use the :code:`help` command: +For help with an individual command, use the ``help`` command: .. code-block:: bash @@ -167,7 +167,7 @@ Command Structure OpenStackClient has a consistent and predictable format for all of its commands. -* The top level command name is :code:`openstack` +* The top level command name is ``openstack`` * Sub-commands take the form: .. code-block:: bash @@ -185,6 +185,21 @@ Output formats: * user-friendly tables with headers, etc * machine-parsable delimited +.. note:: + + A note on terminology. An **argument** is a positional parameter to the + command. As discussed later, these should be used sparingly in + OpenStackClient. An **option** - also known as a **flag** - is a named + parameter denoted with either a hyphen and a single-letter name (``-r``) or + a double hyphen and a multiple-letter name (``--recursive``). They may or + may not also include a user-specified value (``--file foo.txt`` or + ``--file=foo.txt``). + + For more information on this topic and CLIs in general, refer to the + excellent `Command Line Interface Guidelines website`__. + + .. __: https://clig.dev/#arguments-and-flags + Global Options ~~~~~~~~~~~~~~ @@ -193,84 +208,151 @@ invocation regardless of action to be performed. They include authentication credentials and API version selection. Most global options have a corresponding environment variable that may also be used to set the value. If both are present, the command-line option takes priority. The environment variable names are derived -from the option name by dropping the leading dashes ('--'), converting each embedded -dash ('-') to an underscore ('_'), and converting to upper case. +from the option name by dropping the leading dashes (``--``), converting each embedded +dash (``-``) to an underscore (``_``), and converting to upper case. * Global options shall always have a long option name, certain common options may also have short names. Short names should be reserved for global options to limit the potential for duplication and multiple meanings between commands given the limited set of available short names. -* All long options names shall begin with two dashes ('--') and use a single dash - ('-') internally between words (:code:`--like-this`). Underscores ('_') shall not + +* All long options names shall begin with two dashes (``--``) and use a single dash + (``-``) internally between words (``--like-this``). Underscores (``_``) shall not be used in option names. + * Authentication options conform to the common CLI authentication guidelines in :ref:`authentication`. -For example, :code:`--os-username` can be set from the environment via -:code:`OS_USERNAME`. +For example, ``--os-username`` can be set from the environment via +``OS_USERNAME``. ---help -++++++ +``--help`` +++++++++++ -The standard :code:`--help` global option displays the documentation for invoking +The standard ``--help`` global option displays the documentation for invoking the program and a list of the available commands on standard output. All other options and commands are ignored when this is present. The traditional short -form help option (:code:`-h`) is also available. +form help option (``-h``) is also available. ---version -+++++++++ +``--version`` ++++++++++++++ -The standard :code:`--version` option displays the name and version on standard +The standard ``--version`` option displays the name and version on standard output. All other options and commands are ignored when this is present. -Command Object(s) and Action -~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Objects and Actions +~~~~~~~~~~~~~~~~~~~ -Commands consist of an object described by one or more words followed by an action. Commands that require two objects have the primary object ahead of the action and the secondary object after the action. Any positional arguments identifying the objects shall appear in the same order as the objects. In badly formed English it is expressed as "(Take) object1 (and perform) action (using) object2 (to it)." +Commands consist of an object, described by one or more words, followed by an +action. :: - [] + -Examples: +For example: -* :code:`group add user ` -* :code:`volume type list` # Note that :code:`volume type` is a two-word - single object +* ``group create`` +* ``server set`` +* ``volume type list`` -The :code:`help` command is unique as it appears in front of a normal command -and displays the help text for that command rather than execute it. +(note that ``volume type`` is a two-word single object) + +Some commands require two objects. These commands have the primary object ahead of the +action and the secondary object after the action. In badly formed English it is +expressed as "(Take) object-1 (and perform) action (using) object-2 (to it)." :: + + + +For example: + +* ``group add user`` +* ``aggregate add host`` +* ``image remove project`` Object names are always specified in command in their singular form. This is contrary to natural language use. -Command Arguments and Options -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +``help`` +++++++++ + +The ``help`` command is unique as it appears in front of a normal command +and displays the help text for that command rather than execute it. + +Arguments +~~~~~~~~~ + +Commands that interact with a specific instance of an object should accept a +single argument. This argument should be a name or identifier for the object. +:: + + [] + +For example: + +* ``group create `` +* ``server set `` + +(note that ``volume type`` is a two-word single object) + +For commands that require two objects, the commands should accept two +arguments when interacting with specific instances of the two objects. These +arguments should appear in the same order as the objects. :: + + [ ] + +For example: + +* ``group add user `` +* ``aggregate add host `` +* ``image remove project `` + +Options +~~~~~~~ Each command may have its own set of options distinct from the global options. They follow the same style as the global options and always appear between -the command and any positional arguments the command requires. +the command and any arguments the command requires. -Command options shall only have long names. The small range of available -short names makes it hard for a single short option name to have a consistent -meaning across multiple commands. +Command options should only have long names. The small range of available short +names makes it hard for a single short option name to have a consistent meaning +across multiple commands. Option Forms ++++++++++++ -* **boolean**: boolean options shall use a form of :code:`--|--` - (preferred) or :code:`--