python-openstackclient-3.14.2/0000775000175000017500000000000013305131240016320 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/.testr.conf0000666000175000017500000000060413305130746020422 0ustar zuulzuul00000000000000[DEFAULT] test_command=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} \ OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} \ OS_TEST_TIMEOUT=${OS_TEST_TIMEOUT:-60} \ ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./openstackclient/tests/unit} $LISTOPT $IDOPTION test_id_option=--load-list $IDFILE test_list_option=--list group_regex=([^\.]+\.)+ python-openstackclient-3.14.2/babel.cfg0000666000175000017500000000002013305130746020052 0ustar zuulzuul00000000000000[python: **.py] python-openstackclient-3.14.2/README.rst0000666000175000017500000000761613305130760020031 0ustar zuulzuul00000000000000======================== Team and repository tags ======================== .. image:: http://governance.openstack.org/badges/python-openstackclient.svg :target: http://governance.openstack.org/reference/tags/index.html .. Change things from this point on =============== OpenStackClient =============== .. image:: https://img.shields.io/pypi/v/python-openstackclient.svg :target: https://pypi.python.org/pypi/python-openstackclient/ :alt: Latest Version .. image:: https://img.shields.io/pypi/dm/python-openstackclient.svg :target: https://pypi.python.org/pypi/python-openstackclient/ :alt: Downloads OpenStackClient (aka OSC) is a command-line client for OpenStack that brings the command set for Compute, Identity, Image, Object Store and Block Storage APIs together in a single shell with a uniform command structure. 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`_ * `Launchpad project`_ - release management * `Blueprints`_ - feature specifications * `Bugs`_ - issue tracking * `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.python.org/pypi/python-openstackclient .. _Online Documentation: https://docs.openstack.org/python-openstackclient/latest/ .. _Launchpad project: https://launchpad.net/python-openstackclient .. _Blueprints: https://blueprints.launchpad.net/python-openstackclient .. _Bugs: https://bugs.launchpad.net/python-openstackclient .. _Source: https://git.openstack.org/cgit/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 Getting Started =============== OpenStack Client can be installed from PyPI using pip:: pip install python-openstackclient There are a few variants on getting help. A list of global options and supported commands is shown with ``--help``:: openstack --help There is also a ``help`` command that can be used to get help text for a specific command:: openstack help openstack help server create If you want to make changes to the OpenStackClient for testing and contribution, make any changes and then run:: python setup.py develop or:: pip install -e . Configuration ============= The CLI is configured via environment variables and command-line options as listed in https://docs.openstack.org/python-openstackclient/latest/cli/authentication.html. Authentication using username/password is most commonly used:: export OS_AUTH_URL= export OS_IDENTITY_API_VERSION=3 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:: --os-auth-url --os-identity-api-version 3 --os-project-name --os-project-domain-name --os-username --os-user-domain-name [--os-password ] If a password is not provided above (in plaintext), you will be interactively prompted to provide one securely. Authentication may also be performed using an already-acquired token and a URL pointing directly to the service API that presumably was acquired from the Service Catalog:: export OS_TOKEN= export OS_URL= The corresponding command-line options look very similar:: --os-token --os-url python-openstackclient-3.14.2/.mailmap0000666000175000017500000000014313305130746017753 0ustar zuulzuul00000000000000 python-openstackclient-3.14.2/HACKING.rst0000666000175000017500000000600613305130746020134 0ustar zuulzuul00000000000000OpenStack Style Commandments ============================ - Step 1: Read the OpenStack Style Commandments https://docs.openstack.org/hacking/latest/ - Step 2: Read on General ------- - thou shalt not violate causality in our time cone, or else Docstrings ---------- Docstrings should ONLY use triple-double-quotes (``"""``) Single-line docstrings should NEVER have extraneous whitespace between enclosing triple-double-quotes. Deviation! Sentence fragments do not have punctuation. Specifically in the command classes the one line docstring is also the help string for that command and those do not have periods. """A one line docstring looks like this""" Calling Methods --------------- Deviation! When breaking up method calls due to the 79 char line length limit, 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. unnecessarily_long_function_name( 'string one', 'string two', 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) Python 3.x Compatibility ------------------------ OpenStackClient strives to be Python 3.3 compatible. Common guidelines: * Convert print statements to functions: print statements should be converted to an appropriate log or other output mechanism. * Use six where applicable: x.iteritems is converted to six.iteritems(x) for example. Running Tests ------------- Note: Oh boy, are we behind on writing tests. But they are coming! The testing system is based on a combination of tox and testr. If you just want to run the whole suite, run `tox` and all will be fine. However, if you'd like to dig in a bit more, you might want to learn some things about testr itself. A basic walkthrough for OpenStack can be found at http://wiki.openstack.org/testr python-openstackclient-3.14.2/requirements.txt0000666000175000017500000000120113305130760021606 0ustar zuulzuul00000000000000# 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. pbr!=2.1.0,>=2.0.0 # Apache-2.0 six>=1.10.0 # MIT Babel!=2.4.0,>=2.3.4 # BSD cliff!=2.9.0,>=2.8.0 # Apache-2.0 keystoneauth1>=3.3.0 # Apache-2.0 openstacksdk>=0.9.19 # Apache-2.0 osc-lib>=1.8.0 # Apache-2.0 oslo.i18n>=3.15.3 # Apache-2.0 oslo.utils>=3.33.0 # Apache-2.0 python-glanceclient>=2.8.0 # Apache-2.0 python-keystoneclient>=3.8.0 # Apache-2.0 python-novaclient>=9.1.0 # Apache-2.0 python-cinderclient>=3.3.0 # Apache-2.0 python-openstackclient-3.14.2/tox.ini0000666000175000017500000001211413305130760017642 0ustar zuulzuul00000000000000[tox] minversion = 2.3 envlist = py35,py27,pep8 skipdist = True [testenv] usedevelop = True install_command = pip install {opts} {packages} setenv = VIRTUAL_ENV={envdir} OS_STDOUT_CAPTURE=1 OS_STDERR_CAPTURE=1 OS_TEST_TIMEOUT=60 deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/queens} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt commands = stestr run {posargs} whitelist_externals = stestr [testenv:fast8] # Use same environment directory as pep8 env to save space and install time envdir = {toxworkdir}/pep8 commands = {toxinidir}/tools/fast8.sh [testenv:pep8] commands = flake8 bandit -r openstackclient -x tests -s B105,B106,B107,B401,B404,B603,B606,B607,B110,B605,B101 [testenv:bandit] # This command runs the bandit security linter against the openstackclient # codebase minus the tests directory. Some tests are being excluded to # reduce the number of positives before a team inspection, and to ensure a # passing gate job for initial addition. The excluded tests are: # B105-B107: hardcoded password checks - likely to generate false positives # in a gate environment # B401: import subprocess - not necessarily a security issue; this plugin is # mainly used for penetration testing workflow # B603,B606: process without shell - not necessarily a security issue; this # plugin is mainly used for penetration testing workflow # B607: start process with a partial path - this should be a project level # decision # NOTE(elmiko): The following tests are being excluded specifically for # python-openstackclient, they are being excluded to ensure that voting jobs # in the project and in bandit integration tests continue to pass. These # tests have generated issue within the project and should be investigated # by the project. # B110: try, except, pass detected - possible security issue; this should be # investigated by the project for possible exploitation # B605: process with a shell - possible security issue; this should be # investigated by the project for possible exploitation # B101: use of assert - this code will be removed when compiling to optimized # byte code commands = bandit -r openstackclient -x tests -s B105,B106,B107,B401,B404,B603,B606,B607,B110,B605,B101 [testenv:unit-tips] commands = pip install -q -U -e "git+file://{toxinidir}/../cliff#egg=cliff" pip install -q -U -e "git+file://{toxinidir}/../keystoneauth#egg=keystoneauth" pip install -q -U -e "git+file://{toxinidir}/../osc-lib#egg=osc_lib" pip install -q -U -e "git+file://{toxinidir}/../os-client-config#egg=os_client_config" pip install -q -e "git+file://{toxinidir}/../python-openstacksdk#egg=openstacksdk" pip freeze stestr run {posargs} whitelist_externals = stestr [testenv:functional] setenv = OS_TEST_PATH=./openstackclient/tests/functional passenv = OS_* whitelist_externals = openstackclient/tests/functional/run_stestr.sh commands = {toxinidir}/openstackclient/tests/functional/run_stestr.sh {posargs} [testenv:functional-tips] setenv = OS_TEST_PATH=./openstackclient/tests/functional passenv = OS_* whitelist_externals = openstackclient/tests/functional/run_stestr.sh commands = pip install -q -U -e "git+file://{toxinidir}/../cliff#egg=cliff" pip install -q -U -e "git+file://{toxinidir}/../keystoneauth#egg=keystoneauth" pip install -q -U -e "git+file://{toxinidir}/../osc-lib#egg=osc_lib" pip install -q -U -e "git+file://{toxinidir}/../os-client-config#egg=os_client_config" pip install -q -U -e "git+file://{toxinidir}/../python-openstacksdk#egg=openstacksdk" pip freeze {toxinidir}/openstackclient/tests/functional/run_stestr.sh {posargs} [testenv:venv] commands = {posargs} [testenv:cover] setenv = VIRTUAL_ENV={envdir} PYTHON=coverage run --source openstackclient --parallel-mode commands = stestr -q run {posargs} coverage combine coverage html -d cover coverage xml -o cover/coverage.xml [testenv:debug] passenv = OS_* commands = oslo_debug_helper -t openstackclient/tests {posargs} [testenv:docs] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/queens} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = python setup.py build_sphinx [testenv:releasenotes] deps = -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/queens} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html [flake8] show-source = True # H203: Use assertIs(Not)None to check for None enable-extensions = H203 exclude = .git,.tox,dist,doc,*lib/python*,*egg,build,tools # If 'ignore' is not set there are default errors and warnings that are set # Doc: http://flake8.readthedocs.org/en/latest/config.html#default ignore = __ import-order-style = pep8 application_import_names = openstackclient python-openstackclient-3.14.2/CONTRIBUTING.rst0000666000175000017500000000107713305130746021002 0ustar zuulzuul00000000000000If you would like to contribute to the development of OpenStack, you must follow the steps documented at: http://docs.openstack.org/infra/manual/developers.html#development-workflow Once those steps have been completed, changes to OpenStack should be submitted for review via the Gerrit tool, following the workflow documented at: http://docs.openstack.org/infra/manual/developers.html#development-workflow Pull requests submitted through GitHub will be ignored. Bugs should be filed on Launchpad, not GitHub: https://bugs.launchpad.net/python-openstackclient python-openstackclient-3.14.2/tools/0000775000175000017500000000000013305131240017460 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/tools/fast8.sh0000777000175000017500000000045313305130746021062 0ustar zuulzuul00000000000000#!/bin/bash cd $(dirname "$0")/.. CHANGED=$(git diff --name-only HEAD~1 | tr '\n' ' ') # Skip files that don't exist # (have been git rm'd) CHECK="" for FILE in $CHANGED; do if [ -f "$FILE" ]; then CHECK="$CHECK $FILE" fi done diff -u --from-file /dev/null $CHECK | flake8 --diff python-openstackclient-3.14.2/releasenotes/0000775000175000017500000000000013305131240021011 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/source/0000775000175000017500000000000013305131240022311 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/source/newton.rst0000666000175000017500000000021413305130746024366 0ustar zuulzuul00000000000000============================ Newton Series Release Notes ============================ .. release-notes:: :branch: origin/stable/newton python-openstackclient-3.14.2/releasenotes/source/_static/0000775000175000017500000000000013305131240023737 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/source/_static/.placeholder0000666000175000017500000000000013305130746026224 0ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/source/pre_20_releases.rst0000666000175000017500000007244213305130746026042 0ustar zuulzuul00000000000000================ Pre-2.0 Releases ================ 1.9.0 (17 Nov 2015) =================== * Several updates to `openstack server` Blueprint :oscbp:`servers ` * `openstack server start` * `openstack server stop` * `openstack server pause` * `openstack server unpause` * `openstack server lock` * `openstack server unlock` * Obfuscate passwords when used in debug mode Bug `1501598 `_ * Clean up `identity provider show` Bug `1478995 `_ * Add `description` to `identity provider set` Bug `1515815 `_ * Add `compute service delete` Bug `1503510 `_ * Log a warning when setting non-ascii object store properties Bug `1503898 `_ * Add 'marker' and 'limit' to `openstack flavor list` Bug `1505874 `_ * Remove `url` from `region create` and `region set` Bug `1506841 `_ * `openstack image add project` fails with AttributeError for image v2 Bug `1509054 `_ * Inconsistent output with `openstack usage show` Bug `1512220 `_ * Validate --lines with `openstack console log show` Bug `1512263 `_ * Validate --project does not exist with `openstack quota set` Bug `1512638 `_ * Cannot list servers while --user specified for `openstack server list` Bug `1513701 `_ * Cannot list volumes while --user specified for `openstack volume list` Bug `1514145 `_ * Cannot find volume with --block-device-mapping with `openstack server create` Bug `1514394 `_ * Fix documentation for `credential set` Bug `1418837 `_ 1.8.0 (18 Oct 2015) =================== * `image create --volume` command (v1) will attempt to create two images Bug `1497221 `_ * Add filtering by project/uesr for command `volume list` Bug `1483976 `_ * Password used by plugin shows up in debug mode Bug `1501598 `_ * Add support for `object store account` Bug `1501943 `_ * Add support for setting properties on objects and containers Bug `1501945 `_ * `role list` ignores `--inherited` option Bug `1502822 `_ * `compute service list` does not return service ID number Bug `1503430 `_ * Containers and objects with non-ascii characters fails Bug `1503508 `_ 1.7.1 (30 Sep 2015) =================== * Image v2 lookup issues Bug `1501362 `_ 1.7.0 (22 Sep 2015) =================== * Add support for v2 image create/update commands Bug `1405562 `_ * ICMP secgroup rule must have ``--dst-port -1`` to actually allow ICMP Bug `1477629 `_ * Add a blurb about ``pip install -e .`` to the developer docs Bug `1483384 `_ * Add filtering by user for command 'openstack server list' Bug `1483974 `_ * No support for listing servers of other project with openstack server list Bug `1488486 `_ * Missing image causes confusing 'server show' response Bug `1489901 `_ * Volume Attached to is incorrect Bug `1489954 `_ * novaclient 2.27.0 breaks version handling Bug `1492467 `_ * Support listing users in a non-default domain scoped group Bug `1492916 `_ * ERROR: InvocationError: '/opt/stack/new/python-openstackclient/.tox/functional/bin/ostestr' in gate-osc-dsvm-functional Bug `1496337 `_ * image list --long is broken with v2 Bug `1498150 `_ * Add ``--log-file`` option support * Set default Block Storage API version to ``2`` 1.6.0 (10 Aug 2015) =================== * Added support for Block Storage v2 APIs Blueprint `volume-v2 `_ * Backup * Snapshot * Volume * Volume Type * Volume QoS * Updated ``python-cliff`` provides improved UX * -h and --help revert to top level help when used in a subcommand Bug `1444983 `_ * suggest commands if command is not recognized Bug `1462192 `_ * Bad argument passed to inherited role assignments CRUD Bug `1482254 `_ * quota show for a project blows up Bug `1481803 `_ * Unscoped saml auth error message refers to invalid option os-auth-type Bug `1477083 `_ * Need a command to show current configuration Bug `1476729 `_ * type should be volume_type Bug `1475958 `_ * openstack volume(v1) type missing show Bug `1475879 `_ * property should be required argument in unset cmd Bug `1475872 `_ * --or-show missing from some command docs Bug `1475485 `_ * missing project-domain to prevent project name collisions for user v3 Bug `1475357 `_ * Cannot manipulate group member by ID Bug `1475127 `_ * glance client expects image ID only, should use base resource Bug `1475001 `_ * trust roles display a trailing character upon show and create Bug `1474707 `_ * catalog list fails in identity v2 Bug `1474656 `_ * openstack flavor unset NoneType error when used without --property Bug `1474237 `_ * TypeError: 'NoneType' object does not support item assignment with latest os-client-config Bug `1473921 `_ * authentication fails when openstackclient prompts for a password Bug `1473862 `_ * New mock release(1.1.0) broke unit/function tests Bug `1473454 `_ * Cannot create keystone trust with python-openstackclient using trustor/trustee id Bug `1473298 `_ * "role assignment list" fails if two users in different domains have the same name Bug `1472909 `_ * openstack catalog list always returns publicURL Bug `1472629 `_ * The network list --dhcp option is inconsistent Bug `1472613 `_ * Add support for showing aggregates in an hypervisor's properties Bug `1470875 `_ * Can't seem to be able to get Openstackclient/examples to work Bug `1470272 `_ * openstack server ssh fails to see floating IP address Bug `1469843 `_ * confused domain argument for network create v2 Bug `1468988 `_ * small typo in network.rst Bug `1468282 `_ * Add support for Cinder volume qos commands Bug `1467967 `_ * mismatch option in server.rst Bug `1466742 `_ * user create mismatch object name in doc Bug `1466738 `_ * Existing image is updated when call image create Bug `1461817 `_ * ERROR: openstack 'ArgumentParser' object has no attribute 'debug' Bug `1459519 `_ * Add an --os-endpoint-type cli optional argument to be able to select endpoint interface type Bug `1454392 `_ * API versions are ignored from OCC Bug `1453229 `_ * Issues with OpenStackClient / Locale / OSX Bug `1436898 `_ * Image sharing does not seem to be supported Bug `1402420 `_ * rename requires files to standard names Bug `1179008 `_ 1.5.0 (16 Jun 2015) =================== * openstack 'ListEC2Creds' object has no attribute 'determine_ec2_user' Bug `1465561 `_ 1.4.0 (11 Jun 2015) =================== * AttributeError: 'Client' object has no attribute 'ec2' Bug `1236326 `_ * Group/role identity v3 commands have no option for domain to operate on Bug `1446546 `_ * ``--insecure`` is ignored if ``OS_CACERT`` env var is set Bug `1447784 `_ * ``security group list`` always uses identity admin endpoint Bug `1459629 `_ * Race failure to delete security group Bug `1460112 `_ * v3 project set is missing ``--domain`` argument Bug `1460122 `_ * Project create is missing ``--parent`` argument in doc Bug `1460256 `_ * v3 ``role add`` is missing domain scope arguments in doc Bug `1460296 `_ * Cannot force v2password auth plugin Bug `1460369 `_ * Let's not use the deprecated argument Bug `1462389 `_ 1.3.0 (27 May 2015) =================== * Need to specify domain with role list Bug `1421328 `_ * Add support for keystone service providers Bug `1435962 `_ * Can't update disk_format and container_format of image Bug `1446362 `_ * Openstack --os-image-api-version 2 image show fails Bug `1450829 `_ * The insecure option is ignored for command line options and OCC Bug `1450855 `_ * Delete security group rule broken Bug `1450872 `_ * Quota set sends invalid messages Bug `1451640 `_ * Keystone Access Log logs "python-keystoneclient" as User-Agent even when request is made by openstack client Bug `1453995 `_ * Client error while rescuing an instance Bug `1457983 `_ 1.2.0 (30 Apr 2015) =================== * Fix error in ``security group create`` command when ``--description`` is not supplied. Bug `1434172 `_ * Correct ``image list`` pagination handling, all images are now correctly returned. Bug `1443089 `_ * Do not require ``--dst-port`` option with ``security group rule create`` when ``--proto ICMP`` is selected. Bug `1443963 `_ * Correctly pass ``--location`` arguemnt in ``image create`` command. Bug `1445460 `_ * Correctly handle use of ``role`` commands for project admins. Using IDs will work for project admins even when names will not due to non-admin contraints. Bug `1445528 `_ * Correctly exit with an error when authentication can not be completed. Bug `1444640 `_ * Fix ``backup create`` to correctly use the ``--container`` value if supplied. Bug `1446751 `_ * Document the backward-compatibility-breaking changes in :oscdoc:`Backwards Incompatible Changes `. :lpbug:`1406470` * Add ``--parent`` option to ``project create`` command 1.1.0 (21 Apr 2015) =================== * Add global ``--os-cloud`` option to select from a list of cloud configurations. See :oscdoc:`Configuration ` for more details. * Fix global ``--timing`` option operation. Bug `1402577 `_ * Add ``flavor set`` and ``flavor unset`` commands. Bug `1434137 `_ * Add ``--domain`` and ``--project`` options to ``network create`` command. Bug `1435640 `_ * Add ``--volume-type`` option to ``quota set`` command. Bug `1438377 `_ * Add ``--domain`` and ``--project`` options to ``limits show`` command. Bug `1438379 `_ * Improve ``--nic`` option help for ``server create`` command. Bug `1444685 `_ * Add ``--remote-id`` and ``--remote-id-file`` options to ``identity provider create`` and ``identity provider set`` commands. 1.0.3 (10 Mar 2015) =================== * Add ``catalog list`` and ``catalog show`` commands for Identity v3. * Add 'hypervisor stats show' command . Bug `1423748 `_ * Rename ``server resize`` option ``--verify`` to ``confirm``. It conflicted with the global ``--verify`` option and never worked prior to this. Bug `1416542 `_ * Add ``trust create/delete/list/show`` commands. Bug `1413718 `_ * Add ``--sort`` to ``image list`` command. Bug `1410251 `_ * Change ``volume create`` option ``--snapshot-id`` to ``--snapshot``. The old name is still silently supported. Bug `1418742 `_ * Add Network API quotas to ``quota show`` command. Bug `1411160 `_ * Add ``--public``, ``--private``, ``--all``, ``--long`` options to ``flavor list`` command. Remove "Extra Specs", "Swap" and"RXTX Factor" columns from default output. Bug `1411160 `_: * Add ``--shared``, ``--property`` options to ``image list`` command. Bug `1401902 `_ * Add ``--size`` option to ``volume set`` command. Bug `1413954 `_ * Bug `1353040 `_: server create --nic option clumsy * Bug `1366279 `_: nova lock command description rather terse * Bug `1399588 `_: Authentication needed for help command * Bug `1401902 `_: image filtering not available * Bug `1410251 `_: sort and filter options on openstack image list * Bug `1411160 `_: Add network support to quota show * Bug `1413718 `_: support keystone v3 trust extension * Bug `1413954 `_: missing volume extend * Bug `1415182 `_: Add extra validation when extending volume * Bug `1416542 `_: openstack client resize verify not completing workflow * Bug `1416780 `_: flavor list missing features * Bug `1417614 `_: tenant_id in server show * Bug `1417854 `_: Fix help messages for `os security group rule create` and `os security group rule list` * Bug `1418024 `_: wrong import of contrib module from novaclient * Bug `1418384 `_: openstack client help shows domain can be changed for a project * Bug `1418742 `_: volume create --snapshot-id is wrong * Bug `1418810 `_: auth with os-token fails with unexpected keyword argument 'user_domain_id' * Bug `1420080 `_: functional tests are failing with new keystoneclient release * Bug `1420732 `_: Better error message for sort_items * Bug `1423748 `_: Add support for hypervisor-stats and hypervisor-uptime command * Bug `1428912 `_: authentication through password prompting is broken * Bug `1429211 `_: 'catalog list' fails when region is not present 1.0.2 (19 Jan 2015) =================== * The OpenStackClient content from the OpenStack Wiki has been migrated into the OSC source repo. This includes the :oscdoc:`Command Structure `, :oscdoc:`Command List ` and :oscdoc:`Human Interface Guide ` documents. * Set a default domain ID when both ``OS_USER_DOMAIN_ID`` and ``OS_USER_DOMAIN_NAME`` are not set. This is also done for ``OS_PROJECT_DOMAIN_ID`` and ``OS_PROJECT_DOMAIN_NAME``. (*Identity API v3 only*). Bug `1385338 `_: Improve domain related defaults when using v3 identity * Add new ``usage show`` command to display project resource usage information. Bug `1400796 `_: Quick usage report - nova usage * Add ``--project`` option to ``user list`` command to filter users by project (*Identity API v3 only*). Bug `1397251 `_: allow `openstack user list` to use other filters * Add ``--user`` to ``project list`` command to filter projects by user (*Identity API v3 only*). Bug `1394793 `_: support the keystone api /v3/users/$userid/projects * Add ``--project`` and ``--user`` options to ``role list`` to filter roles by project and/or user. This makes the v2 command very similar to the v3 command. (*Identity API v2 only*). Bug `1406737 `_: `user role list` command should be worked into `role list` * Bug `1385338 `_: Improve domain related defaults when using v3 identity API * Bug `1390507 `_: Quota show requires cinder in keystone catalog * Bug `1394793 `_: support the keystone api /v3/users/$userid/projects * Bug `1397251 `_: allow `openstack user list` to use other filters * Bug `1399757 `_: ec2 credentials create fails in 1.0.0 * Bug `1400531 `_: Authentication failure results in useless error message * Bug `1400597 `_: delete multiple objects * Bug `1400795 `_: No list availability zones option * Bug `1400796 `_: Quick usage report - nova usage * Bug `1404073 `_: type should be required for v2.0 service create * Bug `1404434 `_: add missing docs for service command * Bug `1404931 `_: volume list does not show attached servers * Bug `1404997 `_: Allow description to be set for service create/update * Bug `1405416 `_: Compute region selection broken * Bug `1406654 `_: Remove deprecated commands from help * Bug `1406737 `_: v3 endpoint related commands access service.name without check * Bug `1408585 `_: Backup list doesn't show backup's name * Bug `1409179 `_: `user role list` command should be worked into `role list` * Bug `1410364 `_: Version discovery fails with default Keystone config * Bug `1411179 `_: network client don't use session * Bug `1411337 `_: identity v3 service list should have "description" column 1.0.1 (08 Dec 2014) =================== * Bug `1399757 `_: EC2 credentials create fails 1.0.0 (04 Dec 2014) =================== * Bug 1337422_: document different ways to authenticate * Bug 1383333_: Creating volume from image required image ID * Bug 1292638_: Perhaps API Versions should Match Easier * Bug 1390389_: create with a soft fail (create or show) for keystone operations * Bug 1387932_: add keystone v3 region object * Bug 1378842_: OSC fails to show server details if booted from volume * Bug 1383338_: server create problems in boot-from-volume * Bug 1337685_: Add the ability to list networks extensions * Bug 1355838_: Don't make calls to Keystone for authN if insufficient args are present * Bug 1371924_: strings are being treated as numbers * Bug 1372070_: help text in error on openstack image save * Bug 1372744_: v3 credential set always needs --user option * Bug 1376833_: odd behavior when editing the domain of a user through Keystone v3 API * Bug 1378165_: Domains should be supported for 'user show' command * Bug 1378565_: The '--domain' arg for identity commands should not require domain lookup * Bug 1379871_: token issue for identity v3 is broken * Bug 1383083_: repeated to generate clientmanager in interactive mode * Added functional tests framework and identity/object tests * Authentication Plugin Support * Use keystoneclient.session as the base HTTP transport * implement swift client commands * clean up 'links' section in keystone v3 resources * Add cliff-tablib to requirements * Include support for using oslo debugger in tests * Close file handlers that were left open * Added framework for i18n support, and marked Identity v2.0 files for translation * Add 'command list' command * CRUD Support for ``OS-FEDERATION`` resources (protocol, mappings, identity providers) .. _1337422: https://bugs.launchpad.net/bugs/1337422 .. _1383333: https://bugs.launchpad.net/bugs/1383333 .. _1292638: https://bugs.launchpad.net/bugs/1292638 .. _1390389: https://bugs.launchpad.net/bugs/1390389 .. _1387932: https://bugs.launchpad.net/bugs/1387932 .. _1378842: https://bugs.launchpad.net/bugs/1378842 .. _1383338: https://bugs.launchpad.net/bugs/1383338 .. _1337685: https://bugs.launchpad.net/bugs/1337685 .. _1355838: https://bugs.launchpad.net/bugs/1355838 .. _1371924: https://bugs.launchpad.net/bugs/1371924 .. _1372070: https://bugs.launchpad.net/bugs/1372070 .. _1372744: https://bugs.launchpad.net/bugs/1372744 .. _1376833: https://bugs.launchpad.net/bugs/1376833 .. _1378165: https://bugs.launchpad.net/bugs/1378165 .. _1378565: https://bugs.launchpad.net/bugs/1378565 .. _1379871: https://bugs.launchpad.net/bugs/1379871 .. _1383083: https://bugs.launchpad.net/bugs/1383083 0.4.1 (08 Sep 2014) =================== * Bug 1319381_: remove insecure keyring support * Bug 1317478_: fix ``project create`` for domain admin * Bug 1317485_: fix ``project list`` for domain admins * Bug 1281888_: add region filter to ``endpoint list`` command * Bug 1337245_: add ``user password set`` command * Bug 1337684_: add ``extension list --compute`` * Bug 1337687_: add ``extension list --volume`` * Bug 1343658_: fix ``container list`` command * Bug 1343659_: add network command help text * Bug 1348475_: add fields to ``image list`` output * Bug 1351121_: v3 ``endpoint set`` should not require service option * Bug 1352119_: v2 ``user create`` response error * Bug 1353788_: test_file_resource() failure * Bug 1364540_: load_keyring() exception fixed in bug 1319381_ * Bug 1365505_: domain information not in help output * fix ``security group list`` for non-admin * fix ``server add security group`` * add ``container create`` and ``container delete`` commands * add ``object create`` and ``object delete`` commands * add initial support for global ``--timing`` options (similar to nova CLI) * complete Python 3 compatibility * fix ``server resize`` command * add authentication via ``--os-trust-id`` for Identity v3 * Add initial support for Network API, ``network create|delete|list|show`` .. _1319381: https://bugs.launchpad.net/bugs/1319381 .. _1317478: https://bugs.launchpad.net/bugs/1317478 .. _1317485: https://bugs.launchpad.net/bugs/1317485 .. _1281888: https://bugs.launchpad.net/bugs/1281888 .. _1337245: https://bugs.launchpad.net/bugs/1337245 .. _1337684: https://bugs.launchpad.net/bugs/1337684 .. _1337687: https://bugs.launchpad.net/bugs/1337687 .. _1343658: https://bugs.launchpad.net/bugs/1343658 .. _1343659: https://bugs.launchpad.net/bugs/1343659 .. _1348475: https://bugs.launchpad.net/bugs/1348475 .. _1351121: https://bugs.launchpad.net/bugs/1351121 .. _1352119: https://bugs.launchpad.net/bugs/1352119 .. _1353788: https://bugs.launchpad.net/bugs/1353788 .. _1364540: https://bugs.launchpad.net/bugs/1364540 .. _1365505: https://bugs.launchpad.net/bugs/1365505 0.4.0 (20 Jun 2014) =================== * Bug 1184012_: fix Identity v2 endpoint command name/id handling * Bug 1207615_: add ``--volume`` and ``--force`` to ``image create`` command * Bug 1220280_: add ``--property`` to project create and set commands * Bug 1246310_: add ``role assignments list`` command * Bug 1285800_: rename ``agent`` to ``compute agent`` * Bug 1289513_: add ``--domain`` to project list * Bug 1289594_: fix keypair show output * Bug 1292337_: fix ec2 credentials project ID output * Bug 1303978_: fix output of ``volume type create`` command * Bug 1316870_: display all output when ``--lines`` omitted from ``console log show`` command * add 'interface' and 'url' columns to endpoint list command * add identity provider create/delete/list/set/show commands * change ``volume create --volume-type`` option to ``--type`` * fix ``server image create`` command output * configure appropriate logging levels for ``--verbose``, ``--quiet`` and ``--debug`` * properly handle properties in Image v1 ``create`` and ``set`` commands * rename Identity v2 ``token create`` to ``token issue`` * add Identity v2 ``token revoke`` command * refactor the ``group|user|role list`` command filters so that each command only lists rows of that type of object, ie ``user list`` always lists users, etc. * add ``role assignment list`` command * add ``extension list`` command .. _1184012: https://launchpad.net/bugs/1184012 .. _1207615: https://launchpad.net/bugs/1207615 .. _1220280: https://launchpad.net/bugs/1220280 .. _1246310: https://launchpad.net/bugs/1246310 .. _1285800: https://launchpad.net/bugs/1285800 .. _1289513: https://launchpad.net/bugs/1289513 .. _1289594: https://launchpad.net/bugs/1289594 .. _1292337: https://launchpad.net/bugs/1292337 .. _1303978: https://launchpad.net/bugs/1303978 .. _1316870: https://launchpad.net/bugs/1316870 0.3.1 (28 Feb 2014) =================== * add ``token create`` command * internal changes for Python 3.3 compatibility * Bug 1100116_: Prompt interactive user for passwords in ``user create`` and ``user set`` * Bug 1198171_: add domain support options for Identity v3 * Bug 1241177_: Fix region handling in volume commands * Bug 1256935_: Clean up ``security group rule list`` output format * Bug 1269821_: Fix for unreleased Glance client change in internal class structure * Bug 1284957_: Correctly pass ``--cacert`` and ``--insecure`` to Identity client in token flow auth .. _1100116: https://bugs.launchpad.net/ubuntu/+source/python-keystoneclient/+bug/1100116 .. _1198171: https://bugs.launchpad.net/keystone/+bug/1198171 .. _1241177: https://bugs.launchpad.net/python-openstackclient/+bug/1241177 .. _1256935: https://bugs.launchpad.net/python-openstackclient/+bug/1256935 .. _1269821: https://bugs.launchpad.net/python-openstackclient/+bug/1269821 .. _1284957: https://bugs.launchpad.net/python-openstackclient/+bug/1284957 0.3.0 (17 Dec 2013) =================== * add new command plugin structure * complete converting base test classes * add options to support TLS cetificate verification * add object-store show commands for container and object 0.2.2 (20 Sep 2013) =================== * add object-store list commands and API library * add test structure 0.2.1 (06 Aug 2013) =================== * sync requirements.txt, test-requirements.txt * remove d2to1 dependency 0.2.0 (02 Aug 2013) =================== * Initial public release to PyPI * Implemented Compute, Identity, Image and Volume API commands python-openstackclient-3.14.2/releasenotes/source/conf.py0000666000175000017500000002317013305130746023627 0ustar zuulzuul00000000000000# -*- coding: utf-8 -*- # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. # OpenStackClient Release Notes documentation build configuration file, created # by sphinx-quickstart on Tue Nov 3 17:40:50 2015. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # sys.path.insert(0, os.path.abspath('.')) # -- General configuration ------------------------------------------------ # If your documentation needs a minimal Sphinx version, state it here. # 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 = [ 'openstackdocstheme', 'reno.sphinxext', 'sphinx.ext.extlinks', ] # openstackdocstheme options repository_name = 'openstack/python-openstackclient' bug_project = 'python-openstackclient' bug_tag = '' # Set aliases for extlinks # * lpbug - generic Launchpad bug :lpbug:`123456` # * oscbp - OSC blueprints :oscbp:`Blue Print ` # * oscdoc - OSC Docs :oscdoc:`Comamnd List ` extlinks = { 'lpbug': ( 'https://bugs.launchpad.net/bugs/%s', 'Bug ', ), 'oscbp': ( 'https://blueprints.launchpad.net/python-openstackclient/+spec/%s', '', ), 'oscdoc': ( 'https://docs.openstack.org/python-openstackclient/latest/%s.html', '', ), } # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # The suffix of source filenames. source_suffix = '.rst' # The encoding of source files. # source_encoding = 'utf-8-sig' # The master toctree document. master_doc = 'index' # General information about the project. project = u'OpenStackClient Release Notes' copyright = u'2015, OpenStackClient Developers' # Release notes are version independent. # The full version, including alpha/beta/rc tags. release = '' # The short X.Y version. version = '' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # language = None # There are two options for replacing |today|: either, you set today to some # non-false value, then it is used: # today = '' # Else, today_fmt is used as the format for a strftime call. # today_fmt = '%B %d, %Y' # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. exclude_patterns = [] # The reST default role (used for this markup: `text`) to use for all # documents. # default_role = None # If true, '()' will be appended to :func: etc. cross-reference text. # 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 # If true, sectionauthor and moduleauthor directives will be shown in the # output. They are ignored by default. # show_authors = False # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # A list of ignored prefixes for module index sorting. # modindex_common_prefix = [] # If true, keep warnings as "system message" paragraphs in the built documents. # keep_warnings = False # -- Options for HTML output ---------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. 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 = { 'display_toc': False, } # Add any paths that contain custom themes here, relative to this directory. # html_theme_path = [] # The name for this set of Sphinx documents. If None, it defaults to # " v documentation". # html_title = None # A shorter title for the navigation bar. Default is the same as html_title. # 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 # 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 # 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'] # Add any extra paths that contain custom files (such as robots.txt or # .htaccess) here, relative to this directory. These files are copied # directly to the root of the documentation. # html_extra_path = [] # If not '', a 'Last updated on:' timestamp is inserted at every page bottom, # using the given strftime format. # html_last_updated_fmt = '%b %d, %Y' html_last_updated_fmt = '%Y-%m-%d %H:%M' # If true, SmartyPants will be used to convert quotes and dashes to # typographically correct entities. # html_use_smartypants = True # Custom sidebar templates, maps document names to template names. # html_sidebars = {} # Additional templates that should be rendered to pages, maps page names to # template names. # html_additional_pages = {} # If false, no module index is generated. # html_domain_indices = True # If false, no index is generated. # html_use_index = True # If true, the index is split into individual pages for each letter. # html_split_index = False # If true, links to the reST sources are added to the pages. # html_show_sourcelink = True # If true, "Created using Sphinx" is shown in the HTML footer. Default is True. # html_show_sphinx = True # If true, "(C) Copyright ..." is shown in the HTML footer. Default is 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 = '' # This is the file name suffix for HTML files (e.g. ".xhtml"). # html_file_suffix = None # Output file base name for HTML help builder. htmlhelp_basename = 'OpenStackClientReleaseNotesdoc' # -- 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': '', } # Grouping the document tree into LaTeX files. List of tuples # (source start file, target name, title, # author, documentclass [howto, manual, or own class]). latex_documents = [( 'index', 'OpenStackClientReleaseNotes.tex', u'OpenStackClient Release Notes Documentation', u'OpenStackClient Developers', 'manual', )] # The name of an image file (relative to this directory) to place at the top of # the title page. # latex_logo = None # For "manual" documents, if this is true, then toplevel headings are parts, # not chapters. # latex_use_parts = False # If true, show page references after internal links. # latex_show_pagerefs = False # If true, show URL addresses after external links. # latex_show_urls = False # Documents to append as an appendix to all manuals. # latex_appendices = [] # If false, no module index is generated. # latex_domain_indices = True # -- Options for manual page output --------------------------------------- # One entry per manual page. List of tuples # (source start file, name, description, authors, manual section). man_pages = [( 'index', 'openstackclientreleasenotes', u'OpenStackClient Release Notes Documentation', [u'OpenStackClient Developers'], 1, )] # If true, show URL addresses after external links. # man_show_urls = False # -- Options for Texinfo output ------------------------------------------- # Grouping the document tree into Texinfo files. List of tuples # (source start file, target name, title, author, # dir menu entry, description, category) texinfo_documents = [( 'index', 'OpenStackClientReleaseNotes', u'OpenStackclient Release Notes Documentation', u'OpenStackclient Developers', 'OpenStackClientReleaseNotes', 'A unified command-line client for OpenStack.', 'Miscellaneous', )] # Documents to append as an appendix to all manuals. # texinfo_appendices = [] # If false, no module index is generated. # texinfo_domain_indices = True # How to display URL addresses: 'footnote', 'no', or 'inline'. # texinfo_show_urls = 'footnote' # If true, do not generate a @detailmenu in the "Top" node's menu. # texinfo_no_detailmenu = False # -- Options for Internationalization output ------------------------------ locale_dirs = ['locale/'] python-openstackclient-3.14.2/releasenotes/source/pike.rst0000666000175000017500000000021713305130746024007 0ustar zuulzuul00000000000000=================================== Pike Series Release Notes =================================== .. release-notes:: :branch: stable/pike python-openstackclient-3.14.2/releasenotes/source/unreleased.rst0000666000175000017500000000016213305130746025205 0ustar zuulzuul00000000000000===================== Current Release Notes ===================== .. release-notes:: :earliest-version: 3.0.0 python-openstackclient-3.14.2/releasenotes/source/ocata.rst0000666000175000017500000000023013305130746024141 0ustar zuulzuul00000000000000=================================== Ocata Series Release Notes =================================== .. release-notes:: :branch: origin/stable/ocata python-openstackclient-3.14.2/releasenotes/source/20_releases.rst0000666000175000017500000000022013305130746025155 0ustar zuulzuul00000000000000======================== 2.0 Series Release Notes ======================== .. release-notes:: :version: 2.6.0,2.5.0,2.4.0,2.2.0,2.1.0,2.0.0 python-openstackclient-3.14.2/releasenotes/source/mitaka.rst0000666000175000017500000000021613305130746024324 0ustar zuulzuul00000000000000============================= Mitaka Series Release Notes ============================= .. release-notes:: :branch: origin/stable/mitaka python-openstackclient-3.14.2/releasenotes/source/index.rst0000666000175000017500000000203413305130760024161 0ustar zuulzuul00000000000000============================= OpenStackClient Release Notes ============================= .. toctree:: :maxdepth: 1 unreleased pike ocata newton mitaka 20_releases pre_20_releases OpenStack Releases ------------------ OpenStackClient is compatible with all currently supported OpenStack releases, it does not require maintaining a 'Mitaka' version to match to a Mitala-release cloud. The OpenStackClient release that was current when the corresponding OpenStack release was made is shown below: ================= ======================= OpenStack Release OpenStackClient Release ================= ======================= Pike 3.12.0 Ocata 3.8.1 Newton 3.2.0 Mitaka 2.3.0 Liberty 1.7.3 Kilo 1.0.6 Juno 0.4.1 Icehouse 0.3.1 ================= ======================= Further details for historical OpenStack releases are found at the `OpenStack Releases`_ page. .. _`OpenStack Releases`: http://releases.openstack.org/ python-openstackclient-3.14.2/releasenotes/source/_templates/0000775000175000017500000000000013305131240024446 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/source/_templates/.placeholder0000666000175000017500000000000013305130746026733 0ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/notes/0000775000175000017500000000000013305131240022141 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/releasenotes/notes/bug-1578819-d1efccfefb18356d.yaml0000666000175000017500000000043513305130746027205 0ustar zuulzuul00000000000000--- features: - | Add ``--internal``, ``--name``, ``--project`` and ``--project-domain``, ``--enable`` and ``--disable``, ``--share`` and ``--no share``, ``--status`` options to the ``network list`` command. [Bug `1578819 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1655537-20b0eb676afa278f.yaml0000666000175000017500000000036313305130746026747 0ustar zuulzuul00000000000000--- fixes: - | Fixed a ``'Quota' object is not iterable`` error in the ``quota show`` command that appeared with the initial release of openstacksdk v0.9.11 and v0.9.12. [Bug `1655537 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1643861-b17ad5dfcb4304ff.yaml0000666000175000017500000000023213305130746027074 0ustar zuulzuul00000000000000--- features: - Add ``Is Public`` column to ``volume type list``. [Bug `1643861 `_] python-openstackclient-3.14.2/releasenotes/notes/.placeholder0000666000175000017500000000000013305130746024426 0ustar zuulzuul00000000000000././@LongLink0000000000000000000000000000014700000000000011217 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/backup_list_all-projects_option-4bb23e0b9b075cac.yamlpython-openstackclient-3.14.2/releasenotes/notes/backup_list_all-projects_option-4bb23e0b9b075cac.ya0000666000175000017500000000020613305130746033414 0ustar zuulzuul00000000000000--- features: - Add ``--all-projects`` option to the ``volume backup list`` command to list volume backups across all projects. python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-413b6d80232f8ece.yaml0000666000175000017500000000034313305130746032245 0ustar zuulzuul00000000000000--- features: - | Add ``--type`` and ``--retype-policy`` options to ``volume set`` command. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1600196-6a733dd4e3371df7.yaml0000666000175000017500000000033213305130746026661 0ustar zuulzuul00000000000000--- features: - | Add ``--incremental`` option to ``backup create`` command to allow users to create incremental backups. [Bug `1600196 `_] python-openstackclient-3.14.2/releasenotes/notes/add-port-show-command-de0a599017189a21.yaml0000666000175000017500000000023113305130746031215 0ustar zuulzuul00000000000000--- features: - | Add support for the ``port show`` command. [Bug `1519909 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613597-b1545148b0755e6f.yaml0000666000175000017500000000024113305130746026527 0ustar zuulzuul00000000000000--- features: - Add ``volume service set`` commands in volume v1 and v2. [Bug `1613597 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1647406-c936581034a1b6e4.yaml0000666000175000017500000000142413305130746026522 0ustar zuulzuul00000000000000--- fixes: - | Allow ``--block-device-mapping`` option to work correctly with ``--volume`` option in ``server create`` command. After :lpbug:`1383338` ``--block-device-mapping`` was ignored if ``--volume`` was present. Block device mappings are now appended to the mapping created by the ``--volume`` option if it is present. The device name of the boot volume specificed in the ``--volume`` option is no longer assumed to be *'vda'* but now uses the hypervisor's boot index to obtain the device name. This maintains the status quo for **QEMU/KVM** hypervisors but **XEN**, **parallels** and others *virt types* that have device naming is different from ``vd*`` should now also work correctly. [:lpbug:`1497845`] [:lpbug:`1647406`] python-openstackclient-3.14.2/releasenotes/notes/bug-1597296-9735f33eacf5552e.yaml0000666000175000017500000000027513305130746026714 0ustar zuulzuul00000000000000--- fixes: - Fixed service name lookup in Identity commands to properly handle multiple matches. [Bug `1597296 `_] ././@LongLink0000000000000000000000000000015600000000000011217 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/support-no-property-in-volume-snapshot-0af3fcb31a3cfc2b.yamlpython-openstackclient-3.14.2/releasenotes/notes/support-no-property-in-volume-snapshot-0af3fcb31a3c0000666000175000017500000000033513305130746033614 0ustar zuulzuul00000000000000--- features: - | Add ``--no-property`` option in ``volume snapshot set``. [Blueprint `allow-overwrite-set-options `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1517134-9efecb257910989c.yaml0000666000175000017500000000027213305130746026702 0ustar zuulzuul00000000000000--- features: - | Add ``--project-domain`` option to ``image create`` and ``image set`` commands (Image v2 only) [Bug `1517134 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519511-65d8d21dde31e5e2.yaml0000666000175000017500000000030113305130746026731 0ustar zuulzuul00000000000000--- features: - Add ``--project`` and ``--project-domain`` options to the ``security group create`` command for Network v2. [Bug `1519511 `_] python-openstackclient-3.14.2/releasenotes/notes/server-set-state-214b12ec2161de4d.yaml0000666000175000017500000000036213305130746030453 0ustar zuulzuul00000000000000--- features: - | Add ``--state`` option to ``server set`` command to set the server to active or error state. [Blueprint `server-reset-state `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1582968-4d44912a033b242c.yaml0000666000175000017500000000010513305130746026513 0ustar zuulzuul00000000000000--- features: - Add ``image unset`` command [:lpbug:`1582968`] python-openstackclient-3.14.2/releasenotes/notes/bug-1605475-84e649fb8c675737.yaml0000666000175000017500000000023613305130746026557 0ustar zuulzuul00000000000000--- features: - | Add ``--limit`` and ``--marker`` options to ``snapshot list`` command. [Bug `1605475 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-rbac-bbd7b545b50d2bdf.yaml0000666000175000017500000000042713305130746031743 0ustar zuulzuul00000000000000--- features: - Add ``network rbac list``, ``network rbac show``, ``network rbac create``, ``network rbac delete`` and ``network rbac set`` commands. [Blueprint `neutron-client-rbac `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1597192-52801f7520287309.yaml0000666000175000017500000000021313305130746026307 0ustar zuulzuul00000000000000--- features: - Add ``--property`` option to ``snapshot create`` command. [Bug `1597192 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1663520-d880bfa51ca7b798.yaml0000666000175000017500000000055413305130746026753 0ustar zuulzuul00000000000000--- fixes: - | Fix ``server create`` command failed when ``--nic`` auto or none. ``auto`` and ``none`` options was added into --nic argument of server create command, but that don't work and raise internal error when execute command. The patch fix that issue. [Bug `1663520 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1559866-733988f5dd5b07bb.yaml0000666000175000017500000000021013305130746026704 0ustar zuulzuul00000000000000--- features: - Add ``aggregate unset`` command [Bug `1559866 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614379-d8e2815804d53cef.yaml0000666000175000017500000000032713305130746026700 0ustar zuulzuul00000000000000--- features: - | Add ``--long``, ``--status``, ``--project``, ``--project-domain``, and ``--router`` options to ``floating ip list`` command. [Bug `1614379 `_]python-openstackclient-3.14.2/releasenotes/notes/allow-to-add-remove-vm-ports-273593d7cc1982de.yaml0000666000175000017500000000035013305130746032553 0ustar zuulzuul00000000000000--- features: - | Add ``server add port`` and ``server remove port`` commands which enable to add/remove ports to/from a server [Bug `1678137 `_] ././@LongLink0000000000000000000000000000015300000000000011214 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-network-auto-allocated-topology-481580f48840bfc4.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-network-auto-allocated-topology-481580f48840bfc0000666000175000017500000000031213305130746033061 0ustar zuulzuul00000000000000--- features: - | Add support for the ``network auto allocated topology`` command for creating and deleting auto allocated topologies. [Blueprint :oscbp:`network-auto-allocated-topology`] python-openstackclient-3.14.2/releasenotes/notes/bug-1519181-932c1ff07ef16666.yaml0000666000175000017500000000022413305130746026611 0ustar zuulzuul00000000000000--- fixes: - | Add Status column to default ``image list`` output (v1 and v2) [Bug `1519181 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1561599-d5f541f08ae6274a.yaml0000666000175000017500000000053513305130746026700 0ustar zuulzuul00000000000000--- fixes: - When performing ``domain show``, ``project show`` or ``user show``, peek into the user token to determine the ID or the resource (if supplied with only a name). This should make finding information about the user and their project easier for non-admin users. [Bug `1561599 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1635580-54e0039b469ad5a6.yaml0000666000175000017500000000034213305130746026603 0ustar zuulzuul00000000000000--- features: - | Add ``--provider-network-type``, ``--provider-physical-network``, and ``--provider-segment`` options to the ``network list`` command. [Bug `1635580 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614458-c42be5738f447db8.yaml0000666000175000017500000000025313305130746026677 0ustar zuulzuul00000000000000--- features: - | Adds ``--description`` option to ``subnet create`` and ``subnet set`` commands. [Bug `1614458 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1672634-ef754cb5109dd0f2.yaml0000666000175000017500000000026113305130746026743 0ustar zuulzuul00000000000000--- fixes: - | Narrow acceptable negative response codes for ``group contains user`` [Bug `1672634 `_] python-openstackclient-3.14.2/releasenotes/notes/add-volume-host-failover-8fc77b24533b7fed.yaml0000666000175000017500000000027713305130746032173 0ustar zuulzuul00000000000000--- features: - | Add ``volume host failover`` command. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1520541-44d45e4693089c03.yaml0000666000175000017500000000026713305130746026446 0ustar zuulzuul00000000000000--- fixes: - | Fix ``volume delete`` command to delete all specified volumes rather than only the last volume [Bug `1520541 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-routed-networks-86a24f34d86fca53.yaml0000666000175000017500000000046513305130746031044 0ustar zuulzuul00000000000000--- features: - Add ``--network-segment`` option to the ``subnet create`` command. This is a beta command option and subject to change. Use global option ``--os-beta-command`` to enable this option. [Blueprint `routed-networks `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613964-837196399be16b3d.yaml0000666000175000017500000000067713305130746026556 0ustar zuulzuul00000000000000--- features: - Add ``consistency group create`` command in volume v2. [Bug `1613964 `_] - Add ``consistency group delete`` command in volume v2. [Bug `1613964 `_] - Add ``consistency group show`` command in volume v2. [Bug `1613964 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-48624c5a32432a47.yaml0000666000175000017500000000021513305130746026431 0ustar zuulzuul00000000000000--- features: - | Add support for ``security group rule show`` command. [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-network-dhcp-adv-commands-e61bf8757f46dc93.yaml0000666000175000017500000000044513305130746032656 0ustar zuulzuul00000000000000--- features: - | Add network dhcp-agent related commands ``network agent add network``, ``network agent remove network``, ``network agent list --network`` and ``network list --agent`` for adding/removing network to dhcp agent. [Blueprint :oscbp:`network-dhcp-adv-commands`] python-openstackclient-3.14.2/releasenotes/notes/bug-1524456-9967fac653c91cb2.yaml0000666000175000017500000000032113305130746026672 0ustar zuulzuul00000000000000--- fixes: - | Change the ``project set --domain`` option to use the argument as a lookup for locating projects in non-default domains. [Bug `1524456 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1545609-bdc1efc17214463b.yaml0000666000175000017500000000024013305130746026730 0ustar zuulzuul00000000000000--- fixes: - | Fixed ``openstack command list`` to display properly [Bug `1545609 `_] python-openstackclient-3.14.2/releasenotes/notes/allow-to-create-legacy-router-cb4dcb44dde74684.yaml0000666000175000017500000000025413305130746033202 0ustar zuulzuul00000000000000--- features: - | Add ``--no-ha`` option to the ``router create`` command [Bug `1675514 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613533-93279179c6f70117.yaml0000666000175000017500000000027713305130746026402 0ustar zuulzuul00000000000000--- features: - | Add ``--ingress``, ``--egress`` and ``--protocol`` options to ``security group rule list`` command. [Bug `1613533 `_] ././@LongLink0000000000000000000000000000015600000000000011217 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/make-snapshot-and-backup-name-optional-01971d33640ef1c8.yamlpython-openstackclient-3.14.2/releasenotes/notes/make-snapshot-and-backup-name-optional-01971d33640e0000666000175000017500000000016113305130746033004 0ustar zuulzuul00000000000000--- fixes: - Make ``--name`` optional in ``volume snapshot create`` and ``volume backup create`` commands. python-openstackclient-3.14.2/releasenotes/notes/bp-network-l3-adv-commands-cc1df715a184f1b2.yaml0000666000175000017500000000062213305130746032300 0ustar zuulzuul00000000000000--- features: - | Add ``network agent add router`` and ``network agent remove router`` commands for adding/removing routers to network l3 agents. [Blueprint :oscbp:`network-l3-commands`] - | Add ``--router`` option to ``network agent list`` to filter by router, and ``--agent`` option to ``router list`` command to filter by agent. [Blueprint :oscbp:`network-l3-commands`] python-openstackclient-3.14.2/releasenotes/notes/add-network-qos-rule-22cc1ddd509941db.yaml0000666000175000017500000000043213305130746031312 0ustar zuulzuul00000000000000--- features: - | Add support for Network QoS rule commands: ``network qos rule create``, ``network qos rule delete``, ``network qos rule list``, ``network qos rule show`` and ``network qos rule set`` [Bug `1609472 `_] ././@LongLink0000000000000000000000000000015400000000000011215 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/image-set-to-update-image-membership-68221f226ca3b6e0.yamlpython-openstackclient-3.14.2/releasenotes/notes/image-set-to-update-image-membership-68221f226ca3b60000666000175000017500000000023113305130746032757 0ustar zuulzuul00000000000000--- features: - Add support to update image membership with the ``--accept``, ``--reject`` and ``--pending`` options of the ``image set command``. python-openstackclient-3.14.2/releasenotes/notes/bug-1612136-63aac6377209db38.yaml0000666000175000017500000000027413305130746026600 0ustar zuulzuul00000000000000--- features: - | Add ``--dns-name`` option to ``os port create`` and ``os port set`` commands. [Bug `1612136 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1664255-f82c5c13d92fed2a.yaml0000666000175000017500000000054713305130746027033 0ustar zuulzuul00000000000000--- fixes: - | Allow users to create centralized (distributed=False) routers using the ``--centralized`` option in ``router create``. Without this, routers are created based on the default neutron configuration of the deployment, which, for example, could be 'distributed'. [Bug `1664255 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-multi-argument-network-e43e192ac95db94d.yaml0000666000175000017500000000046613305130746032412 0ustar zuulzuul00000000000000--- features: - Support bulk deletion for ``subnet pool delete``, ``subnet delete``, ``floating ip delete``, ``security group delete`` and ``security group rule delete``. [Blueprint `multi-argument-network `_] python-openstackclient-3.14.2/releasenotes/notes/modify-compute-agent-set-77ff894ef62ebbc7.yaml0000666000175000017500000000012113305130746032263 0ustar zuulzuul00000000000000--- upgrade: - Migrate command ``compute agent set`` arguments to be optional. python-openstackclient-3.14.2/releasenotes/notes/bug-1656402-88b12760fb2d4ef9.yaml0000666000175000017500000000033713305130746026673 0ustar zuulzuul00000000000000--- fixes: - | Fix ``floating ip delete`` and ``floating ip show`` to accept IP addresses in addition to IDs to select floating IPs to delete or show. [Bug `1656402 `_ python-openstackclient-3.14.2/releasenotes/notes/bug-1642030-166b2b28c8adf22e.yaml0000666000175000017500000000057113305130746026727 0ustar zuulzuul00000000000000--- features: - | Add ``server event list`` and ``server event show`` commands. A server event is the event record of actions performed on a server, including: event type(create, delete, reboot and so on), event result(success, error), start time, finish time and others. [Bug `1642030 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-65df002102b7fb99.yaml0000666000175000017500000000143013305130746026573 0ustar zuulzuul00000000000000--- features: - The ``security group rule list`` command now uses Network v2 when enabled which results in ``egress`` security group rules being displayed. The ``--long`` option was also added for Network v2 to display direction and ethertype information. In addition, security group rules for all projects will be displayed when the ``group`` argument is not specified (admin only). This is done by default when using Network v2, but requires the new ``--all-projects`` option when using Compute v2. [Bug `1519512 `_] fixes: - The ``security group rule list`` command no longer ignores the ``group`` argument when it is set to an empty value. [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1566269-2572bca9157ca107.yaml0000666000175000017500000000036713305130746026611 0ustar zuulzuul00000000000000--- features: - Add ``address scope create``, ``address scope delete``, ``address scope list``, ``address scope set`` and ``address scope show`` commands. [Bug `1566269 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1540656-f7b7b7e3feef2440.yaml0000666000175000017500000000030313305130746027026 0ustar zuulzuul00000000000000--- features: - The ``security group rule create`` command now supports a security group name for the ``--src-group`` option. [Bug `1540656 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1545537-12bbf01d2280dd2f.yaml0000666000175000017500000000047713305130746026734 0ustar zuulzuul00000000000000--- features: - | Add provider network options ``--provider-network-type``, ``--provider-physical-network`` and ``--provider-segment`` to the ``network create`` and ``network set`` commands. These options are available for NetworkV2 only. [Bug `1545537 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1655445-96c787e3a51226e0.yaml0000666000175000017500000000032013305130746026527 0ustar zuulzuul00000000000000--- fixes: - | Work around a bug in OpenStackSDK 0.9.11 and 0.9.12 that causes ``quota set --network`` to fail. [Bug `1655445 `_] python-openstackclient-3.14.2/releasenotes/notes/add-no-property-f97e4b2f390cec06.yaml0000666000175000017500000000030313305130746030364 0ustar zuulzuul00000000000000--- features: - | Add support to clear/overwrite all flavor properties using ``--no-property`` option with ``flavor set`` command. [Blueprint :oscbp:`allow-overwrite-set-options`] python-openstackclient-3.14.2/releasenotes/notes/bug-1639231-21823768bd54170a.yaml0000666000175000017500000000035313305130746026437 0ustar zuulzuul00000000000000--- features: - | The ``image list`` command will now sort by name in ascending order by default. ``--sort`` option will have the default value of ``name:asc``. [Bug `1639231 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1513894-6d2f05db6e1df744.yaml0000666000175000017500000000035113305130746026750 0ustar zuulzuul00000000000000--- features: - | Add ``--use-prefix-delegation`` option to the ``subnet create`` command to specify 'Prefix Delegation' as a subnetpool when creating subnets. [Bug `1513894 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614121-a3c5b6892074d5ae.yaml0000666000175000017500000000046013305130746026651 0ustar zuulzuul00000000000000--- features: - | Added ``--egress`` and ``--ingress`` options to ``network qos rule create`` and ``network qos rule set`` commands. This adds directionality to Network QoS ``bandwidth-limit`` rule type. [Bug `1614121 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1554886-8e5249a655e7e7b6.yaml0000666000175000017500000000013413305130746026635 0ustar zuulzuul00000000000000--- features: - | Add ``volume transfer request list`` command [:lpbug:`1554886`] python-openstackclient-3.14.2/releasenotes/notes/bug-1652827-f59bbd1b64df958d.yaml0000666000175000017500000000026013305130746027042 0ustar zuulzuul00000000000000--- fixes: - | Fix an endpoint version problem with Image endpoints that contained the substring 'v2'. [Bug `1652827 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1543214-959aee7830db2b0d.yaml0000666000175000017500000000035513305130746026741 0ustar zuulzuul00000000000000--- fixes: - | The ``token issue`` can now return an unscoped token. If a `project` or `domain` target scope are not specified, an unscoped token will be returned. [Bug `1543214 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1612484-e8605ad8966a455e.yaml0000666000175000017500000000036113305130746026620 0ustar zuulzuul00000000000000--- features: - | Add ``--limit`` option to ``volume list`` command in volume v1, add ``--limit`` and ``--marker`` options to ``volume list`` command in volume v2. [Bug `1612484 `_] python-openstackclient-3.14.2/releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml0000666000175000017500000000023513305130746027574 0ustar zuulzuul00000000000000--- features: - | Add ``--mtu`` option to ``network create`` and ``network set`` commands, allowing CLI users to set the MTU for Neutron networks. python-openstackclient-3.14.2/releasenotes/notes/rename-snapshot-commands-e0937f7143a4ef55.yaml0000666000175000017500000000114313305130746032107 0ustar zuulzuul00000000000000--- features: - Add new commands ``volume snapshot create/delete/list/show/set/unset``. They are used to replace the old commands ``snapshot create/delete/list/show/set/unset``. [Blueprint `backup-snapshot-renamed-for-volume-resource `_] deprecations: - Deprecate commands ``snapshot create/delete/list/show/set/unset``. [Blueprint `backup-snapshot-renamed-for-volume-resource `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1544589-b9f669ef71aa5e57.yaml0000666000175000017500000000022613305130746026775 0ustar zuulzuul00000000000000--- features: - Add support for ``subnet pool list`` command. [Bug `1544589 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-cc8708c4395ce467.yaml0000666000175000017500000000051513305130746032206 0ustar zuulzuul00000000000000--- features: - Add ``volume transfer request create``, ``volume transfer request delete``, ``volume transfer request show`` and ``volume transfer request accept`` commands in volume v1 and v2. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/no-project-usage-list-e88eb49aa2e96cf7.yaml0000666000175000017500000000014213305130746031567 0ustar zuulzuul00000000000000--- upgrade: - Removed the deprecated command ``project usage list`` in favor of ``usage list`` python-openstackclient-3.14.2/releasenotes/notes/ip-availability-ca1cf440f6c70afc.yaml0000666000175000017500000000021113305130746030536 0ustar zuulzuul00000000000000--- features: - | Add ``ip availability list`` and ``ip availability show`` commands [Blueprint :oscbp:`neutron-ip-capacity`] python-openstackclient-3.14.2/releasenotes/notes/network-add-qos-policy-a25e868e67142f90.yaml0000666000175000017500000000053013305130746031443 0ustar zuulzuul00000000000000--- features: - | Add QoS support for Network commands. The new parameter ``qos-policy`` is added to ``network create`` and ``network set`` commands. This parameter is the name or the ID of the network QoS policy to attach to this network. [Bug `1627069 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1661814-1692e68a1d2d9770.yaml0000666000175000017500000000032313305130746026531 0ustar zuulzuul00000000000000--- fixes: - | Fix ``module list --all`` command failed, and enhance the related unit tests and funcational tests. [Bug `1661814 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519503-978a68a54819dbbc.yaml0000666000175000017500000000024313305130746026675 0ustar zuulzuul00000000000000--- features: - | Add ``router`` commands ``create``, ``delete``, ``list``, ``set``, ``show`` [Bug `1519503 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1572228-03638a7adec5da8b.yaml0000666000175000017500000000037413305130746027024 0ustar zuulzuul00000000000000--- fixes: - Fixed ``network create``, ``network show`` and ``network list`` commands to correctly display the router type in the ``router:external`` and ``Router Type`` columns. [Bug `1572228 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1538372-ef3a30298357f972.yaml0000666000175000017500000000023713305130746026543 0ustar zuulzuul00000000000000--- features: - | Add support for the `server dump create` command [Bug `1538372 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1659993-a5fe43bef587e490.yaml0000666000175000017500000000033613305130746026777 0ustar zuulzuul00000000000000--- fixes: - | The ``address scope list`` command failed with 'HttpException: Bad Request' when the ``--share`` or ``--no-share`` options were used. [Bug `1659993 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1657956-977a615f01775288.yaml0000666000175000017500000000121413305130746026415 0ustar zuulzuul00000000000000--- fixes: - | 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. [Bug `1657956 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1656767-36a3d4b9fac335c9.yaml0000666000175000017500000000026313305130746026760 0ustar zuulzuul00000000000000--- fixes: - | Fixed a ``volume qos create`` display mistake in argument of ``specs``. [Bug `1656767 `_] python-openstackclient-3.14.2/releasenotes/notes/add-implied-role-0cdafb131fbd7453.yaml0000666000175000017500000000156713305130746030523 0ustar zuulzuul00000000000000--- features: - | Support for creating, deleting, and listing implied roles has been added. This allows users to create an inference rule between two roles. The first, called the prior role is the role explicitly assigned to an individual. The second, called the implied role, is one that the user is assgined implicitly. Additionally, these rules can be chained, such that an implied role from the first inference rule can be the implied role in the second. Thus one explicitly assigned role can lead to multiple implied roles. ``implied role create --implied-role `` creates an association between prior and implied roles. ``implied role delete --implied-role `` removes an association between prior and implied roles. ``implied role list`` Lists all implied roles that currently exist. python-openstackclient-3.14.2/releasenotes/notes/bug-1717829-c1de1d777d3abaf9.yaml0000666000175000017500000000021013305130746027105 0ustar zuulzuul00000000000000--- fixes: - | Add ``--no-fixed-ip`` option to ``port create`` command. [Bug `1717829 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1658189-d2b390ad74c96c79.yaml0000666000175000017500000000041313305130746026705 0ustar zuulzuul00000000000000--- fixes: - | Make the ``role assignment list`` command callable without administrator permissions if restricted to the user's own project with the ``--project`` option. [Bug `1658189 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1544587-ec3ca453c1340b4e.yaml0000666000175000017500000000023013305130746026726 0ustar zuulzuul00000000000000--- features: - Add support for ``subnet pool delete`` command. [Bug `1544587 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1571812-49cdce4df5f3d481.yaml0000666000175000017500000000061613305130746027035 0ustar zuulzuul00000000000000--- upgrade: - | Deprecate global option ``--profile`` in favor of ``--os-profile``. ``--profile`` interferes with existing command options with the same name. Unfortunately it appeared in a release so we must follow the deprecation process and wait one year (April 2017) before removing it. [Bug `1571812 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1609767-0602edc4408c2dc6.yaml0000666000175000017500000000033513305130746026663 0ustar zuulzuul00000000000000--- features: - Support to update ``per_volume_gigabytes``, ``backup_gigabytes`` and ``backups`` quota in ``quota set`` command. [Bug `1609767 `_] python-openstackclient-3.14.2/releasenotes/notes/speedup-object-save-6bd59e678a31c3e8.yaml0000666000175000017500000000024113305130746031134 0ustar zuulzuul00000000000000--- fixes: - | Makes ``openstack object save`` much faster when saving an object to disk. [Bug `1654645 `_] python-openstackclient-3.14.2/releasenotes/notes/fix-network-rbac-create-d1f4de77ad2dd421.yaml0000666000175000017500000000016313305130746032035 0ustar zuulzuul00000000000000--- features: - | ``rbac_object`` parameter in ``network rbac create`` command now can be a QoS policy name. python-openstackclient-3.14.2/releasenotes/notes/bug-1612898-bea3b68251d12d81.yaml0000666000175000017500000000030613305130746026661 0ustar zuulzuul00000000000000--- features: - | Add ``--network`` and ``--port`` options to ``server create`` command as alternatives to ``--nic`` option. [Bug `1612898 `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-network-qos-rule-type-show-57a714a1d428726e.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-network-qos-rule-type-show-57a714a1d428726e.yam0000666000175000017500000000010413305130746032657 0ustar zuulzuul00000000000000--- features: - | Add ``network qos rule type show`` command. python-openstackclient-3.14.2/releasenotes/notes/bug-1575461-4d7d90e792132064.yaml0000666000175000017500000000040713305130746026451 0ustar zuulzuul00000000000000--- features: - | Add ``--project`` option to ``flavor set`` command to set project access to a flavor [:lpbug:`1575461`] - | Add ``--project`` option to ``flavor unset`` command to remove project access to a flavor [:lpbug:`1575461`] python-openstackclient-3.14.2/releasenotes/notes/bug-1627555-3b47eba215e35b3c.yaml0000666000175000017500000000066313305130746026741 0ustar zuulzuul00000000000000--- features: - | The ``project list`` command lists all projects when called by an admin user. For non-admin users it will now list projects for the authenticated user instead of exiting with an authorization failure. The ``--my-projects`` option has also been added to the ``project list`` command to allow admin users to list their own projects. [Bug `1627555 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1597195-54ff1ecf381899f6.yaml0000666000175000017500000000032013305130746026716 0ustar zuulzuul00000000000000--- features: - | Add ``--force`` option to ``volume snapshot delete`` command to allow delete in state other than error or available. [Bug `1597195 `_] python-openstackclient-3.14.2/releasenotes/notes/add-server-group-quotas-b67fcba98619f0c9.yaml0000666000175000017500000000030713305130746032054 0ustar zuulzuul00000000000000--- features: - Added support of --server-groups --server-group-members options to ``quota set`` command. [Bug `1602223 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1597188-a2ff62b809865365.yaml0000666000175000017500000000030713305130746026552 0ustar zuulzuul00000000000000--- features: - | Add ``--force`` option to ``backup delete`` command to allow delete in state other than error or available. [Bug `1597188 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1575478-5a0a923c3a32f96a.yaml0000666000175000017500000000026313305130746026665 0ustar zuulzuul00000000000000--- fixes: - Fixed ``flavor show/delete/set/unset`` command to properly find a private flavor by flavor name. [Bug `1575478 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1542359-181d28db21a2358a.yaml0000666000175000017500000000016413305130746026573 0ustar zuulzuul00000000000000--- features: - | Add ``subnet show`` command. [Bug `1542359 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1543226-7d885ecaa3715415.yaml0000666000175000017500000000020413305130746026577 0ustar zuulzuul00000000000000--- features: - | Add ``token revoke`` command for Identity v3 [Bug `1543226 `_] python-openstackclient-3.14.2/releasenotes/notes/change-098377fd53cce7a0.yaml0000666000175000017500000000071713305130746026517 0ustar zuulzuul00000000000000--- features: - | Added support for Volume API v3 for the following block storage command resources: ``consistency group``, ``consistency group snapshot``, ``volume``, ``volume backup``, ``volume host``, ``volume snapshot``, ``volume type``, ``volume qos``, ``volume service``, ``volume transfer request``. Note that microversion support for Volume API v3 is not yet implemented, each command will assume the API version is ``3.0``. python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-ff7acc531baae8c3.yaml0000666000175000017500000000041213305130746032536 0ustar zuulzuul00000000000000--- features: - Add ``--bootable``, ``--non-bootable``, ``--read-only`` and ``--read-write`` options to ``volume create`` command. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1675489-a1d226f2ee911420.yaml0000666000175000017500000000044313305130746026604 0ustar zuulzuul00000000000000--- features: - Add router interfaces info (as field ``interfaces_info``) to ``router show`` command. The information of router interface include port's ID, IP address, the subnet ID it belongs. [Bug `1675489 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1609233-90b2ddf8d941050e.yaml0000666000175000017500000000031513305130746026656 0ustar zuulzuul00000000000000--- fixes: - | Fix the ``--class`` option in ``quota set`` and ``quota show`` commands to not perform a project lookup in Identity. [Bug `1609233 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1622565-2e715aff8b054401.yaml0000666000175000017500000000033413305130746026574 0ustar zuulzuul00000000000000--- fixes: - | Fix ``--long`` option in ``router list`` command for deployments without the ``router_availability_zone`` extension is not enabled. [Bug `1622565 `_] ././@LongLink0000000000000000000000000000015500000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-port-security-enabled-to-port-set-82b801d21d45e715.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-port-security-enabled-to-port-set-82b801d21d45e0000666000175000017500000000030313305130746033051 0ustar zuulzuul00000000000000--- features: - | Add ``--enable-port-security`` and ``--disable-port-security`` options to ``port set`` and ``port create`` commands. [Blueprint :oscbp:`network-commands-options`] python-openstackclient-3.14.2/releasenotes/notes/bug-1613964-e5760f4825f1e043.yaml0000666000175000017500000000023513305130746026531 0ustar zuulzuul00000000000000--- features: - Add ``consistency group list`` command in volume v2. [Bug `1613964 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1534202-1ba78f0bb744961f.yaml0000666000175000017500000000032513305130746026653 0ustar zuulzuul00000000000000--- features: - | Add network support to ``os availability zone list`` [Bug `1534202 `_] * New ``--network`` option to only list network availability zones. ././@LongLink0000000000000000000000000000016600000000000011220 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-backup-snapshot-renamed-for-volume-resource-2d2d13ea8489a61f.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-backup-snapshot-renamed-for-volume-resource-2d2d0000666000175000017500000000112413305130746033657 0ustar zuulzuul00000000000000--- features: - Add new commands ``volume backup create/delete/list/show/restore``. It is used to replace the old commands ``backup create/delete/list/show/restore``. [Blueprint `backup-snapshot-renamed-for-volume-resource `_] deprecations: - Deprecate commands ``backup create/delete/list/show/restore``. [Blueprint `backup-snapshot-renamed-for-volume-resource `_] python-openstackclient-3.14.2/releasenotes/notes/list_role_assignment_names-0db89f50259d4be2.yaml0000666000175000017500000000042413305130746032670 0ustar zuulzuul00000000000000--- features: - > [`bug 1479569 `_] Add an optional ``--names`` argument to the `role assignment list`` command. This will output names instead of IDs for users, groups, roles, projects, and domains.python-openstackclient-3.14.2/releasenotes/notes/bug-1588384-eb6976fcfb90cb4c.yaml0000666000175000017500000000051113305130746027123 0ustar zuulzuul00000000000000--- fixes: - Fix the ``--enable`` option on all commands by changing the ``--enable-beta-commands`` global option to ``--os-beta-command``. There are no upgrade impacts for the global option rename since the old name isn't used. [Bug `1588384 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1637945-f361c834381d409c.yaml0000666000175000017500000000025313305130746026535 0ustar zuulzuul00000000000000--- features: - | Add ``--name``, ``--enable``, ``--disable`` options to ``router list`` command. [Bug `1637945 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1596798-b22fd587bdca8b36.yaml0000666000175000017500000000021113305130746027040 0ustar zuulzuul00000000000000--- features: - Add ``--property`` option to ``flavor create`` command. [Bug `1596798 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1645252-219bfd50c8f04846.yaml0000666000175000017500000000026513305130746026610 0ustar zuulzuul00000000000000--- features: - | Add ``--name``, ``--status`` and ``--volume`` options to ``volume snapshot list`` command [Bug `1645252 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-3db775ba331e113d.yaml0000666000175000017500000000034513305130746032235 0ustar zuulzuul00000000000000--- features: - | Add ``--read-only`` and ``--read-write`` options to ``volume set`` command. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/bp-implement-network-agents-5eba48796318f094.yaml0000666000175000017500000000041413305130746032472 0ustar zuulzuul00000000000000--- features: - Add ``network agent delete``, ``network agent list``, ``network agent show`` and ``network agent set`` commands. [Blueprint `implement-network-agents `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1610883-38929f6fc2eefc9a.yaml0000666000175000017500000000035513305130746027051 0ustar zuulzuul00000000000000--- features: - | Add ``--project``, ``--project-domain``, ``--network``, ``--gateway``, ``--name`` and ``--subnet-range`` options to the ``subnet list`` command. [Bug `1610883 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-d20f44aca1f9e9b9.yaml0000666000175000017500000000025613305130746027025 0ustar zuulzuul00000000000000--- fixes: - | Make ``security group rule list`` group argument optional to list all security groups [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/keystone-endpoint-filter-e930a7b72276fa2c.yaml0000666000175000017500000000024013305130746032213 0ustar zuulzuul00000000000000--- features: - | Add ``endpoint add project``, ``endpoint remove project`` and ``endpoint list`` commands to manage endpoint filters in identity v3. python-openstackclient-3.14.2/releasenotes/notes/bug-1613964-86e0afe0e012a758.yaml0000666000175000017500000000023413305130746026661 0ustar zuulzuul00000000000000--- features: - Add ``consistency group set`` command in volume v2. [Bug `1613964 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1566090_64726dc7df5b1572.yaml0000666000175000017500000000036013305130746026673 0ustar zuulzuul00000000000000--- features: - | ``openstack floating ip`` now provides ``Floating Network`` and ``Project`` to identify to which network and project the floating-ip belongs to. [Bug `1566090 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1550999-5e352a71dfbc828d.yaml0000666000175000017500000000022413305130746026756 0ustar zuulzuul00000000000000--- features: - | Adds ``volume service list`` command. [Bug `1550999 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1658614-f84a8cece6f2ef8c.yaml0000666000175000017500000000044613305130746027212 0ustar zuulzuul00000000000000--- fixes: - | Fix wrong behavior of parsing plugin service name when the service name end with keyword ``os``, like: antiddos. That cause the service api version specified by users don't work. [Bug `1658614 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1565112-e0cea9bfbcab954f.yaml0000666000175000017500000000045213305130746027235 0ustar zuulzuul00000000000000--- features: - Add global options ``os-cert`` and ``--os-key`` to support client certificate/key. Environment variables ``OS_CERT`` and ``OS_KEY``, as well as the ``cert`` and ``key`` values in clouds.yaml may also be used [Bug `1565112 `_] python-openstackclient-3.14.2/releasenotes/notes/service-set-option-61772a8940ad0778.yaml0000666000175000017500000000037413305130746030611 0ustar zuulzuul00000000000000--- upgrade: - An exception is not raised by command ``service set`` when nothing specified. Instead, the service is not enabled by default. And if ``--disable-resion`` is specified but not ``--disable``, an exception will be raised. python-openstackclient-3.14.2/releasenotes/notes/bug-1617384-55c88207115e2a5b.yaml0000666000175000017500000000022113305130746026515 0ustar zuulzuul00000000000000--- fixes: - | Fix prompting for password issue introduced in release 3.0.0 [Bug `1617384 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1659967-644a8ee3621c9e81.yaml0000666000175000017500000000030513305130746026630 0ustar zuulzuul00000000000000--- fixes: - | ``security group list`` command now can display project IDs in the ``Project`` column of the command output. [Bug `1659967 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1575624-87957ff60ad661a6.yaml0000666000175000017500000000025513305130746026627 0ustar zuulzuul00000000000000--- fixes: - Fixed ``flavor set/unset`` command to properly find a flavor to be set/unset by flavor id. [Bug `1575624 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1575461-3fed33e53795684a.yaml0000666000175000017500000000024413305130746026622 0ustar zuulzuul00000000000000--- features: - | Add support for showing flavor access list by using ``flavor show`` command. [Bug `1575461 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1704097-8ff1ce1444b81b04.yaml0000666000175000017500000000060313305130746026656 0ustar zuulzuul00000000000000--- fixes: - | Fix an issue with the ``--domain`` option when used with the ``project show``, ``user show`` and ``user set`` commands. The domain filter did not work when the login user's project name or user name is the same as the requested resource name in the specified domain. [Bug `1704097 `_] python-openstackclient-3.14.2/releasenotes/notes/server-changes-3962541b6ebdbbd8.yaml0000666000175000017500000000046213305130746030255 0ustar zuulzuul00000000000000--- other: - | Changes to ``server`` resource commands: * Added ``--limit`` and ``--marker`` to ``server list`` * Added ``server shelve`` * Added ``server unshelve`` * ``server resume`` now takes multiple server arguments * ``server suspend`` now takes multiple server arguments python-openstackclient-3.14.2/releasenotes/notes/bug-1728525-2c40f0c19adbd0e8.yaml0000666000175000017500000000025213305130746027011 0ustar zuulzuul00000000000000--- fixes: - | Add ``target-all-projects`` option in ``rbac create`` command. [Bug `1728525 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1620922-7f27942dc00f7108.yaml0000666000175000017500000000034513305130746026522 0ustar zuulzuul00000000000000--- fixes: - Do not show ``os-volume-type-access:is_public`` property which is the same as ``is_public`` property of volume type object. [Bug `1620922 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614379-da92ded6d19f5ad5.yaml0000666000175000017500000000027113305130746027115 0ustar zuulzuul00000000000000--- features: - | Add ``--port``, ``--fixed-ip-address``, ``--network``, options to ``floating ip list`` command [Bug `1614379 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1532945-1a5485b8d0ebddb8.yaml0000666000175000017500000000043213305130746027023 0ustar zuulzuul00000000000000--- features: - | Add volume support to ``os availability zone list`` [Bug `1532945 `_] * New ``--compute`` option to only list compute availability zones. * New ``--volume`` option to only list volume availability zones. python-openstackclient-3.14.2/releasenotes/notes/add-disable-reason-6e0f28459a09a60d.yaml0000666000175000017500000000012713305130746030616 0ustar zuulzuul00000000000000--- features: - | Add ``--disable-reason`` option to the ``service set`` command python-openstackclient-3.14.2/releasenotes/notes/unset-router-7b0cbd9518bb1de6.yaml0000666000175000017500000000036613305130746030074 0ustar zuulzuul00000000000000--- features: - | Add a new command ``router unset`` to clear the information of routes from the router. [ Blueprint `network-property-unset `_] python-openstackclient-3.14.2/releasenotes/notes/credential_list_user_type-c809e5b8014d6275.yaml0000666000175000017500000000022113305130746032362 0ustar zuulzuul00000000000000--- features: - | Add ``--user`` and ``--type`` option to ``credential list`` command to filter list result by different user or type. python-openstackclient-3.14.2/releasenotes/notes/bug-1656788-2f5bda2205bc0329.yaml0000666000175000017500000000035113305130746026660 0ustar zuulzuul00000000000000--- fixes: - | Fixed the ``port set`` and ``port unset`` command failures (AttributeError) when ``--security-group`` option is included. [Bug `1656788 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1642301-ad04424c80e8fe50.yaml0000666000175000017500000000037413305130746026650 0ustar zuulzuul00000000000000--- fixes: - Fix problem with ``--os-auth-type token_endpoint`` that caused exceptions when recent os-client-config version 1.23.0 or newer is installed. [Bug `1642301 `_] *Fixed in release 3.4.1* python-openstackclient-3.14.2/releasenotes/notes/allow-to-vm-ip-to-add-7721ba64b863fa77.yaml0000666000175000017500000000027613305130746031143 0ustar zuulzuul00000000000000--- features: - | Add ``--fixed-ip-address`` option to the ``server add fixed ip`` command [Bug `1678140 `_] ././@LongLink0000000000000000000000000000015200000000000011213 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bug-1630822-mask-password-on-debug-20dcdf1c54e84fa1.yamlpython-openstackclient-3.14.2/releasenotes/notes/bug-1630822-mask-password-on-debug-20dcdf1c54e84fa10000666000175000017500000000025313305130746032335 0ustar zuulzuul00000000000000--- security: - | Mask passwords when ``--debug`` or ``-vv`` options are used. [Bug `1630822 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519502-f72236598d14d350.yaml0000666000175000017500000000133413305130746026445 0ustar zuulzuul00000000000000--- features: - Command ``ip floating delete`` is now available for neutron network. [Bug `1519502 `_] - Command ``ip floating list`` is now available for neutron network. [Bug `1519502 `_] - Add command ``ip floating show`` for neutron and nova network. [Bug `1519502 `_] upgrade: - Output of command ``ip floating list`` for nova network has been changed. And it is different from the output of neutron network. [Ref ``_] python-openstackclient-3.14.2/releasenotes/notes/ip-command-rework-8d3fe0858f51e6b8.yaml0000666000175000017500000000335313305130746030635 0ustar zuulzuul00000000000000--- features: - Add new command ``floating ip pool list`` to list up all floating ip pools. This command is used to replace the old command ``ip floating pool list``. [Blueprint rework-ip-commands ``_] - Add new commands ``server add/remove floating ip``. They are used to replace the old commands ``ip floating add/remove``. [Blueprint rework-ip-commands ``_] - Add new commands ``server add/remove fixed ip``. They are used to replace the old commands ``ip fixed add/remove``. [Blueprint rework-ip-commands ``_] - Add new commands ``floating ip create/delete/list/show``. It is used to replace the old commands ``ip floating create/delete/list/show``. [Blueprint rework-ip-commands ``_] deprecations: - Deprecate command ``ip floating pool list``. [Blueprint rework-ip-commands ``_] - Deprecate commands ``ip floating add/remove``. [Blueprint rework-ip-commands ``_] - Deprecate commands ``ip fixed add/remove``. [Blueprint rework-ip-commands ``_] - Deprecate commands ``ip floating create/delete/list/show``. [Blueprint rework-ip-commands ``_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519511-74bab0e0d32db043.yaml0000666000175000017500000000073513305130746026717 0ustar zuulzuul00000000000000--- fixes: - Ignore the ``security group list`` command ``--all-projects`` option for Network v2 since security groups will be displayed for all projects by default (admin only). [Bug `1519511 `_] - The ``security group set`` command now uses Network v2 when enabled which allows the security group name and description to be set to an empty value. [Bug `1519511 `_] python-openstackclient-3.14.2/releasenotes/notes/router-remove-port-058078c93819b0f4.yaml0000666000175000017500000000017213305130746030644 0ustar zuulzuul00000000000000--- features: - | Add ``router remove port`` command [Bug `1546849 `_] python-openstackclient-3.14.2/releasenotes/notes/support-no-property-in-volume-811e67ff4a199eb6.yaml0000666000175000017500000000037613305130746033222 0ustar zuulzuul00000000000000--- features: - | Add ``--no-property`` option in ``volume set``, this removes all properties from a volume. [Blueprint `allow-overwrite-set-options `_] python-openstackclient-3.14.2/releasenotes/notes/add-qos-policy-list-options-9ba1ae731a88e7ac.yaml0000666000175000017500000000041313305130746032702 0ustar zuulzuul00000000000000--- features: - Add ``--share``, ``--no-share``, ``--project``, ``--project-domain`` options to ``qos policy list`` command. [Blueprint `network-commands-options `_] python-openstackclient-3.14.2/releasenotes/notes/add-device_id-to-port-list-0c658db51ce43c9e.yaml0000666000175000017500000000012113305130746032346 0ustar zuulzuul00000000000000--- features: - | Add ``--device-id`` option to the ``port list`` command. python-openstackclient-3.14.2/releasenotes/notes/bug-1651117-a1df37e7ea939ba4.yaml0000666000175000017500000000062613305130746027026 0ustar zuulzuul00000000000000--- features: - | Add ``--encryption-provider``, ``--encryption-cipher``, ``--encryption-key-size`` and ``--encryption-control-location`` options to ``volume type set`` and ``volume type create`` commands. Add ``--encryption-type`` option to ``volume type unset``, ``volume type list`` and ``volume type show`` commands. [Bug `1651117 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1711301-472b577f074edd43.yaml0000666000175000017500000000033313305130746026574 0ustar zuulzuul00000000000000--- fixes: - | Fix occurrences of the ``network agent delete`` command failing with newer releases of python-openstacksdk. [Bug `1711301 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1717130-029211b60f74b4c4.yaml0000666000175000017500000000036713305130746026507 0ustar zuulzuul00000000000000--- fixes: - | Fix the ``project purge`` command to correctly delete only images owned by the specified project ID when run by an administrative user. [Bug `1717130 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1520003-505af921c8afffc9.yaml0000666000175000017500000000022113305130746027005 0ustar zuulzuul00000000000000--- fixes: - | Add remote security group to ``os security group rule list`` [Bug `1520003 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1543672-bad2fc4c6c8f3125.yaml0000666000175000017500000000115213305130746027016 0ustar zuulzuul00000000000000--- features: - Command ``network delete`` is now available for nova network. [Bug `1543672 `_] - Command ``network list`` is now available for nova network. [Bug `1543672 `_] - Command ``network show`` is now available for nova network. [Bug `1543672 `_] - Command ``network create`` is now available for nova network. [Bug `1543672 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1596818-d4cd93dd4d38d3d6.yaml0000666000175000017500000000032513305130746027045 0ustar zuulzuul00000000000000--- features: - | Add ``--sort`` support to ``project list`` by sorting items in client side By default project list will be sorted by name. [Bug `1596818 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1602073-5deb58deeafbc8be.yaml0000666000175000017500000000021013305130746027312 0ustar zuulzuul00000000000000--- features: - Add "Checksum" column to output of "image list --long" [Bug `1602073 `_] python-openstackclient-3.14.2/releasenotes/notes/object-stdout-db76cc500948b0e8.yaml0000666000175000017500000000025313305130746030046 0ustar zuulzuul00000000000000--- features: - | Add support for streaming Swift objects to stdout when using the ``object save`` command by specifying ``-`` as a file name: ``--filename -``. python-openstackclient-3.14.2/releasenotes/notes/volume-migrate-command-52cf6edd62fe17a7.yaml0000666000175000017500000000026313305130746031776 0ustar zuulzuul00000000000000--- features: - Add ``volume migrate`` command. [Blueprint `cinder-command-support `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1554889-32ba8d4bfb0f5f3d.yaml0000666000175000017500000000104413305130746027111 0ustar zuulzuul00000000000000--- features: - | Add ``--project`` and ``--project-domain`` options to ``volume type set`` and ``volume type unset`` commands Use the ``--project`` option to restrict a volume type to a specific project. Volume types are public by default, restricted volume types should be made private with the ``--private`` option to the ``volume create`` command. [Bug `1554889 `_] [Bug `1554890 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1732216-b41bfedebff911e1.yaml0000666000175000017500000000027713305130746027160 0ustar zuulzuul00000000000000--- fixes: - | Fix the operation of the ``--changes-since`` option to the ``server list`` command. [Bug `1732216 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1698390-0df8f0ec4fe354de.yaml0000666000175000017500000000041013305130746027113 0ustar zuulzuul00000000000000--- features: - | Added the ``--domain`` option to the ``identity provider create`` command to associate an existing domain with an identity provider on its creation. [Bug `1698390 `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-allow-overwrite-set-options-190a9c6904d53dab.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-allow-overwrite-set-options-190a9c6904d53dab.yam0000666000175000017500000000160413305130746033123 0ustar zuulzuul00000000000000--- features: - | Allow ``--no-fixed-ip`` and ``--no-binding-profile`` options to ``port set`` command to be specified when ``--fixed-ip`` and ``--binding-profile`` are present. This allows the list of fixed IPs and binding profiles to be cleared and replaced with new values in a single command. [Blueprint `allow-overwrite-set-options `_] - | Add ``--no-allocation-pool`` and ``--no-host-route`` options to ``subnet set`` command that clears the respective values in the specified subnet. This allows new values to replace the entire list of existing values in a single command for allocation pools and host routes. [Blueprint `allow-overwrite-set-options `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1569480-c52e330548bfbd78.yaml0000666000175000017500000000045513305130746026700 0ustar zuulzuul00000000000000--- fixes: - Fixed ``subnet pool list`` command to properly disply the list of subnet pool prefixes in the ``Prefixes`` column. This fix is consistent with the ``subnet pool create`` and ``subnet pool show`` command output. [Bug `1569480 `_] python-openstackclient-3.14.2/releasenotes/notes/compute-agent-deff48988e81b30e.yaml0000666000175000017500000000016613305130746030133 0ustar zuulzuul00000000000000--- upgrade: - | ``compute agent delete`` command now supports deleting multiple agents in a single command python-openstackclient-3.14.2/releasenotes/notes/bug-1596821-a07599eb4beb6342.yaml0000666000175000017500000000031113305130746026665 0ustar zuulzuul00000000000000--- features: - | Add ``--force`` option to ``volume qos delete`` command to allow users to delete in-use QoS specification(s). [Bug `1596821 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1667266-6497727abc2af9a5.yaml0000666000175000017500000000061513305130746026704 0ustar zuulzuul00000000000000--- fixes: - | Clarify the ``--block-device-mapping`` option of the ``server create`` command: fix ValueError when the ``--block-device-mapping`` option's argument is in the wrong format; support creating a block device from a snapshot; add details to the help output about the option format. [Bug `1667266 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613964-b3e8d9d828a3822c.yaml0000666000175000017500000000032113305130746026672 0ustar zuulzuul00000000000000--- features: - Add ``consistency group add volume`` and ``consistency group remove volume`` commands in volume v2. [Bug `1642238 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1640086-21d7e5f2ce18f53c.yaml0000666000175000017500000000032413305130746026742 0ustar zuulzuul00000000000000--- features: - | Add ``--human-readable`` option to ``image show`` to display image size in human readable format (such as K, M, G, T,..) [Bug `1640086 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1658147-9de9ae222f9db9ae.yaml0000666000175000017500000000031513305130746027122 0ustar zuulzuul00000000000000--- features: - | Add ``--domain`` options to the ``user set`` command. Allows specification of domain context when changing users. [Bug `1658147 `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-descriptions-a80902b4295843cf.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-descriptions-a80902b4295843cf.yam0000666000175000017500000000043413305130746033016 0ustar zuulzuul00000000000000--- features: - | Add ``--description`` option to ``floating ip create`` command. [Blueprint :oscbp:`neutron-client-descriptions`] - | Add ``--description`` option to ``router set`` and ``router create`` commands. [Blueprint :oscbp:`network-commands-options`] python-openstackclient-3.14.2/releasenotes/notes/bug-1634799-1322227c9b0188ca.yaml0000666000175000017500000000021713305130746026525 0ustar zuulzuul00000000000000--- features: - | Add ``--fixed-ip`` option to the ``port list`` command. [Bug `1634799 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1596443-9e2af267e91d1643.yaml0000666000175000017500000000027313305130746026621 0ustar zuulzuul00000000000000--- features: - | Add ``--force`` option to ``backup create`` command to allow users to back up an in-use volume. [Bug `1596443 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1741223-7a5c5b6e7f232628.yaml0000666000175000017500000000026413305130746026604 0ustar zuulzuul00000000000000--- fixes: - | 'NoneType' object is not iterable when Glance cannot find image data in its backend. [Bug `1741223 `_] python-openstackclient-3.14.2/releasenotes/notes/add-quota-set-for-network-11fcd7b9e08624b5.yaml0000666000175000017500000000060013305130746032176 0ustar zuulzuul00000000000000--- features: - | Add network support for ``quota set`` command. Options added includes ``--networks --subnets --subnetpools --ports --routers --rbac-policies`` ``--vips --members --health-monitors``. Options ``--floating-ips --secgroup-rules --secgroups`` now support both network and compute API. [Bug `1489441 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1612136-051b5f94796e3b51.yaml0000666000175000017500000000035513305130746026525 0ustar zuulzuul00000000000000--- features: - | Add ``--security-group`` and ``--no-security-group`` options to ``port create``, ``port set`` and ``port unset`` commands. [Bug `1612136 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613231-386b2b1373662052.yaml0000666000175000017500000000054113305130746026343 0ustar zuulzuul00000000000000--- features: - | Add ``--project`` and ``--project-domain`` options to the ``router list``, ``floating ip create`` and ``security group list`` commands. [Bug `1613231 `_] [Bug `1613629 `_] [Bug `1610909 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1525805-122e6ce0c3cd4945.yaml0000666000175000017500000000021713305130746026655 0ustar zuulzuul00000000000000--- fixes: - | Fix case sensitivity when showing object-store properties. [Bug `1525805 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1521492-89b972c6362940a5.yaml0000666000175000017500000000022413305130746026452 0ustar zuulzuul00000000000000--- fixes: - | Change ``server list --flavor`` to now accept flavor ID or name [Bug `1521492 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1719413-0401d05c91cc9094.yaml0000666000175000017500000000054013305130746026510 0ustar zuulzuul00000000000000--- fixes: - | Fix an issue with ``endpoint list`` working slow because it is issuing one GET request to /v3/services/ Keystone API for each endpoint. In case of HTTPS keystone endpoint and multiple regions it can take significant amount of time. [Bug `1719413 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1687814-743ad8418923d5e3.yaml0000666000175000017500000000044713305130746026547 0ustar zuulzuul00000000000000--- fixes: - | Allow the ``--security-group`` option from the ``server create`` command to be specified by name or ID. This also checks that the security group exist before creating the server. [Bug `1687814 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-support-multi-add-remove-9516f72cfacea11a.yaml0000666000175000017500000000022713305130746032675 0ustar zuulzuul00000000000000--- features: - | Add support to add/remove multi users by ``group add/remove user`` command. [Blueprint :oscbp:`support-multi-add-remove`] python-openstackclient-3.14.2/releasenotes/notes/bug-1624085-7cf296649277f405.yaml0000666000175000017500000000025213305130746026464 0ustar zuulzuul00000000000000--- fixes: - Fix missing ``_username`` attribute error in ``server ssh`` command. [Bug `1624085 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519511-65b8901ae6ea2e63.yaml0000666000175000017500000000120713305130746026660 0ustar zuulzuul00000000000000--- features: - The ``security group create``, ``security group set`` and ``security group show`` commands now uses Network v2 when enabled which results in a more detailed output for network security group rules. [Bug `1519511 `_] fixes: - The ``security group create`` command now uses Network v2 when enabled which allows the security group description to be created with an empty value. In addition, the ``tenant_id`` field changed to ``project_id`` to match the ``security group show`` command output. [Bug `1519511 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1606105-ca06b230e22ab5c6.yaml0000666000175000017500000000027313305130746026710 0ustar zuulzuul00000000000000--- features: - Add support for domain specific roles in ``role`` and``role assignment`` commands. [Bug `1606105 `_] python-openstackclient-3.14.2/releasenotes/notes/add-network-flavor-profile-e7cc5b353c3ed9d9.yaml0000666000175000017500000000046013305130746032573 0ustar zuulzuul00000000000000--- features: - | Add support for Network Flavor Profile commands: ``network flavor profile create``, ``network flavor profile delete``, ``network flavor profile list``, ``network flavor profile show`` and ``network flavor profile set`` [Blueprint :oscbp:`neutron-client-flavors`] python-openstackclient-3.14.2/releasenotes/notes/bug-1627913-2adf4182977e5926.yaml0000666000175000017500000000055613305130746026551 0ustar zuulzuul00000000000000--- features: - | Add ``--source-replicated``, ``--consistency-group``, ``--hint`` and ``--multi-attach`` options to ``volume create`` command in volume v2. Make ``--size`` optional when ``--snapshot``, ``--source`` or ``source-replicated`` options are present. [Bug `1627913 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1582774-3bba709ef61e33b7.yaml0000666000175000017500000000030413305130746026745 0ustar zuulzuul00000000000000--- fixes: - Fix setting defaults for some scope parameters, that were putting invalid scope parameters for some auth plugins. [Bug `1582774 `_] python-openstackclient-3.14.2/releasenotes/notes/volume_snapshot_list_project-e7dcc07f98d44182.yaml0000666000175000017500000000025413305130746033301 0ustar zuulzuul00000000000000--- features: - | Add ``--project`` and ``--project-domain`` option to ``volume snapshot list`` command, in order to filter list result by different project. python-openstackclient-3.14.2/releasenotes/notes/bug-1654221-a564ab75a6afc332.yaml0000666000175000017500000000030113305130746026717 0ustar zuulzuul00000000000000--- fixes: - | Fix ``--project`` option for ``flavor create`` command when the ID for the new flavor is auto generated. [Bug `1654221 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1588588-39927ef06ca35730.yaml0000666000175000017500000000042513305130746026551 0ustar zuulzuul00000000000000--- upgrade: - All ``set`` and ``unset`` commands now return normally when nothing specified to modify. This will become the default behavior of OSC ``set`` and ``unset`` commands. [Bug `1588588 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592906-e69b37377278d9c2.yaml0000666000175000017500000000020413305130746026550 0ustar zuulzuul00000000000000--- features: - Support bulk deletion for ``volume type delete``. [Bug `1592906 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-routed-networks-3eea4978c93aa126.yaml0000666000175000017500000000046313305130746031040 0ustar zuulzuul00000000000000--- features: - Add ``network segment list`` and ``network segment show`` commands. These are beta commands and subject to change. Use global option ``--os-beta-command`` to enable these commands. [Blueprint `routed-networks `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613995-10bb3895d702c063.yaml0000666000175000017500000000037313305130746026524 0ustar zuulzuul00000000000000--- features: - | Add a new column ``status`` and ``--long`` option to the result of the ``os port list`` command. [Bug `1613995 `_] [Bug `1614321 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1634333-a2b04d33ca39440e.yaml0000666000175000017500000000027313305130746026641 0ustar zuulzuul00000000000000--- features: - | Add support to allow filtering ports via ``--mac-address`` option to the ``port list`` command. [Bug `1634333 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1542364-5d1e93cfd24f0b65.yaml0000666000175000017500000000016613305130746026745 0ustar zuulzuul00000000000000--- features: - | Add ``subnet create`` command. [Bug `1542364 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1610883-e6345c32a35cc290.yaml0000666000175000017500000000036213305130746026575 0ustar zuulzuul00000000000000--- features: - | Make ``subnet list`` command supports listing up subnets with dhcp enabled/disabled by adding ``--dhcp`` and ``--no-dhcp`` options to the command. [Bug `1610883 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1666780-c10010e9061689d3.yaml0000666000175000017500000000115613305130746026445 0ustar zuulzuul00000000000000--- features: - | Add ``--group`` option to the ``command list`` command to filter the commands by group name: ``openstack command list --group volume`` will list all Volume commands for the selected API version. Use ``--os-XXXX-api-version`` to select a specific API version for the desired APIs. This provides an alternative to searching help output to list the comamnds available for specific APIs. Note that the ``--group`` argument is used as a simple substring search in the Command Group column. [Bug `1666780 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1516661-757ef629f899cca3.yaml0000666000175000017500000000023113305130746026707 0ustar zuulzuul00000000000000--- features: - | Add ``image set --activate|--deactivate`` options (Image v2 only) [Bug `1516661 `_] python-openstackclient-3.14.2/releasenotes/notes/add-server-add-network-98ede8ff6079eb23.yaml0000666000175000017500000000027613305130746031641 0ustar zuulzuul00000000000000--- features: - | Add ``server add network`` command. This command will create a neutron port from the specified neutron network and attach the port to the specified instance. python-openstackclient-3.14.2/releasenotes/notes/bug-1543222-6f8579344ff5c958.yaml0000666000175000017500000000034313305130746026551 0ustar zuulzuul00000000000000--- fixes: - Keystone V3 `user password set` is a self-service operation. It should not required a scoped token as it is not considered a `scoped operation`. [Bug `1543222 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1560157-bce572f58b43efa1.yaml0000666000175000017500000000056713305130746027032 0ustar zuulzuul00000000000000--- fixes: - Fixed SSL/TLS verification for Network v2 commands. The commands were ignoring the ``--insecure`` and ``--os-cacert`` options and the ``OS_CACERT`` environment variable which caused them to fail with ``An SSL error occurred.`` when authenticating using SSL/TLS. [Bug `1560157 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-metering-1ee703a48343ece1.yaml0000666000175000017500000000033713305130746032430 0ustar zuulzuul00000000000000--- features: - | Add support for network metering commands: ``network meter create``, ``network meter delete``, ``network meter show``, ``network meter list`` [Blueprint :oscbp:`neutron-client-metering`] python-openstackclient-3.14.2/releasenotes/notes/bug-1659878-f6a55b7166d99ca8.yaml0000666000175000017500000000043213305130746026722 0ustar zuulzuul00000000000000--- fixes: - | The ``network create`` command was ignoring the ``--project`` option and creating networks owned by the current authenticated user's project. This was a regression introduced in OSC 3.8.0. [Bug `1659878 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1605088-fea9347336764469.yaml0000666000175000017500000000025513305130746026471 0ustar zuulzuul00000000000000--- features: - Support to get server ``rdp``, ``serial``, ``mks`` type console url. [Bug `1605088 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1588171-61214d0ea482988c.yaml0000666000175000017500000000021613305130746026530 0ustar zuulzuul00000000000000--- fixes: - | Update novaclient ``DEFAULT_API_VERSION`` from 2.0 to 2.1 [Bug `1588171 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-routed-networks-3b502faa5cd96807.yaml0000666000175000017500000000067513305130746031037 0ustar zuulzuul00000000000000--- features: - Add ``network segment create``, ``network segment delete`` and ``network segment set`` commands. In addition, the ``network segment list`` and ``network segment show`` commands are no longer beta commands and the ``--network-segment`` option on the ``subnet create`` command is no longer a beta command option. [Blueprint `routed-networks `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1639712-a7b9d1a35a042049.yaml0000666000175000017500000000031613305130746026572 0ustar zuulzuul00000000000000--- features: - | Add ``--name``, ``--status``, ``--volume``, ``--marker`` and ``--limit`` options to ``volume backup list`` command [Bug `1639712 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1659894-4518b10615498ba9.yaml0000666000175000017500000000034313305130746026464 0ustar zuulzuul00000000000000--- fixes: - | Now the positional parameter ```` of ``volume snapshot create`` command is no longer optional, it should be always present. [Bug `1659894 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1667699-6dad786b128ca8b5.yaml0000666000175000017500000000027013305130746026767 0ustar zuulzuul00000000000000--- fixes: - | Fix the ``Ethertype`` column output of ``security group rule list`` command. [Bug `1667699 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1535213-c91133586e07d71c.yaml0000666000175000017500000000027013305130746026515 0ustar zuulzuul00000000000000--- fixes: - | Support a new ``--state`` option for ``volume set`` command that changes the state of a volume. [Bug `1535213 `_] python-openstackclient-3.14.2/releasenotes/notes/add-network-qos-rule-types-337e464c6e81f29c.yaml0000666000175000017500000000025313305130746032337 0ustar zuulzuul00000000000000--- features: - | Add support for Network QoS rule type commands: ``network qos rule type list``, [Bug `1612194 `_] ././@LongLink0000000000000000000000000000015400000000000011215 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-is-default-to-network-qos-policy-89b11d4df032a789.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-is-default-to-network-qos-policy-89b11d4df032a70000666000175000017500000000033113305130746033045 0ustar zuulzuul00000000000000--- features: - | Add ``--default`` and ``--no-default`` options to ``network qos policy create`` and ``network qos policy set`` comamnds. [Bug `1639220 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1667294-f92efa49627eb00a.yaml0000666000175000017500000000031513305130746026753 0ustar zuulzuul00000000000000--- features: - | Add ``--default-quota`` option to ``subnet pool create`` and ``subnet pool set`` commands. [Bug `1667294 `_] python-openstackclient-3.14.2/releasenotes/notes/router-gateway-set-01d9c7ffe4461daf.yaml0000666000175000017500000000067513305130746031201 0ustar zuulzuul00000000000000--- features: - | Add support for setting the gateway information in a router, by introducing the new option ``--external-gateway`` in ``router set`` command and clearing the gateway information in a router by introducing ``--external-gateway`` option in ``router unset`` command. [ Blueprint `neutron-client-advanced-router `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1522969-63abf273c6e71a07.yaml0000666000175000017500000000030313305130746026662 0ustar zuulzuul00000000000000--- features: - | Add ``--src-group`` option to ``security group rule create`` to include a 'remote' security group rule. [Bug `1522969 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1636046-98dc0e69a4e44850.yaml0000666000175000017500000000035513305130746026620 0ustar zuulzuul00000000000000--- features: - | Add ``--name``, ``--ip-version``, ``--project``, ``--project-domain``, ``--share``, ``--no-share`` options to the ``address scope list`` command. [Bug `1636046 `_] python-openstackclient-3.14.2/releasenotes/notes/remove-osc_password-0767ac78267ef114.yaml0000666000175000017500000000061313305130746031126 0ustar zuulzuul00000000000000--- upgrade: - With the change to use keystoneauth plugins the OpenStackClient-specific ``osc_password`` authentication plugin has been removed. The visible difference should only be in the behaviour with poorly configured clouds with old default Keystone values for admin_endpoint and public_endpoint as seen in the version details returned in a GET to the root ('/') route. python-openstackclient-3.14.2/releasenotes/notes/add-server-remove-network-fb09c53d5b0c0068.yaml0000666000175000017500000000022713305130746032265 0ustar zuulzuul00000000000000--- features: - | Add ``server remove network`` command. This command will remove all network ports from the specified network and instance. python-openstackclient-3.14.2/releasenotes/notes/bug-1677236-7de9d11c3f0fb5ed.yaml0000666000175000017500000000024513305130746027112 0ustar zuulzuul00000000000000--- fixes: - | Fix creating a server with a block-device-mapping when volume_size is empty. [Bug `1677236 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1648087-21dfb7250abfdbe9.yaml0000666000175000017500000000026213305130746027104 0ustar zuulzuul00000000000000--- features: - | Add ``--project`` and ``--project-domain`` filtering options to ``port list`` command. [Bug `1648087 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-82dbadef47454c18.yaml0000666000175000017500000000031613305130746032333 0ustar zuulzuul00000000000000--- features: - | Add ``--default`` option to ``volume type list`` command, in order to show which volume type the volume sets as it's default. [Blueprint :oscbp:`cinder-command-support`] python-openstackclient-3.14.2/releasenotes/notes/bug-1619274-e78afd7c12ea2c3d.yaml0000666000175000017500000000040013305130746027076 0ustar zuulzuul00000000000000--- fixes: - Skip password prompt when running commands that do not require auth and user auth values are present except for password. [Bug `1619274 `_] *Fixed in release 3.3.0* python-openstackclient-3.14.2/releasenotes/notes/flavor-create-with-project-19d41bfa93e3c6d0.yaml0000666000175000017500000000031713305130746032503 0ustar zuulzuul00000000000000--- features: - Add ``--project`` and ``--project-domain`` options to the ``flavor create`` command. We can use these options to add the flavor access to a given project when we create the flavor. python-openstackclient-3.14.2/releasenotes/notes/router-port-add-0afe7392c080bcb8.yaml0000666000175000017500000000016713305130746030365 0ustar zuulzuul00000000000000--- features: - | Add ``router add port`` command [Bug `1546849 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1642301-18b08e0cd4b11687.yaml0000666000175000017500000000033213305130746026563 0ustar zuulzuul00000000000000--- fixes: - | Fix ``TypeError: __init__() got an unexpected keyword argument 'project_domain_id'`` error with non-password authentication types. [Bug `1642301 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1610161-7c34c7b735701bd4.yaml0000666000175000017500000000021013305130746026557 0ustar zuulzuul00000000000000--- features: - | Add ``--ha`` option to ``router create`` command. [Bug `1610161 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1544586-0e6ca9a09dac0726.yaml0000666000175000017500000000037213305130746026744 0ustar zuulzuul00000000000000--- features: - Add ``subnet pool create`` and ``subnet pool set`` commands. [Bug `1544586 `_] [Bug `1544591 `_]python-openstackclient-3.14.2/releasenotes/notes/address-scope-delete-multi-31c3af73feb31265.yaml0000666000175000017500000000016413305130746032374 0ustar zuulzuul00000000000000--- upgrade: - | ``address scope delete`` command now accepts multiple address scopes in a single command python-openstackclient-3.14.2/releasenotes/notes/bug-1544590-8cf42954e28c2f42.yaml0000666000175000017500000000022613305130746026615 0ustar zuulzuul00000000000000--- features: - Add support for ``subnet pool show`` command. [Bug `1544590 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1545537-7a66219d263bb1e5.yaml0000666000175000017500000000050213305130746026601 0ustar zuulzuul00000000000000--- features: - | Add external network options ``--external|--internal`` and ``--external`` suboptions ``--default|--no-default`` to the ``network create`` and ``network set`` commands. These options are available for Network version 2 only. [Bug `1545537 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1642772-19f53765bef8ee91.yaml0000666000175000017500000000046013305130746026710 0ustar zuulzuul00000000000000--- fixes: - Changed the default version of ``OS_IMAGE_API_VERSION`` to ``2``. Image v1 has been deprecated for more than six months and other projects, such as `shade` and `os-client-config` are using Image v2 by default as well. [Bug `1642772 `_] python-openstackclient-3.14.2/releasenotes/notes/add-port-commands-a3580662721a6312.yaml0000666000175000017500000000025313305130746030255 0ustar zuulzuul00000000000000--- features: - | Add ``port create``, ``port list`` and ``port set`` commands [Bug `1519909 `_] python-openstackclient-3.14.2/releasenotes/notes/neutron-client-flavors-81387171f67a3c82.yaml0000666000175000017500000000023313305130746031464 0ustar zuulzuul00000000000000--- features: - | Add ``network flavor add profile`` and ``network flavor remove profile`` commands. [Blueprint :oscbp:`neutron-client-flavors`] python-openstackclient-3.14.2/releasenotes/notes/add-port-delete-command-4789d3881b186cfc.yaml0000666000175000017500000000023313305130746031603 0ustar zuulzuul00000000000000--- features: - | Add support for the ``port delete`` command. [Bug `1519909 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1531360-0f5c62d18088e5b5.yaml0000666000175000017500000000020113305130746026570 0ustar zuulzuul00000000000000--- fixes: - | Support non-interactive user password update [Bug `1531360 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592906-ad67ce8736f3cd48.yaml0000666000175000017500000000052413305130746026767 0ustar zuulzuul00000000000000--- features: - | Support bulk deletion for identity v3 commands: ``consumer``, ``credential``, ``domain``, ``ec2creds``, ``endpoint``, ``federation_protocol``, ``identity_provider``, ``mapping``, ``policy``, ``region``, ``service_provider`` and ``service``. [Bug `1592906 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613261-290a64080fead6c0.yaml0000666000175000017500000000023113305130746026637 0ustar zuulzuul00000000000000--- features: - Add ``volume backup set`` commands in volume v2. [Bug `1613261 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1536479-d1f03ed2177d06ed.yaml0000666000175000017500000000022613305130746026746 0ustar zuulzuul00000000000000--- fixes: - | ``--pool-prefix`` option made required for ``subnet pool create`` [Bug `1536479 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-extension-show-6f7e31a27dad0dc9.yaml0000666000175000017500000000040313305130746031003 0ustar zuulzuul00000000000000--- features: - | Added ``extension show`` command to display the details of an extension. Currently works only for network extensions. [Blueprint `extension-show `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-virtio-forwarder-vnic-type-bad939c6a868b9e9.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-virtio-forwarder-vnic-type-bad939c6a868b9e9.yam0000666000175000017500000000064413305130746033162 0ustar zuulzuul00000000000000--- features: - | The ``virtio-forwarder`` VNIC type has been added as another option for setting the ``--vnic-type`` property on the ``port set`` and ``port create`` commands. This requests a low-latency virtio port inside the instance, likely backed by hardware acceleration. Currently the Agilio OVS external plugin provides support for this, with support from other vendors following soon. python-openstackclient-3.14.2/releasenotes/notes/recursive-container-delete-983361aa9c35ffed.yaml0000666000175000017500000000020313305130746032571 0ustar zuulzuul00000000000000--- features: - | Add support for recursive container delete. [Bug `1542718 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1527833-42cde11d28b09ac3.yaml0000666000175000017500000000046313305130746026734 0ustar zuulzuul00000000000000--- other: - Change the ``--owner`` option to ``--project`` in ``image create`` and ``image set`` commands. ``--owner`` is deprecated and no longer documented but is still accepted; a warning message will be shown if it is used. [Bug `1527833 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1521492-8cde2601591a8c78.yaml0000666000175000017500000000022213305130746026603 0ustar zuulzuul00000000000000--- fixes: - | Change ``server list --image`` to now accept image ID or name [Bug `1521492 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1535704-d6f013bfa22ab668.yaml0000666000175000017500000000032213305130746026726 0ustar zuulzuul00000000000000--- fixes: - | Add ``--bootable`` and ``--non-bootable`` options to ``os volume set`` command to mark volume as bootable or non-bootable. [Bug `1535704 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1735836-9be6d777a6e6410b.yaml0000666000175000017500000000030513305130746026677 0ustar zuulzuul00000000000000--- fixes: - | ``openstack subnet create`` failed with a NoneType exception when there were no tags. [Bug `1735836 `_] python-openstackclient-3.14.2/releasenotes/notes/allow-custom-logging-12d55f8ed859ff8e.yaml0000666000175000017500000000022113305130746031432 0ustar zuulzuul00000000000000--- features: - | Allow custom logging of components [Bug `1484660 `_] python-openstackclient-3.14.2/releasenotes/notes/unset-subnet-pool-333052dd85b95653.yaml0000666000175000017500000000040713305130746030445 0ustar zuulzuul00000000000000--- features: - | Add a new command ``subnet pool unset`` to clear the information of pool-prefixes from the subnet pools. [ Blueprint `network-property-unset `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1540988-17841cfd5accf7f5.yaml0000666000175000017500000000047513305130746027047 0ustar zuulzuul00000000000000--- features: - | Add ``--limit`` option to ``image list`` to limit the number of images in output. [Bug `1540988 `_] - | Add ``--marker`` option to ``image list`` to handle paginate requests. [Bug `1540988 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1684989-3bda158a822d2f73.yaml0000666000175000017500000000024513305130746026701 0ustar zuulzuul00000000000000--- features: - Add ``--data-plane-status`` option to ``port set`` and ``port unset`` commands. [Bug `1684989 `_] python-openstackclient-3.14.2/releasenotes/notes/add-osprofiler-support-adf5286daf220914.yaml0000666000175000017500000000166113305130746031703 0ustar zuulzuul00000000000000--- features: - | OSprofiler support was added. To initiate OpenStack request tracing ``--profile `` option needs to be added to the CLI command. This key needs to present one of the secret keys defined in the OpenStack projects configuration files (if there is a wish to generate cross-project trace, the chosen key needs to be presented in all these configuration files). By default all OpenStack projects, that support OSprofiler, are using ``SECRET_KEY`` HMAC key. To use tracing functionality OSprofiler (and its storage backend) needs to be installed in the environment. If so, you will be able to trigger profiling via `openstack --profile SECRET_KEY ` command. At the end of output there will be message with , and to plot human-readable HTML chart the following command should be used - ``osprofiler trace show --html --out result.html``. python-openstackclient-3.14.2/releasenotes/notes/bug-1670707-c4799fbed39ef75b.yaml0000666000175000017500000000020513305130746027047 0ustar zuulzuul00000000000000--- fixes: - | Add ``--mac-address`` option to ``port set`` command. [Bug `1670707 `_] ././@LongLink0000000000000000000000000000015300000000000011214 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-support-no-property-in-aggregate-b74a42e00a65d14a.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-support-no-property-in-aggregate-b74a42e00a65d140000666000175000017500000000051613305130746033074 0ustar zuulzuul00000000000000--- features: - | Add ``--no-property`` option to ``aggregate set`` command. This allows the property list to be cleared and replaced with new values in a single command. [Blueprint `support-no-property-in-aggregate `_] python-openstackclient-3.14.2/releasenotes/notes/cliff-2.3.0-7ead18fae9ceea80.yaml0000666000175000017500000000043213305130746027303 0ustar zuulzuul00000000000000--- fixes: - | Cliff 2.3.0: The shell formatter would emit invalid shell variable names for field names that contain colons ('``:``') and dashes ('``-``'), these are now replaced by underscores ('``_``'). [Bug `1616323 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614385-460b5034ba372463.yaml0000666000175000017500000000031613305130746026430 0ustar zuulzuul00000000000000--- features: - Support listing the specified server's ports by new option ``--server`` of ``port list`` command. [Bug `1614385 `_] ././@LongLink0000000000000000000000000000015000000000000011211 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-network-list-option-to-ports-9d101344ddeb3e64.y0000666000175000017500000000044613305130746033046 0ustar zuulzuul00000000000000--- features: - | Ports can now be listed as per the networks they are connected to by using the ``--network`` option with the ``port list`` CLI. [ Blueprint `network-commands-options `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1648307-a2c6d7698e927449.yaml0000666000175000017500000000025513305130746026555 0ustar zuulzuul00000000000000--- features: - | Add ``--type``, ``--action``, ``--long`` options to ``network rbac list`` command [Bug `1648307 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1581179-4d15dc504777f9e7.yaml0000666000175000017500000000034513305130746026630 0ustar zuulzuul00000000000000--- features: - Add the ``--ip-version`` option to the ``subnet list`` command. This will output subnets based on IP version filter. [`Bug 1581179 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1656572-b40303ae50a41000.yaml0000666000175000017500000000032113305130746026461 0ustar zuulzuul00000000000000--- fixes: - | Work around a bug in OpenStackSDK 0.9.11 and 0.9.12 that causes ``quota show --default`` to fail. [Bug `1656572 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1572733-874b37a7fa8292d0.yaml0000666000175000017500000000043313305130746026613 0ustar zuulzuul00000000000000--- fixes: - The ``quota show`` command ```` argument is now optional. If not specified, the user's current project is used. This allows non-admin users to show quotas for their current project. [Bug `1572733 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1486597-857e20262c038514.yaml0000666000175000017500000000020513305130746026372 0ustar zuulzuul00000000000000--- features: - | Add ``project unset`` command for Identity v2 [Bug `1486597 `_] ././@LongLink0000000000000000000000000000015700000000000011220 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/remove-unsupported-set-vlan-transparent-eeff412264ae7c09.yamlpython-openstackclient-3.14.2/releasenotes/notes/remove-unsupported-set-vlan-transparent-eeff412264a0000666000175000017500000000041013305130746033573 0ustar zuulzuul00000000000000--- fixes: - | Remove ``--transparent-vlan`` and ``--no-transparent-vlan`` from ``network set``, because updating ``vlan-transparent`` is not supported in Neutron. [Bug `1691776 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1605774-28aec51f6ec4926e.yaml0000666000175000017500000000026313305130746026756 0ustar zuulzuul00000000000000--- features: - Deprecate ``role list`` arguments in favor of ``role assignment`` command. [Bug `1605774 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1544586-0fe19a567d3e31fc.yaml0000666000175000017500000000046613305130746026760 0ustar zuulzuul00000000000000--- features: - Add ``--share`` and ``--default`` options to ``subnet pool create`` and ``--default`` option to ``subnet pool set`` [Bug `1544586 `_] [Bug `1544591 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-volume-list-with-project-2dc867c5e8346a66.yaml0000666000175000017500000000021513305130746032661 0ustar zuulzuul00000000000000--- fixes: - | Fix a bug of unable to filter volume list by ``--project`` and ``--user`` options in the ``openstack volume list``. python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-metering-6f8f9527c2a797fd.yaml0000666000175000017500000000035213305130746032463 0ustar zuulzuul00000000000000--- features: - | Add meter rules commands for ``network meter rule create``, ``network meter rule delete``, ``network meter rule list``, and ``network meter rule show``. [Blueprint :oscbp:`neutron-client-metering`] python-openstackclient-3.14.2/releasenotes/notes/subnet-service-type-8d9c414732e474a4.yaml0000666000175000017500000000037113305130746031042 0ustar zuulzuul00000000000000--- features: - | Add ``--service-type`` option to the ``subnet create``, ``subnet set``, ``subnet unset``, and ``subnet list`` commands. [ Blueprint `service-subnets `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1719499-d67d80b0da0bc30a.yaml0000666000175000017500000000030613305130746027014 0ustar zuulzuul00000000000000--- fixes: - | Accept ``0`` as a valid value in the ``image set`` ``--min-disk`` and ``--min-ram`` options. .. _bug 1719499: https://bugs.launchpad.net/python-openstackclient/+bug/1719499 python-openstackclient-3.14.2/releasenotes/notes/bug-1535239-767e6cf1990eda01.yaml0000666000175000017500000000027413305130746026675 0ustar zuulzuul00000000000000--- fixes: - | Support a new ``--state`` option for ``snapshot set`` command that changes the state of a snapshot. [Bug `1535239 `_] python-openstackclient-3.14.2/releasenotes/notes/add-port-unset-command-8bdaf1fa9c593374.yaml0000666000175000017500000000040713305130746031631 0ustar zuulzuul00000000000000--- features: - | Add a new command ``port unset`` to clear the information of fixed-ip and binding-profile from the port. [ Blueprint `network-property-unset `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1650342-22cb88ef37a41872.yaml0000666000175000017500000000026213305130746026602 0ustar zuulzuul00000000000000--- features: - Add ``ploop`` as a valid disk format choice for ``image create`` and ``image set`` commands. [Bug `1650342 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1633582-df2bee534c2da7fc.yaml0000666000175000017500000000151413305130746027163 0ustar zuulzuul00000000000000--- deprecations: - | ``volume transfer request accept`` has been changed to move the ``auth-key`` positional argument to a requried option ``--auth-key``. This leaves the transfer request ID as the only positional arguemnt, as per the OpenStackClient command format. The old format is still functional, but is deprecated and will be removed in the next major release. fixes: - | Fix ``volume transfer request accept`` to not fail the transfer request name/ID lookup for non-admin users as the Volume API does not allow non-admin users access to transfers in other projects. [Bug `1633582 `_] - | Change the output column order in ``volume transfer request list`` to have ``ID`` followed by ``Name`` then the remaining columns. python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-a0552f8ca909b665.yaml0000666000175000017500000000140313305130746030545 0ustar zuulzuul00000000000000--- features: - Update ``--binding-profile`` option on the ``port create`` and ``port set`` commands to support JSON input for more advanced binding profile data. [Blueprint :oscbp:`neutron-client`] - Add ``--enable-port-security`` and ``--disable-port-security`` options on the ``network create`` and ``network set`` commands. This supports setting the default port security for ports created on a network. [Blueprint :oscbp:`neutron-client`] - Add ``geneve`` choice to the ``network create`` command ``--provider-network-type`` option. [Blueprint :oscbp:`neutron-client`] - Add ``--device-owner`` option to the ``port list`` command to enable listing ports based on device owner. [Blueprint :oscbp:`neutron-client`] python-openstackclient-3.14.2/releasenotes/notes/bug-1612136-6111b944569b9351.yaml0000666000175000017500000000045413305130746026363 0ustar zuulzuul00000000000000--- features: - | Add ``--allowed-address`` option to ``port create``, ``port set`` and ``port unset`` commands. Also add ``--no-allowed-address`` option to ``port create`` and ``port set`` commands. [Bug `1612136 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592368-a4af69f163a1e208.yaml0000666000175000017500000000037113305130746026667 0ustar zuulzuul00000000000000--- fixes: - Fix for network OS_ENDPOINT_TYPE/--os-interface. Previously these were being ignored for network commands which resulted in the public endpoint always being used. [Bug `1592368 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1607959-a52aa93e3793f28a.yaml0000666000175000017500000000030713305130746026677 0ustar zuulzuul00000000000000--- fixes: - | A warning message will be shown when an empty password is used for ``user create`` and ``user set`` operations. [Bug `1607959 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1688194-bb008b65267a1169.yaml0000666000175000017500000000025713305130746026533 0ustar zuulzuul00000000000000--- fixes: - | Fix issue in ``port list`` command when no Compute endpoint is in the Service Catalog. [Bug `1688194 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1696111-e2cf9233fa872eb7.yaml0000666000175000017500000000036113305130746026750 0ustar zuulzuul00000000000000--- fixes: - | Fixed an issue where a trust could not be created if multiple roles had the same name. A role's ID is now sent to the identity service instead. [Bug `1696111 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1642238-3032c7fe7f0ce29d.yaml0000666000175000017500000000044513305130746026746 0ustar zuulzuul00000000000000--- features: - Add ``consistency group snapshot create``, ``consistency group snapshot delete``, ``consistency group snapshot list`` and ``consistency group snapshot show`` commands in volume v2. [Bug `1642238 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-dbf4368fe10dc495.yaml0000666000175000017500000000233613305130746026752 0ustar zuulzuul00000000000000--- features: - Add ``--icmp-type`` and ``--icmp-code`` options to the ``security group rule create`` command for Network v2 only. These options can be used to set ICMP type and code for ICMP IP protocols. [Bug `1519512 `_] - The following Network v2 IP protocols are supported by the ``security group rule create`` command ``--protocol`` option, ``ah``, ``dccp``, ``egp``, ``esp``, ``gre``, ``igmp``, ``ipv6-encap``, ``ipv6-frag``, ``ipv6-icmp``, ``ipv6-nonxt``, ``ipv6-opts``, ``ipv6-route``, ``ospf``, ``pgm``, ``rsvp``, ``sctp``, ``udplite``, ``vrrp`` and integer representations [0-255]. [Bug `1519512 `_] - The ``security group rule list`` command supports displaying the ICMP type and code for security group rules with the ICMP IP protocols. [Bug `1519512 `_] upgrade: - Changed the ``security group rule create`` command ``--proto`` option to ``--protocol``. Using the ``--proto`` option is still supported, but is no longer documented and may be deprecated in a future release. [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1618676-04ff0f335b670567.yaml0000666000175000017500000000041313305130746026533 0ustar zuulzuul00000000000000--- features: - Add ``--remote-source`` option to ``volume snapshot create`` command to support creating volume snapshot from an existing remote volume snapshot in volume v2. [Bug `1618676 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-4231ac6014109142.yaml0000666000175000017500000000045013305130746026331 0ustar zuulzuul00000000000000--- upgrade: - The ``security group rule create`` command now uses Network v2 when enabled which results in a more detailed output for network security group rules that matches the ``security group rule show`` command. [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1556929-edd78cded88ecdc9.yaml0000666000175000017500000000020113305130746027272 0ustar zuulzuul00000000000000--- features: - Add ``host set`` command [Bug `1556929 `_] python-openstackclient-3.14.2/releasenotes/notes/floating-ip-set-unset-port-28e33875937b69cf.yaml0000666000175000017500000000015313305130746032263 0ustar zuulzuul00000000000000--- features: - | Add ``floating ip set`` and ``floating ip unset`` commands. [:lpbug:`1560297`] python-openstackclient-3.14.2/releasenotes/notes/bug-1732938-e4d91732ef777f9a.yaml0000666000175000017500000000050713305130746026716 0ustar zuulzuul00000000000000--- fixes: - | Remove the client-side check for valid ``--policy`` values in the ``server group create`` command. Specify ``--os-compute-api-version 2.15`` or higher for the ``soft-affinity`` or ``soft-anti-affinity`` policy. [Bug `1732938 `_] python-openstackclient-3.14.2/releasenotes/notes/add-ksa-7f0795157d93a898.yaml0000666000175000017500000000017513305130746026376 0ustar zuulzuul00000000000000--- other: - | Add dependency on keystoneauth1 module to perform authentication in place of python-keystoneclient. python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-tag-ff24d13e5c70e052.yaml0000666000175000017500000000117413305130746031371 0ustar zuulzuul00000000000000--- features: - | Added support for ``tags`` to the following resources: ``network``, ``subnet``, ``port``, ``router`` and ``subnet pool``. [Blueprint :oscbp:`neutron-client-tag`] - Add ``--tag`` and ``--no-tag`` options to corresponding "create" commands. - Add ``--tag`` and ``--no-tag`` options to corresponding "set" commands. - Add ``--tag`` and ``--all-tag`` options to corresponding "unset" commands. (``network unset`` command is introduced to support the tag operation) - Add ``--tags``, ``--any-tags``, ``--not-tags`` and ``--not-any-tags`` options to corresponding "list" commands. python-openstackclient-3.14.2/releasenotes/notes/bug-1475831-3caafd724d4ed644.yaml0000666000175000017500000000017313305130746027024 0ustar zuulzuul00000000000000--- fixes: - | Some compute quotas were not being set [Bug `1475831 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1589332-2941f5286df7e5d4.yaml0000666000175000017500000000043313305130746026625 0ustar zuulzuul00000000000000--- features: - | Add ``--purge`` option to ``volume delete`` command (Volume v2 only) in order to removing any snapshots along with volume automatically when user delete the volume. [Bug `1589332 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1564460-ab7ad35c02392cb4.yaml0000666000175000017500000000070213305130746026724 0ustar zuulzuul00000000000000--- fixes: - Fixed the ``--route`` option on the ``router set`` command which did not properly format the new routes to set resulting in a ``Bad Request`` error. In addition, the ``router create``, ``router list`` and ``router show`` command output for routes was fixed to improve readability and to align with the ``--route`` option on the ``router set`` command. [Bug `1564460 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1549410-8df3a4b12fe13ffa.yaml0000666000175000017500000000060213305130746027071 0ustar zuulzuul00000000000000--- features: - | Add ``--private-key`` option for ``keypair create`` command to specify the private key file to save when a keypair is created, removing the need to copy the output and paste it into a new file. This is a convenient way to save private key in OSC interactive mode. [Bug `1549410 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1565034-dd404bfb42d7778d.yaml0000666000175000017500000000024513305130746026746 0ustar zuulzuul00000000000000--- fixes: - Added ``--no-route`` to the ``router set`` command. Deprecated ``--clear-routes``. [Bug `1565034 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1542171-fde165df53216726.yaml0000666000175000017500000000054613305130746026607 0ustar zuulzuul00000000000000--- features: - | Add ``server group create``, ``server group delete``, ``server group list``, ``server group show`` commands. [Bug `1542171 `_] [Blueprint `nova-server-group-support `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1614823-e89080342f25f2c0.yaml0000666000175000017500000000026513305130746026523 0ustar zuulzuul00000000000000--- features: - | Adds ``--description`` option to ``subnet pool create`` and ``subnet pool set`` commands. [Bug `1614823 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592761-f45998453d6801f7.yaml0000666000175000017500000000032213305130746026471 0ustar zuulzuul00000000000000--- fixes: - Add default IP version in ``ip availability list`` command and make this command work properly without ``--ip-version`` option. [Bug `1592761 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1650026-0ce6a77e69d24424.yaml0000666000175000017500000000035413305130746026603 0ustar zuulzuul00000000000000--- fixes: - | Fixed a ``__init__() got an unexpected keyword argument 'project_name'`` error in various networking commands when ``help`` or ``--help`` was used. [Bug `1650026 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1561838-3a006a8263d7536d.yaml0000666000175000017500000000043613305130746026526 0ustar zuulzuul00000000000000--- features: - Support X.latest format for OS_COMPUTE_API_VERSION in order to talk with the latest nova microversion API, that is very helpful shortcut usage to use new nova side features. [Bug `1561838 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-multi-argument-compute-0bc4522f6edca355.yaml0000666000175000017500000000044113305130746032350 0ustar zuulzuul00000000000000--- features: - Support bulk deletion and error handling for ``aggregate delete``, ``flavor delete``, ``keypair delete`` and ``service delete`` commands. [Blueprint `multi-argument-compute `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1637074-1b0e409f30f715ca.yaml0000666000175000017500000000024213305130746026647 0ustar zuulzuul00000000000000--- features: - | Add ``--long`` option and more columns to the ``hypervisor list`` command. [Bug `1637074 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1602169-2750c9a6896d2825.yaml0000666000175000017500000000025313305130746026456 0ustar zuulzuul00000000000000--- features: - Add ``--project`` and ``--project-domain`` options to ``volume type create`` command. [Bug `1602169 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592062-e327a31a5ae66809.yaml0000666000175000017500000000031313305130746026575 0ustar zuulzuul00000000000000--- fixes: - Scope options are now validated after authentication occurs, and only if the user does not have a default project scope. [Bug `1592062 `_] python-openstackclient-3.14.2/releasenotes/notes/image_set_visibility-babf4ff2f687d465.yaml0000666000175000017500000000046413305130746031641 0ustar zuulzuul00000000000000--- fixes: - Add ``--community`` and ``--shared`` options to the ``image create`` and ``image set`` commands to allow image owners to share images across multiple projects without explicitly creating image members. “Community images” will not appear in user’s default image listings. python-openstackclient-3.14.2/releasenotes/notes/bug-1698742-66d9d4e6c7ad274a.yaml0000666000175000017500000000032513305130746026766 0ustar zuulzuul00000000000000--- features: - | Add ``--name`` and ``--status`` options to ``image list`` command to filter images based on name and status respectively. [Bug `1698742 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1542362-ddad607f6d3025f0.yaml0000666000175000017500000000024113305130746026726 0ustar zuulzuul00000000000000--- features: - | Add ``subnet delete`` command to openstack-client. [Bug `1542362 `_] python-openstackclient-3.14.2/releasenotes/notes/support-icmp-type-code-zero-cbef0a36db2b8123.yaml0000666000175000017500000000031513305130746032705 0ustar zuulzuul00000000000000--- fixes: - Add support to set ``--icmp-type`` and ``--icmp-code`` to 0 in the ``security group rule`` command. [Bug `1703704 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1546065-41d09ffbd8606513.yaml0000666000175000017500000000107313305130746026605 0ustar zuulzuul00000000000000--- fixes: - Command ``flavor set/unset`` now outputs nothing. [Bug `1546065 `_] - Command ``security group set`` now outputs nothing. [Bug `1546065 `_] - Command ``compute agent set`` now outputs nothing. [Bug `1546065 `_] - Command ``aggregate set`` now outputs nothing. [Bug `1546065 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1518059-e2dbe6e4b2473f10.yaml0000666000175000017500000000034013305130746026734 0ustar zuulzuul00000000000000--- fixes: - | Fix the ``--block-migration`` and ``--shared-migration`` options for ``server migrate`` to send the correct values to the Compute API. [Bug `1518059 `_]: python-openstackclient-3.14.2/releasenotes/notes/bug-1712242-934bbe2f2378f5bd.yaml0000666000175000017500000000066313305130746026746 0ustar zuulzuul00000000000000--- features: - | Add ``any`` as a ``--protocol`` option to ``security group rule create`` command. [Bug `1517134 `_] fixes: - | It is now possible to create a security rule without specifying protocol (using ``--protocol any``), which skips sending the protocol to the API server entirely. Previously TCP was forced as default protocol when none was specified. python-openstackclient-3.14.2/releasenotes/notes/bug-1597184-f4fb687b3d4d99d9.yaml0000666000175000017500000000021713305130746027002 0ustar zuulzuul00000000000000--- features: - | Add ``--snapshot`` option to ``backup create`` command. [Bug `1597184 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1589348-4a612a4efc7ed0e5.yaml0000666000175000017500000000035113305130746027030 0ustar zuulzuul00000000000000--- features: - Add options ``--up`` and ``--down`` for compute v2 ``compute service set`` command to support force up/down compute service. [Bug `1589348 `_] ././@LongLink0000000000000000000000000000015200000000000011213 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-auto-and-none-as-nic-parameter-ed23a6e7f99f250d.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-auto-and-none-as-nic-parameter-ed23a6e7f99f250d0000666000175000017500000000057313305130746032735 0ustar zuulzuul00000000000000--- features: - | Added ``auto`` and ``none`` as values for ``--nic`` to the``server create`` command. Specifying ``none`` will not attach a network to the server. Specifying ``auto`` will automatically attach a network. Note, v2.37 (or newer) of the Compute API is required for these options. [Bug `1650342 `_] python-openstackclient-3.14.2/releasenotes/notes/add-network-qos-policy-b8ad1e408d73c279.yaml0000666000175000017500000000045013305130746031575 0ustar zuulzuul00000000000000--- features: - | Add support for Network QoS policies commands: ``network qos policy create``, ``network qos policy delete``, ``network qos policy list``, ``network qos policy show`` and ``network qos policy set`` [Bug `1609037 `_] python-openstackclient-3.14.2/releasenotes/notes/add-subnet-list-command-970f4b397469bdc6.yaml0000666000175000017500000000023313305130746031630 0ustar zuulzuul00000000000000--- features: - | Add support for the ``subnet list`` command. [Bug `1523258 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1689233-c3f98e159c75374e.yaml0000666000175000017500000000044713305130746026640 0ustar zuulzuul00000000000000--- fixes: - | Raise exact exception when extension don't exist in ``extension show`` command, and keep the column display order consist in ``extension list`` with and without ``--long`` option. [Bug `1689233 `_] python-openstackclient-3.14.2/releasenotes/notes/add-quota-list-command-0d865fac61db2430.yaml0000666000175000017500000000034613305130746031514 0ustar zuulzuul00000000000000--- features: - | Add ``quota list`` command with ``--compute``, ``--volume`` and ``--network`` options. [Blueprint `quota-list `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/network-flavor-command-support-afe3a9da962a09bf.yamlpython-openstackclient-3.14.2/releasenotes/notes/network-flavor-command-support-afe3a9da962a09bf.yam0000666000175000017500000000034313305130746033431 0ustar zuulzuul00000000000000--- features: - | Add ``network flavor create``, ``network flavor delete``, ``network flavor list``, Add ``network flavor show`` and ``network flavor set`` command [Blueprint :oscbp:`neutron-client-flavors`] python-openstackclient-3.14.2/releasenotes/notes/bug-1545537-4fa72fbfbbe3f31e.yaml0000666000175000017500000000047513305130746027171 0ustar zuulzuul00000000000000--- features: - | Add ``--transparent-vlan`` and ``--no-transparent-vlan`` options to ``network create`` and ``network set`` commands to add/remove VLAN transparency attributes from networks. This option is available in Network V2 only. [Bug `1545537 `_]python-openstackclient-3.14.2/releasenotes/notes/bug-1556719-d2dcf61acf87e856.yaml0000666000175000017500000000045013305130746027044 0ustar zuulzuul00000000000000--- fixes: - Command ``network delete`` will delete as many networks as possible, log and report failures in the end. [Bug `1556719 `_] [Bug `1537856 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1589935-8a56e6a18d836db9.yaml0000666000175000017500000000030113305130746026707 0ustar zuulzuul00000000000000--- fixes: - Raise ``ArgumentTypeError`` if the input arguments do not match the type ``key=value`` when we set properties. [Bug `1589935 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1703278-5e45a92e43552dec.yaml0000666000175000017500000000027013305130746026666 0ustar zuulzuul00000000000000--- fixes: - | Add ``--image`` and ``--password`` options to the ``server rescue`` command. [Bug `1703278 `_] python-openstackclient-3.14.2/releasenotes/notes/add-ha-to-router-update-6a38a73cc112b2fc.yaml0000666000175000017500000000033513305130746031657 0ustar zuulzuul00000000000000--- features: - | Add support to update high-availability property of a router by adding ``--ha`` and ``--no-ha`` option to ``router set`` CLI. [Bug `1631492 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1592906-a5604ec5abe77507.yaml0000666000175000017500000000030613305130746026666 0ustar zuulzuul00000000000000--- features: - Support bulk deletion for ``ec2 credentials delete``, ``endpoint delete``, ``service delete`` in identity V2.0 . [Bug `1592906 `_] python-openstackclient-3.14.2/releasenotes/notes/subnet-unset-5b458cdbaf93d766.yaml0000666000175000017500000000043313305130746030005 0ustar zuulzuul00000000000000--- features: - | Add a new command ``subnet unset`` to clear the information of allocation-pools, host-routes or DNS servers from the subnet. [ Blueprint `network-property-unset `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1641868-97c284e33f944c2d.yaml0000666000175000017500000000025113305130746026624 0ustar zuulzuul00000000000000--- features: - | Add filters ``--agent-type`` and ``--host`` to ``network agent list`` command [Bug `1641868 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519512-48d98f09e44220a3.yaml0000666000175000017500000000054313305130746026527 0ustar zuulzuul00000000000000--- features: - Add ``--ingress``, ``--egress``, ``--ethertype``, ``--project`` and ``--project-domain`` options to the ``security group rule create`` command for Network v2 only. These options enable ``egress`` and ``IPv6`` security group rules along with setting the project. [Bug `1519512 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519510-3cde4643b33ebb7a.yaml0000666000175000017500000000015413305130746027007 0ustar zuulzuul00000000000000--- other: - | Drop Python 2.6 support [Bug `1519510 `_] python-openstackclient-3.14.2/releasenotes/notes/list_volume_type_access-f7d9aa6159f757ea.yaml0000666000175000017500000000045313305130746032304 0ustar zuulzuul00000000000000--- features: - | Show project access details for private volume type. An user can list projects which have access to a specific private volume type by using ``volume type show `` [Bug `1554891 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1204956-af47c7f34ecc19c3.yaml0000666000175000017500000000026513305130746027032 0ustar zuulzuul00000000000000--- features: - Supported to fetch network project default quota with command ``quota show --default``. [Bug `1204956 `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-descriptions-b65dd776f78b5a73.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-neutron-client-descriptions-b65dd776f78b5a73.yam0000666000175000017500000000044013305130746033171 0ustar zuulzuul00000000000000--- features: - | Add ``--description`` option to ``security group rule create`` command. [Blueprint :oscbp:`network-commands-options`] - | Add ``--description`` option to ``port set`` and ``port create`` commands. [Blueprint :oscbp:`neutron-client-descriptions`] python-openstackclient-3.14.2/releasenotes/notes/add-restore-server-d8c73e0e83df17dd.yaml0000666000175000017500000000006713305130746031146 0ustar zuulzuul00000000000000--- features: - | Add ``server restore`` command python-openstackclient-3.14.2/releasenotes/notes/bug-1520115-0367e1c8917dc912.yaml0000666000175000017500000000032313305130746026512 0ustar zuulzuul00000000000000--- fixes: - | Fix ``--public|--private`` options for ``volume type create`` command to correctly pass privacy argument to client library [Bug `1520115 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-network-command-options-2-e7b13a6a09f5d21e.yaml0000666000175000017500000000036213305130746032665 0ustar zuulzuul00000000000000--- features: - | Add ``--description`` option to ``network create`` and ``network set`` commands. [Blueprint `network-commands-options `_] python-openstackclient-3.14.2/releasenotes/notes/skip-name-lookups-9f499927173c1eee.yaml0000666000175000017500000000040313305130746030576 0ustar zuulzuul00000000000000--- features: - | Add ``--no-name-lookup`` option to ``server list`` command to skip the lookup of flavor and image names. This can save a significant amount of time on clouds with a large number of images. ``-n`` is an alias for this option. python-openstackclient-3.14.2/releasenotes/notes/subnet-set-bbc26ecc16929302.yaml0000666000175000017500000000016313305130746027341 0ustar zuulzuul00000000000000--- features: - | Add ``subnet set`` command. [Bug `1542363 `_] python-openstackclient-3.14.2/releasenotes/notes/router-subnet-469d095ae0bac884.yaml0000666000175000017500000000034713305130746030105 0ustar zuulzuul00000000000000--- features: - | Add ``router add subnet`` command [Bug `1546849 `_] - | Add ``router remove subnet`` command [Bug `1546849 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1613926-2d0e405831c0b5a9.yaml0000666000175000017500000000042613305130746026572 0ustar zuulzuul00000000000000--- features: - | Add ``--share``, ``--no-share``, ``--project``, ``--project-domain``, ``--default``, ``--no-default``, ``--name`` and ``--address-scope`` options to the ``subnet pool list`` command. [Bug `1613926 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1647242-fdc39e564372857b.yaml0000666000175000017500000000025113305130746026617 0ustar zuulzuul00000000000000--- features: - | Add ``--deleted`` and ``--changes-since`` options to ``server list`` command. [Bug `1647242 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1612136-ec240349a933db12.yaml0000666000175000017500000000031513305130746026562 0ustar zuulzuul00000000000000--- features: - | Add ``--qos-policy`` option to ``port create``, ``port set`` and ``port unset`` commands. [Bug `1612136 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1517386-1c0aad8e3203b02b.yaml0000666000175000017500000000016413305130746026715 0ustar zuulzuul00000000000000--- fixes: - | Add `--all` for `snapshot list` [Bug `1517386 `_] ././@LongLink0000000000000000000000000000015100000000000011212 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/bp-neutron-floating-ip-rate-limit-8387c040a6fb9acd.yamlpython-openstackclient-3.14.2/releasenotes/notes/bp-neutron-floating-ip-rate-limit-8387c040a6fb9acd.0000666000175000017500000000063413305130746033024 0ustar zuulzuul00000000000000--- features: - | Add support for attaching and removing qos policy to floating IPs. Add option ``--qos-policy`` to the ``floating ip create`` and ``floating ip set`` commands to add qos policy to a floating IP. Add option ``--no-qos-policy`` to the ``floating ip set`` and option ``--qos-policy`` to the ``floating ip unset`` command to remove the qos policy from a floating IP. python-openstackclient-3.14.2/releasenotes/notes/bug-1665231-3df6d090d137fe4f.yaml0000666000175000017500000000036413305130746026747 0ustar zuulzuul00000000000000--- fixes: - | Allow ``--default`` and ``--no-default`` options in ``network create`` command to be recognized when ``--external`` is not present. [Bug `1665231 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1554877-7f8479791eab45b7.yaml0000666000175000017500000000073613305130746026647 0ustar zuulzuul00000000000000--- features: - | Add ``--image-property`` option to ``volume set`` and ``volume unset`` commands Image properties are copied when a volume is created from an image. The properties are immutable on the image itself but may be updated or removed from the volume created from that image. [Bug `1554877 `_] [Bug `1554879 `_] python-openstackclient-3.14.2/releasenotes/notes/add-network-service-provider-c161a4a328a8a408.yaml0000666000175000017500000000010713305130746032665 0ustar zuulzuul00000000000000--- features: - | Add ``network service provider list`` command. python-openstackclient-3.14.2/releasenotes/notes/bug-1607972-a910a9fbdb81da57.yaml0000666000175000017500000000025613305130746027030 0ustar zuulzuul00000000000000--- features: - Add ``--name`` option to command ``object create`` for uploading a file and renaming it. [Bug `1607972 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1631471-beb0a1c9b4a932cb.yaml0000666000175000017500000000021613305130746027057 0ustar zuulzuul00000000000000--- fixes: - | Fix ``router unset --route`` to correctly removed routes. [Bug `1631471 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1597198-e36b55f3fd185a3a.yaml0000666000175000017500000000024313305130746026757 0ustar zuulzuul00000000000000--- features: - | Add ``--public`` and ``--private`` options to ``volume type list`` command. [Bug `1597198 `_] python-openstackclient-3.14.2/releasenotes/notes/add-server-backup-e63feaebb6140f83.yaml0000666000175000017500000000006713305130746030717 0ustar zuulzuul00000000000000--- features: - Add ``server backup create`` command ././@LongLink0000000000000000000000000000015100000000000011212 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/allow-to-specify-vm-ip-to-publish-85f7207740c0cc8d.yamlpython-openstackclient-3.14.2/releasenotes/notes/allow-to-specify-vm-ip-to-publish-85f7207740c0cc8d.0000666000175000017500000000030013305130746032617 0ustar zuulzuul00000000000000--- features: - | Add ``--fixed-ip-address`` option to the ``server add floating ip`` command [Bug `1624524 `_] ././@LongLink0000000000000000000000000000014600000000000011216 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-overwrite-option-to-router-7c50c8031dab6bae.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-overwrite-option-to-router-7c50c8031dab6bae.yam0000666000175000017500000000043313305130746033245 0ustar zuulzuul00000000000000--- features: - | Add ``--router`` and ``--no-router`` options to ``osc router set`` command to modify routes in a router instance. [ Blueprint `allow-overwrite-set-options `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1584596-5b3109487b451bec.yaml0000666000175000017500000000023713305130746026615 0ustar zuulzuul00000000000000--- features: - | Add command ``openstack project purge`` to clean a project's resources. [Bug `1584596 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1519502-d534db6c18adef20.yaml0000666000175000017500000000025313305130746027011 0ustar zuulzuul00000000000000--- upgrade: - The ``ip floating create`` command now uses Network v2 when enabled [Bug `1519502 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1499657-eeb260849febacf3.yaml0000666000175000017500000000026513305130746027127 0ustar zuulzuul00000000000000--- fixes: - | Fix ``--parents`` and ``--children`` options in ``project show`` command. [Bug `1499657 `_] python-openstackclient-3.14.2/releasenotes/notes/bp-cinder-command-support-7e3ae1fb4cd90407.yaml0000666000175000017500000000035213305130746032324 0ustar zuulzuul00000000000000--- features: - Add ``volume host set`` command, it allows a user to enable or disable a volume host. [Blueprint `cinder-command-support `_] ././@LongLink0000000000000000000000000000015300000000000011214 Lustar 00000000000000python-openstackclient-3.14.2/releasenotes/notes/add-dns-nameserver-overwrite-option-b866baeae12f9460.yamlpython-openstackclient-3.14.2/releasenotes/notes/add-dns-nameserver-overwrite-option-b866baeae12f9460000666000175000017500000000034213305130746033325 0ustar zuulzuul00000000000000--- features: - | Add ``--no-dns-nameserver`` option to ``subnet set`` command. [Blueprint `allow-overwrite-set-options `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1731848-71d0a5fdb1a34a8b.yaml0000666000175000017500000000041313305130746027010 0ustar zuulzuul00000000000000--- fixes: - | Remove the type value limit in credentials when do create, reset or list. Now 'totp' method is supported in keystone project and we could create credentials with 'totp' type. [Bug `1731848 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1637365-b90cdcc05ffc7d3a.yaml0000666000175000017500000000060013305130746027156 0ustar zuulzuul00000000000000upgrade: - | Rename the ``--src-group`` and ``--src-ip`` options in the ``security group rule create`` command to ``--remote-group`` and ``--remote-ip``. The ``--src-group`` and ``--src-ip`` options are deprecated but still supported, and will be removed in a future release. [Bug `1637365 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1658582-80a76f6b0af0ca12.yaml0000666000175000017500000000030213305130746026730 0ustar zuulzuul00000000000000--- fixes: - | Correctly handle non-admin in ``create trust`` command when looking up role names. [Bug `1658582 `_] python-openstackclient-3.14.2/releasenotes/notes/bug-1634672-7ce577f3adc34eed.yaml0000666000175000017500000000030613305130746027114 0ustar zuulzuul00000000000000--- fixes: - | Fix ``--no-allocation-pool`` option for ``subnet set`` command to send the correct value to the Network API. [Bug `1518059 `_]: python-openstackclient-3.14.2/setup.py0000666000175000017500000000200613305130746020044 0ustar zuulzuul00000000000000# Copyright (c) 2013 Hewlett-Packard Development Company, L.P. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or # implied. # See the License for the specific language governing permissions and # limitations under the License. # THIS FILE IS MANAGED BY THE GLOBAL REQUIREMENTS REPO - DO NOT EDIT import setuptools # In python < 2.7.4, a lazy loading of package `pbr` will break # setuptools if some other modules registered functions in `atexit`. # solution from: http://bugs.python.org/issue15881#msg170215 try: import multiprocessing # noqa except ImportError: pass setuptools.setup( setup_requires=['pbr>=2.0.0'], pbr=True) python-openstackclient-3.14.2/test-requirements.txt0000666000175000017500000000305013305130760022567 0ustar zuulzuul00000000000000# 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. hacking!=0.13.0,<0.14,>=0.12.0 # Apache-2.0 coverage!=4.4,>=4.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD flake8-import-order==0.13 # LGPLv3 mock>=2.0.0 # BSD oslotest>=3.2.0 # Apache-2.0 requests>=2.14.2 # Apache-2.0 requests-mock>=1.1.0 # Apache-2.0 stevedore>=1.20.0 # Apache-2.0 os-client-config>=1.28.0 # Apache-2.0 stestr>=1.0.0 # Apache-2.0 testtools>=2.2.0 # MIT tempest>=17.1.0 # Apache-2.0 osprofiler>=1.4.0 # Apache-2.0 bandit>=1.1.0 # Apache-2.0 wrapt>=1.7.0 # BSD License # Install these to generate sphinx autodocs aodhclient>=0.9.0 # Apache-2.0 gnocchiclient>=3.3.1 # Apache-2.0 python-barbicanclient!=4.5.0,!=4.5.1,>=4.0.0 # Apache-2.0 python-congressclient<2000,>=1.9.0 # Apache-2.0 python-designateclient>=2.7.0 # Apache-2.0 python-heatclient>=1.10.0 # Apache-2.0 python-ironicclient>=2.2.0 # Apache-2.0 python-ironic-inspector-client>=1.5.0 # Apache-2.0 python-karborclient>=0.6.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.3.0 # Apache-2.0 python-octaviaclient>=1.3.0 # Apache-2.0 python-rsdclient>=0.1.0 # Apache-2.0 python-saharaclient>=1.4.0 # Apache-2.0 python-searchlightclient>=1.0.0 #Apache-2.0 python-senlinclient>=1.1.0 # Apache-2.0 python-troveclient>=2.2.0 # Apache-2.0 python-zaqarclient>=1.0.0 # Apache-2.0 python-zunclient>=1.0.0 # Apache-2.0 python-openstackclient-3.14.2/openstackclient/0000775000175000017500000000000013305131240021506 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/openstackclient/shell.py0000666000175000017500000001777613305130746023225 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # Copyright 2015 Dean Troyer # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Command-line interface to the OpenStack APIs""" import locale import sys from osc_lib.api import auth from osc_lib import shell import six import openstackclient from openstackclient.common import client_config as cloud_config from openstackclient.common import clientmanager from openstackclient.common import commandmanager DEFAULT_DOMAIN = 'default' class OpenStackShell(shell.OpenStackShell): def __init__(self): super(OpenStackShell, self).__init__( description=__doc__.strip(), version=openstackclient.__version__, command_manager=commandmanager.CommandManager('openstack.cli'), deferred_help=True) self.api_version = {} # Assume TLS host certificate verification is enabled self.verify = True def build_option_parser(self, description, version): parser = super(OpenStackShell, self).build_option_parser( description, version) parser = clientmanager.build_plugin_option_parser(parser) parser = auth.build_auth_plugins_option_parser(parser) return parser def _final_defaults(self): super(OpenStackShell, self)._final_defaults() # Set the default plugin to token_endpoint if url and token are given if (self.options.url and self.options.token): # Use service token authentication self._auth_type = 'token_endpoint' else: self._auth_type = 'password' def _load_plugins(self): """Load plugins via stevedore osc-lib has no opinion on what plugins should be loaded """ # Loop through extensions to get API versions for mod in clientmanager.PLUGIN_MODULES: default_version = getattr(mod, 'DEFAULT_API_VERSION', None) # Only replace the first instance of "os", some service names will # have "os" in their name, like: "antiddos" option = mod.API_VERSION_OPTION.replace('os_', '', 1) version_opt = str(self.cloud.config.get(option, default_version)) if version_opt: api = mod.API_NAME self.api_version[api] = version_opt # Add a plugin interface to let the module validate the version # requested by the user skip_old_check = False mod_check_api_version = getattr(mod, 'check_api_version', None) if mod_check_api_version: # this throws an exception if invalid skip_old_check = mod_check_api_version(version_opt) mod_versions = getattr(mod, 'API_VERSIONS', None) if not skip_old_check and mod_versions: if version_opt not in mod_versions: sorted_versions = sorted( mod.API_VERSIONS.keys(), key=lambda s: list(map(int, s.split('.')))) self.log.warning( "%s version %s is not in supported versions: %s" % (api, version_opt, ', '.join(sorted_versions))) # Command groups deal only with major versions version = '.v' + version_opt.replace('.', '_').split('_')[0] cmd_group = 'openstack.' + api.replace('-', '_') + version self.command_manager.add_command_group(cmd_group) self.log.debug( '%(name)s API version %(version)s, cmd group %(group)s', {'name': api, 'version': version_opt, 'group': cmd_group} ) def _load_commands(self): """Load commands via cliff/stevedore osc-lib has no opinion on what commands should be loaded """ # Commands that span multiple APIs self.command_manager.add_command_group( 'openstack.common') # This is the naive extension implementation referred to in # blueprint 'client-extensions' # Extension modules can register their commands in an # 'openstack.extension' entry point group: # entry_points={ # 'openstack.extension': [ # 'list_repo=qaz.github.repo:ListRepo', # 'show_repo=qaz.github.repo:ShowRepo', # ], # } self.command_manager.add_command_group( 'openstack.extension') def initialize_app(self, argv): super(OpenStackShell, self).initialize_app(argv) # Argument precedence is really broken in multiple places # so we're just going to fix it here until o-c-c and osc-lib # get sorted out. # TODO(dtroyer): remove when os-client-config and osc-lib are fixed # First, throw away what has already been done with o-c-c and # use our own. try: self.cloud_config = cloud_config.OSC_Config( override_defaults={ 'interface': None, 'auth_type': self._auth_type, }, ) except (IOError, OSError): self.log.critical("Could not read clouds.yaml configuration file") self.print_help_if_requested() raise if not self.options.debug: self.options.debug = None # NOTE(dtroyer): Need to do this with validate=False to defer the # auth plugin handling to ClientManager.setup_auth() self.cloud = self.cloud_config.get_one_cloud( cloud=self.options.cloud, argparse=self.options, validate=False, ) # Then, re-create the client_manager with the correct arguments self.client_manager = clientmanager.ClientManager( cli_options=self.cloud, api_version=self.api_version, pw_func=shell.prompt_for_password, ) def prepare_to_run_command(self, cmd): """Set up auth and API versions""" # TODO(dtroyer): Move this to osc-lib, remove entire method when 1.4.0 # release is minimum version is in global-requirements # NOTE(dtroyer): If auth is not required for a command, skip # get_one_Cloud()'s validation to avoid loading plugins validate = cmd.auth_required # Force skipping auth for commands that do not need it # NOTE(dtroyer): This is here because ClientManager does not have # visibility into the Command object to get # auth_required. It needs to move into osc-lib self.client_manager._auth_required = cmd.auth_required # Validate auth options self.cloud = self.cloud_config.get_one_cloud( cloud=self.options.cloud, argparse=self.options, validate=validate, ) # Push the updated args into ClientManager self.client_manager._cli_options = self.cloud return super(OpenStackShell, self).prepare_to_run_command(cmd) def main(argv=None): if argv is None: argv = sys.argv[1:] if six.PY2: # Emulate Py3, decode argv into Unicode based on locale so that # commands always see arguments as text instead of binary data encoding = locale.getpreferredencoding() if encoding: argv = map(lambda arg: arg.decode(encoding), argv) return OpenStackShell().run(argv) if __name__ == "__main__": sys.exit(main()) python-openstackclient-3.14.2/openstackclient/__init__.py0000666000175000017500000000141113305130746023630 0ustar zuulzuul00000000000000# Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # import pbr.version __all__ = ['__version__'] version_info = pbr.version.VersionInfo('python-openstackclient') try: __version__ = version_info.version_string() except AttributeError: __version__ = None python-openstackclient-3.14.2/openstackclient/compute/0000775000175000017500000000000013305131240023162 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/openstackclient/compute/__init__.py0000666000175000017500000000000013305130746025275 0ustar zuulzuul00000000000000python-openstackclient-3.14.2/openstackclient/compute/client.py0000666000175000017500000001141213305130746025025 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # import logging from osc_lib import exceptions from osc_lib import utils from openstackclient.i18n import _ LOG = logging.getLogger(__name__) DEFAULT_API_VERSION = '2.1' API_VERSION_OPTION = 'os_compute_api_version' API_NAME = 'compute' API_VERSIONS = { "2": "novaclient.client", "2.1": "novaclient.client", } COMPUTE_API_TYPE = 'compute' COMPUTE_API_VERSIONS = { '2': 'openstackclient.api.compute_v2.APIv2', } # Save the microversion if in use _compute_api_version = None def make_client(instance): """Returns a compute service client.""" # Defer client import until we actually need them from novaclient import client as nova_client if _compute_api_version is not None: version = _compute_api_version else: version = instance._api_version[API_NAME] from novaclient import api_versions # convert to APIVersion object version = api_versions.get_api_version(version) if version.is_latest(): import novaclient # NOTE(RuiChen): executing version discovery make sense, but that need # an initialized REST client, it's not available now, # fallback to use the max version of novaclient side. version = novaclient.API_MAX_VERSION LOG.debug('Instantiating compute client for %s', version) compute_api = utils.get_client_class( API_NAME, version.ver_major, COMPUTE_API_VERSIONS, ) LOG.debug('Instantiating compute api: %s', compute_api) # Set client http_log_debug to True if verbosity level is high enough http_log_debug = utils.get_effective_log_level() <= logging.DEBUG extensions = [ext for ext in nova_client.discover_extensions(version) if ext.name == "list_extensions"] # Remember interface only if it is set kwargs = utils.build_kwargs_dict('endpoint_type', instance.interface) client = nova_client.Client( version, session=instance.session, extensions=extensions, http_log_debug=http_log_debug, timings=instance.timing, region_name=instance.region_name, **kwargs ) client.api = compute_api( session=instance.session, service_type=COMPUTE_API_TYPE, endpoint=instance.get_endpoint_for_service_type( COMPUTE_API_TYPE, region_name=instance.region_name, interface=instance.interface, ) ) return client def build_option_parser(parser): """Hook to add global options""" parser.add_argument( '--os-compute-api-version', metavar='', default=utils.env('OS_COMPUTE_API_VERSION'), help=_("Compute API version, default=%s " "(Env: OS_COMPUTE_API_VERSION)") % DEFAULT_API_VERSION ) return parser def check_api_version(check_version): """Validate version supplied by user Returns: * True if version is OK * False if the version has not been checked and the previous plugin check should be performed * throws an exception if the version is no good TODO(dtroyer): make the exception thrown a version-related one """ # Defer client imports until we actually need them import novaclient from novaclient import api_versions global _compute_api_version # Copy some logic from novaclient 3.3.0 for basic version detection # NOTE(dtroyer): This is only enough to resume operations using API # version 2.0 or any valid version supplied by the user. _compute_api_version = api_versions.get_api_version(check_version) # Bypass X.latest format microversion if not _compute_api_version.is_latest(): if _compute_api_version > api_versions.APIVersion("2.0"): if not _compute_api_version.matches( novaclient.API_MIN_VERSION, novaclient.API_MAX_VERSION, ): msg = _("versions supported by client: %(min)s - %(max)s") % { "min": novaclient.API_MIN_VERSION.get_string(), "max": novaclient.API_MAX_VERSION.get_string(), } raise exceptions.CommandError(msg) return True python-openstackclient-3.14.2/openstackclient/compute/v2/0000775000175000017500000000000013305131240023511 5ustar zuulzuul00000000000000python-openstackclient-3.14.2/openstackclient/compute/v2/usage.py0000666000175000017500000001443413305130760025205 0ustar zuulzuul00000000000000# Copyright 2013 OpenStack Foundation. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Usage action implementations""" import datetime import sys from osc_lib.command import command from osc_lib import utils import six from openstackclient.i18n import _ class ListUsage(command.Lister): _description = _("List resource usage per project") def get_parser(self, prog_name): parser = super(ListUsage, self).get_parser(prog_name) parser.add_argument( "--start", metavar="", default=None, help=_("Usage range start date, ex 2012-01-20" " (default: 4 weeks ago)") ) parser.add_argument( "--end", metavar="", default=None, help=_("Usage range end date, ex 2012-01-20 (default: tomorrow)") ) return parser def take_action(self, parsed_args): def _format_project(project): if not project: return "" if project in project_cache.keys(): return project_cache[project].name else: return project compute_client = self.app.client_manager.compute columns = ( "tenant_id", "server_usages", "total_memory_mb_usage", "total_vcpus_usage", "total_local_gb_usage" ) column_headers = ( "Project", "Servers", "RAM MB-Hours", "CPU Hours", "Disk GB-Hours" ) dateformat = "%Y-%m-%d" now = datetime.datetime.utcnow() if parsed_args.start: start = datetime.datetime.strptime(parsed_args.start, dateformat) else: start = now - datetime.timedelta(weeks=4) if parsed_args.end: end = datetime.datetime.strptime(parsed_args.end, dateformat) else: end = now + datetime.timedelta(days=1) usage_list = compute_client.usage.list(start, end, detailed=True) # Cache the project list project_cache = {} try: for p in self.app.client_manager.identity.projects.list(): project_cache[p.id] = p except Exception: # Just forget it if there's any trouble pass if parsed_args.formatter == 'table' and len(usage_list) > 0: sys.stdout.write(_("Usage from %(start)s to %(end)s: \n") % { "start": start.strftime(dateformat), "end": end.strftime(dateformat), }) return (column_headers, (utils.get_item_properties( s, columns, formatters={ 'tenant_id': _format_project, 'server_usages': lambda x: len(x), 'total_memory_mb_usage': lambda x: float("%.2f" % x), 'total_vcpus_usage': lambda x: float("%.2f" % x), 'total_local_gb_usage': lambda x: float("%.2f" % x), }, ) for s in usage_list)) class ShowUsage(command.ShowOne): _description = _("Show resource usage for a single project") def get_parser(self, prog_name): parser = super(ShowUsage, self).get_parser(prog_name) parser.add_argument( "--project", metavar="", default=None, help=_("Name or ID of project to show usage for") ) parser.add_argument( "--start", metavar="", default=None, help=_("Usage range start date, ex 2012-01-20" " (default: 4 weeks ago)") ) parser.add_argument( "--end", metavar="", default=None, help=_("Usage range end date, ex 2012-01-20 (default: tomorrow)") ) return parser def take_action(self, parsed_args): identity_client = self.app.client_manager.identity compute_client = self.app.client_manager.compute dateformat = "%Y-%m-%d" now = datetime.datetime.utcnow() if parsed_args.start: start = datetime.datetime.strptime(parsed_args.start, dateformat) else: start = now - datetime.timedelta(weeks=4) if parsed_args.end: end = datetime.datetime.strptime(parsed_args.end, dateformat) else: end = now + datetime.timedelta(days=1) if parsed_args.project: project = utils.find_resource( identity_client.projects, parsed_args.project, ).id else: # Get the project from the current auth project = self.app.client_manager.auth_ref.project_id usage = compute_client.usage.get(project, start, end) if parsed_args.formatter == 'table': sys.stdout.write(_("Usage from %(start)s to %(end)s on " "project %(project)s: \n") % { "start": start.strftime(dateformat), "end": end.strftime(dateformat), "project": project, }) info = {} info['Servers'] = ( len(usage.server_usages) if hasattr(usage, "server_usages") else None) info['RAM MB-Hours'] = ( float("%.2f" % usage.total_memory_mb_usage) if hasattr(usage, "total_memory_mb_usage") else None) info['CPU Hours'] = ( float("%.2f" % usage.total_vcpus_usage) if hasattr(usage, "total_vcpus_usage") else None) info['Disk GB-Hours'] = ( float("%.2f" % usage.total_local_gb_usage) if hasattr(usage, "total_local_gb_usage") else None) return zip(*sorted(six.iteritems(info))) python-openstackclient-3.14.2/openstackclient/compute/v2/console.py0000666000175000017500000001060613305130760025540 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Compute v2 Console action implementations""" import sys from osc_lib.cli import parseractions from osc_lib.command import command from osc_lib import utils import six from openstackclient.i18n import _ class ShowConsoleLog(command.Command): _description = _("Show server's console output") def get_parser(self, prog_name): parser = super(ShowConsoleLog, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_("Server to show console log (name or ID)") ) parser.add_argument( '--lines', metavar='', type=int, default=None, action=parseractions.NonNegativeAction, help=_("Number of lines to display from the end of the log " "(default=all)") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) length = parsed_args.lines if length: # NOTE(dtroyer): get_console_output() appears to shortchange the # output by one line length += 1 data = server.get_console_output(length=length) sys.stdout.write(data) class ShowConsoleURL(command.ShowOne): _description = _("Show server's remote console URL") def get_parser(self, prog_name): parser = super(ShowConsoleURL, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_("Server to show URL (name or ID)") ) type_group = parser.add_mutually_exclusive_group() type_group.add_argument( '--novnc', dest='url_type', action='store_const', const='novnc', default='novnc', help=_("Show noVNC console URL (default)") ) type_group.add_argument( '--xvpvnc', dest='url_type', action='store_const', const='xvpvnc', help=_("Show xvpvnc console URL") ) type_group.add_argument( '--spice', dest='url_type', action='store_const', const='spice-html5', help=_("Show SPICE console URL") ) type_group.add_argument( '--rdp', dest='url_type', action='store_const', const='rdp-html5', help=_("Show RDP console URL"), ) type_group.add_argument( '--serial', dest='url_type', action='store_const', const='serial', help=_("Show serial console URL"), ) type_group.add_argument( '--mks', dest='url_type', action='store_const', const='webmks', help=_("Show WebMKS console URL"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) data = server.get_console_url(parsed_args.url_type) if not data: return ({}, {}) info = {} # NOTE(Rui Chen): Return 'remote_console' in compute microversion API # 2.6 and later, return 'console' in compute # microversion API from 2.0 to 2.5, do compatibility # handle for different microversion API. console_data = data.get('remote_console', data.get('console')) info.update(console_data) return zip(*sorted(six.iteritems(info))) python-openstackclient-3.14.2/openstackclient/compute/v2/__init__.py0000666000175000017500000000000013305130746025624 0ustar zuulzuul00000000000000python-openstackclient-3.14.2/openstackclient/compute/v2/agent.py0000666000175000017500000001333613305130746025203 0ustar zuulzuul00000000000000# Copyright 2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Agent action implementations""" import logging from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils import six from openstackclient.i18n import _ LOG = logging.getLogger(__name__) class CreateAgent(command.ShowOne): _description = _("Create compute agent") def get_parser(self, prog_name): parser = super(CreateAgent, self).get_parser(prog_name) parser.add_argument( "os", metavar="", help=_("Type of OS") ) parser.add_argument( "architecture", metavar="", help=_("Type of architecture") ) parser.add_argument( "version", metavar="", help=_("Version") ) parser.add_argument( "url", metavar="", help=_("URL") ) parser.add_argument( "md5hash", metavar="", help=_("MD5 hash") ) parser.add_argument( "hypervisor", metavar="", default="xen", help=_("Type of hypervisor") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute args = ( parsed_args.os, parsed_args.architecture, parsed_args.version, parsed_args.url, parsed_args.md5hash, parsed_args.hypervisor ) agent = compute_client.agents.create(*args)._info.copy() return zip(*sorted(six.iteritems(agent))) class DeleteAgent(command.Command): _description = _("Delete compute agent(s)") def get_parser(self, prog_name): parser = super(DeleteAgent, self).get_parser(prog_name) parser.add_argument( "id", metavar="", nargs='+', help=_("ID of agent(s) to delete") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute result = 0 for id in parsed_args.id: try: compute_client.agents.delete(id) except Exception as e: result += 1 LOG.error(_("Failed to delete agent with ID '%(id)s': %(e)s"), {'id': id, 'e': e}) if result > 0: total = len(parsed_args.id) msg = (_("%(result)s of %(total)s agents failed " "to delete.") % {'result': result, 'total': total}) raise exceptions.CommandError(msg) class ListAgent(command.Lister): _description = _("List compute agents") def get_parser(self, prog_name): parser = super(ListAgent, self).get_parser(prog_name) parser.add_argument( "--hypervisor", metavar="", help=_("Type of hypervisor") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute columns = ( "Agent ID", "Hypervisor", "OS", "Architecture", "Version", "Md5Hash", "URL" ) data = compute_client.agents.list(parsed_args.hypervisor) return (columns, (utils.get_item_properties( s, columns, ) for s in data)) class SetAgent(command.Command): _description = _("Set compute agent properties") def get_parser(self, prog_name): parser = super(SetAgent, self).get_parser(prog_name) parser.add_argument( "id", metavar="", help=_("ID of the agent") ) parser.add_argument( "--agent-version", dest="version", metavar="", help=_("Version of the agent") ) parser.add_argument( "--url", metavar="", help=_("URL of the agent") ) parser.add_argument( "--md5hash", metavar="", help=_("MD5 hash of the agent") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute data = compute_client.agents.list(hypervisor=None) agent = {} for s in data: if s.agent_id == int(parsed_args.id): agent['version'] = s.version agent['url'] = s.url agent['md5hash'] = s.md5hash if agent == {}: msg = _("No agent with a ID of '%(id)s' exists.") raise exceptions.CommandError(msg % parsed_args.id) if parsed_args.version: agent['version'] = parsed_args.version if parsed_args.url: agent['url'] = parsed_args.url if parsed_args.md5hash: agent['md5hash'] = parsed_args.md5hash args = ( parsed_args.id, agent['version'], agent['url'], agent['md5hash'], ) compute_client.agents.update(*args) python-openstackclient-3.14.2/openstackclient/compute/v2/server_group.py0000666000175000017500000001371713305130746026632 0ustar zuulzuul00000000000000# Copyright 2016 Huawei, Inc. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Compute v2 Server Group action implementations""" import logging from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils from openstackclient.i18n import _ LOG = logging.getLogger(__name__) _formatters = { 'policies': utils.format_list, 'members': utils.format_list, } def _get_columns(info): columns = list(info.keys()) if 'metadata' in columns: # NOTE(RuiChen): The metadata of server group is always empty since API # compatible, so hide it in order to avoid confusion. columns.remove('metadata') return tuple(sorted(columns)) class CreateServerGroup(command.ShowOne): _description = _("Create a new server group.") def get_parser(self, prog_name): parser = super(CreateServerGroup, self).get_parser(prog_name) parser.add_argument( 'name', metavar='', help=_("New server group name") ) parser.add_argument( '--policy', metavar='', default='affinity', help=_("Add a policy to " "('affinity' or 'anti-affinity', " "defaults to 'affinity'). Specify --os-compute-api-version " "2.15 or higher for the 'soft-affinity' or " "'soft-anti-affinity' policy.") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute info = {} server_group = compute_client.server_groups.create( name=parsed_args.name, policies=[parsed_args.policy]) info.update(server_group._info) columns = _get_columns(info) data = utils.get_dict_properties(info, columns, formatters=_formatters) return columns, data class DeleteServerGroup(command.Command): _description = _("Delete existing server group(s).") def get_parser(self, prog_name): parser = super(DeleteServerGroup, self).get_parser(prog_name) parser.add_argument( 'server_group', metavar='', nargs='+', help=_("server group(s) to delete (name or ID)") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute result = 0 for group in parsed_args.server_group: try: group_obj = utils.find_resource(compute_client.server_groups, group) compute_client.server_groups.delete(group_obj.id) # Catch all exceptions in order to avoid to block the next deleting except Exception as e: result += 1 LOG.error(e) if result > 0: total = len(parsed_args.server_group) msg = _("%(result)s of %(total)s server groups failed to delete.") raise exceptions.CommandError( msg % {"result": result, "total": total} ) class ListServerGroup(command.Lister): _description = _("List all server groups.") def get_parser(self, prog_name): parser = super(ListServerGroup, self).get_parser(prog_name) parser.add_argument( '--all-projects', action='store_true', default=False, help=_("Display information from all projects (admin only)") ) parser.add_argument( '--long', action='store_true', default=False, help=_("List additional fields in output") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute data = compute_client.server_groups.list(parsed_args.all_projects) if parsed_args.long: column_headers = columns = ( 'ID', 'Name', 'Policies', 'Members', 'Project Id', 'User Id', ) else: column_headers = columns = ( 'ID', 'Name', 'Policies', ) return (column_headers, (utils.get_item_properties( s, columns, formatters={ 'Policies': utils.format_list, 'Members': utils.format_list, } ) for s in data)) class ShowServerGroup(command.ShowOne): _description = _("Display server group details.") def get_parser(self, prog_name): parser = super(ShowServerGroup, self).get_parser(prog_name) parser.add_argument( 'server_group', metavar='', help=_("server group to display (name or ID)") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute group = utils.find_resource(compute_client.server_groups, parsed_args.server_group) info = {} info.update(group._info) columns = _get_columns(info) data = utils.get_dict_properties(info, columns, formatters=_formatters) return columns, data python-openstackclient-3.14.2/openstackclient/compute/v2/server_backup.py0000666000175000017500000001011313305130760026722 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Compute v2 Server action implementations""" import sys from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils from oslo_utils import importutils import six from openstackclient.i18n import _ def _show_progress(progress): if progress: sys.stderr.write('\rProgress: %s' % progress) sys.stderr.flush() class CreateServerBackup(command.ShowOne): _description = _("Create a server backup image") IMAGE_API_VERSIONS = { "1": "openstackclient.image.v1.image", "2": "openstackclient.image.v2.image", } def get_parser(self, prog_name): parser = super(CreateServerBackup, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server to back up (name or ID)'), ) parser.add_argument( '--name', metavar='', help=_('Name of the backup image (default: server name)'), ) parser.add_argument( '--type', metavar='', help=_( 'Used to populate the backup_type property of the backup ' 'image (default: empty)' ), ) parser.add_argument( '--rotate', metavar='', type=int, help=_('Number of backups to keep (default: 1)'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for backup image create to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) # Set sane defaults as this API wants all mouths to be fed if parsed_args.name is None: backup_name = server.name else: backup_name = parsed_args.name if parsed_args.type is None: backup_type = "" else: backup_type = parsed_args.type if parsed_args.rotate is None: backup_rotation = 1 else: backup_rotation = parsed_args.rotate compute_client.servers.backup( server.id, backup_name, backup_type, backup_rotation, ) image_client = self.app.client_manager.image image = utils.find_resource( image_client.images, backup_name, ) if parsed_args.wait: if utils.wait_for_status( image_client.images.get, image.id, callback=_show_progress, ): sys.stdout.write('\n') else: msg = _('Error creating server backup: %s') % parsed_args.name raise exceptions.CommandError(msg) if self.app.client_manager._api_version['image'] == '1': info = {} info.update(image._info) info['properties'] = utils.format_dict(info.get('properties', {})) else: # Get the right image module to format the output image_module = importutils.import_module( self.IMAGE_API_VERSIONS[ self.app.client_manager._api_version['image'] ] ) info = image_module._format_image(image) return zip(*sorted(six.iteritems(info))) python-openstackclient-3.14.2/openstackclient/compute/v2/server_image.py0000666000175000017500000000660613305130760026553 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Compute v2 Server action implementations""" import logging import sys from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils from oslo_utils import importutils import six from openstackclient.i18n import _ LOG = logging.getLogger(__name__) def _show_progress(progress): if progress: sys.stdout.write('\rProgress: %s' % progress) sys.stdout.flush() class CreateServerImage(command.ShowOne): _description = _("Create a new server disk image from an existing server") IMAGE_API_VERSIONS = { "1": "openstackclient.image.v1.image", "2": "openstackclient.image.v2.image", } def get_parser(self, prog_name): parser = super(CreateServerImage, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server to create image (name or ID)'), ) parser.add_argument( '--name', metavar='', help=_('Name of new disk image (default: server name)'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for operation to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) if parsed_args.name: image_name = parsed_args.name else: image_name = server.name image_id = compute_client.servers.create_image( server.id, image_name, ) image_client = self.app.client_manager.image image = utils.find_resource( image_client.images, image_id, ) if parsed_args.wait: if utils.wait_for_status( image_client.images.get, image_id, callback=_show_progress, ): sys.stdout.write('\n') else: LOG.error(_('Error creating server image: %s'), parsed_args.server) raise exceptions.CommandError if self.app.client_manager._api_version['image'] == '1': info = {} info.update(image._info) info['properties'] = utils.format_dict(info.get('properties', {})) else: # Get the right image module to format the output image_module = importutils.import_module( self.IMAGE_API_VERSIONS[ self.app.client_manager._api_version['image'] ] ) info = image_module._format_image(image) return zip(*sorted(six.iteritems(info))) python-openstackclient-3.14.2/openstackclient/compute/v2/server.py0000666000175000017500000022644013305130760025411 0ustar zuulzuul00000000000000# Copyright 2012-2013 OpenStack Foundation # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. # """Compute v2 Server action implementations""" import argparse import getpass import io import logging import os import sys from novaclient.v2 import servers from osc_lib.cli import parseractions from osc_lib.command import command from osc_lib import exceptions from osc_lib import utils from oslo_utils import timeutils import six from openstackclient.i18n import _ from openstackclient.identity import common as identity_common from openstackclient.network import common as network_common LOG = logging.getLogger(__name__) def _format_servers_list_networks(networks): """Return a formatted string of a server's networks :param networks: a Server.networks field :rtype: a string of formatted network addresses """ output = [] for (network, addresses) in networks.items(): if not addresses: continue addresses_csv = ', '.join(addresses) group = "%s=%s" % (network, addresses_csv) output.append(group) return '; '.join(output) def _format_servers_list_power_state(state): """Return a formatted string of a server's power state :param state: the power state number of a server :rtype: a string mapped to the power state number """ power_states = [ 'NOSTATE', # 0x00 'Running', # 0x01 '', # 0x02 'Paused', # 0x03 'Shutdown', # 0x04 '', # 0x05 'Crashed', # 0x06 'Suspended' # 0x07 ] try: return power_states[state] except Exception: return 'N/A' def _get_ip_address(addresses, address_type, ip_address_family): # Old style addresses if address_type in addresses: for addy in addresses[address_type]: if int(addy['version']) in ip_address_family: return addy['addr'] # New style addresses new_address_type = address_type if address_type == 'public': new_address_type = 'floating' if address_type == 'private': new_address_type = 'fixed' for network in addresses: for addy in addresses[network]: # Case where it is list of strings if isinstance(addy, six.string_types): if new_address_type == 'fixed': return addresses[network][0] else: return addresses[network][-1] # Case where it is a dict if 'OS-EXT-IPS:type' not in addy: continue if addy['OS-EXT-IPS:type'] == new_address_type: if int(addy['version']) in ip_address_family: return addy['addr'] msg = _("ERROR: No %(type)s IP version %(family)s address found") raise exceptions.CommandError( msg % {"type": address_type, "family": ip_address_family} ) def _prefix_checked_value(prefix): def func(value): if ',' in value or '=' in value: msg = _("Invalid argument %s, " "characters ',' and '=' are not allowed") % value raise argparse.ArgumentTypeError(msg) return prefix + value return func def _prep_server_detail(compute_client, image_client, server): """Prepare the detailed server dict for printing :param compute_client: a compute client instance :param server: a Server resource :rtype: a dict of server details """ info = server._info.copy() server = utils.find_resource(compute_client.servers, info['id']) info.update(server._info) # Convert the image blob to a name image_info = info.get('image', {}) if image_info: image_id = image_info.get('id', '') try: image = utils.find_resource(image_client.images, image_id) info['image'] = "%s (%s)" % (image.name, image_id) except Exception: info['image'] = image_id # Convert the flavor blob to a name flavor_info = info.get('flavor', {}) flavor_id = flavor_info.get('id', '') try: flavor = utils.find_resource(compute_client.flavors, flavor_id) info['flavor'] = "%s (%s)" % (flavor.name, flavor_id) except Exception: info['flavor'] = flavor_id if 'os-extended-volumes:volumes_attached' in info: info.update( { 'volumes_attached': utils.format_list_of_dicts( info.pop('os-extended-volumes:volumes_attached')) } ) if 'security_groups' in info: info.update( { 'security_groups': utils.format_list_of_dicts( info.pop('security_groups')) } ) # NOTE(dtroyer): novaclient splits these into separate entries... # Format addresses in a useful way info['addresses'] = _format_servers_list_networks(server.networks) # Map 'metadata' field to 'properties' info.update( {'properties': utils.format_dict(info.pop('metadata'))} ) # Migrate tenant_id to project_id naming if 'tenant_id' in info: info['project_id'] = info.pop('tenant_id') # Map power state num to meanful string if 'OS-EXT-STS:power_state' in info: info['OS-EXT-STS:power_state'] = _format_servers_list_power_state( info['OS-EXT-STS:power_state']) # Remove values that are long and not too useful info.pop('links', None) return info def _show_progress(progress): if progress: sys.stdout.write('\rProgress: %s' % progress) sys.stdout.flush() class AddFixedIP(command.Command): _description = _("Add fixed IP address to server") def get_parser(self, prog_name): parser = super(AddFixedIP, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to receive the fixed IP address (name or ID)"), ) parser.add_argument( "network", metavar="", help=_( "Network to allocate the fixed IP address from (name or ID)" ), ) parser.add_argument( "--fixed-ip-address", metavar="", help=_("Requested fixed IP address"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) network = compute_client.api.network_find(parsed_args.network) server.interface_attach( port_id=None, net_id=network['id'], fixed_ip=parsed_args.fixed_ip_address, ) class AddFloatingIP(network_common.NetworkAndComputeCommand): _description = _("Add floating IP address to server") def update_parser_common(self, parser): parser.add_argument( "server", metavar="", help=_("Server to receive the floating IP address (name or ID)"), ) parser.add_argument( "ip_address", metavar="", help=_("Floating IP address to assign to server (IP only)"), ) parser.add_argument( "--fixed-ip-address", metavar="", help=_( "Fixed IP address to associate with this floating IP address" ), ) return parser def take_action_network(self, client, parsed_args): compute_client = self.app.client_manager.compute attrs = {} obj = client.find_ip( parsed_args.ip_address, ignore_missing=False, ) server = utils.find_resource( compute_client.servers, parsed_args.server, ) port = list(client.ports(device_id=server.id))[0] attrs['port_id'] = port.id if parsed_args.fixed_ip_address: attrs['fixed_ip_address'] = parsed_args.fixed_ip_address client.update_ip(obj, **attrs) def take_action_compute(self, client, parsed_args): client.api.floating_ip_add( parsed_args.server, parsed_args.ip_address, fixed_address=parsed_args.fixed_ip_address, ) class AddPort(command.Command): _description = _("Add port to server") def get_parser(self, prog_name): parser = super(AddPort, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to add the port to (name or ID)"), ) parser.add_argument( "port", metavar="", help=_("Port to add to the server (name or ID)"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network port_id = network_client.find_port( parsed_args.port, ignore_missing=False).id else: port_id = parsed_args.port server.interface_attach(port_id=port_id, net_id=None, fixed_ip=None) class AddNetwork(command.Command): _description = _("Add network to server") def get_parser(self, prog_name): parser = super(AddNetwork, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to add the network to (name or ID)"), ) parser.add_argument( "network", metavar="", help=_("Network to add to the server (name or ID)"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network net_id = network_client.find_network( parsed_args.network, ignore_missing=False).id else: net_id = parsed_args.network server.interface_attach(port_id=None, net_id=net_id, fixed_ip=None) class AddServerSecurityGroup(command.Command): _description = _("Add security group to server") def get_parser(self, prog_name): parser = super(AddServerSecurityGroup, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( 'group', metavar='', help=_('Security group to add (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) security_group = compute_client.api.security_group_find( parsed_args.group, ) server.add_security_group(security_group['id']) class AddServerVolume(command.Command): _description = _("Add volume to server") def get_parser(self, prog_name): parser = super(AddServerVolume, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( 'volume', metavar='', help=_('Volume to add (name or ID)'), ) parser.add_argument( '--device', metavar='', help=_('Server internal device name for volume'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute volume_client = self.app.client_manager.volume server = utils.find_resource( compute_client.servers, parsed_args.server, ) volume = utils.find_resource( volume_client.volumes, parsed_args.volume, ) compute_client.volumes.create_server_volume( server.id, volume.id, parsed_args.device, ) class CreateServer(command.ShowOne): _description = _("Create a new server") def get_parser(self, prog_name): parser = super(CreateServer, self).get_parser(prog_name) parser.add_argument( 'server_name', metavar='', help=_('New server name'), ) disk_group = parser.add_mutually_exclusive_group( required=True, ) disk_group.add_argument( '--image', metavar='', help=_('Create server boot disk from this image (name or ID)'), ) disk_group.add_argument( '--volume', metavar='', help=_('Create server using this volume as the boot disk (name ' 'or ID).\n' 'This option automatically creates a block device mapping ' 'with a boot index of 0. On many hypervisors (libvirt/kvm ' 'for example) this will be device vda. Do not create a ' 'duplicate mapping using --block-device-mapping for this ' 'volume.'), ) parser.add_argument( '--flavor', metavar='', required=True, help=_('Create server with this flavor (name or ID)'), ) parser.add_argument( '--security-group', metavar='', action='append', default=[], help=_('Security group to assign to this server (name or ID) ' '(repeat option to set multiple groups)'), ) parser.add_argument( '--key-name', metavar='', help=_('Keypair to inject into this server (optional extension)'), ) parser.add_argument( '--property', metavar='', action=parseractions.KeyValueAction, help=_('Set a property on this server ' '(repeat option to set multiple values)'), ) parser.add_argument( '--file', metavar='', action='append', default=[], help=_('File to inject into image before boot ' '(repeat option to set multiple files)'), ) parser.add_argument( '--user-data', metavar='', help=_('User data file to serve from the metadata server'), ) parser.add_argument( '--availability-zone', metavar='', help=_('Select an availability zone for the server'), ) parser.add_argument( '--block-device-mapping', metavar='', action=parseractions.KeyValueAction, default={}, # NOTE(RuiChen): Add '\n' at the end of line to put each item in # the separated line, avoid the help message looks # messy, see _SmartHelpFormatter in cliff. help=_('Create a block device on the server.\n' 'Block device mapping in the format\n' '=:::\n' ': block device name, like: vdb, xvdc ' '(required)\n' ': UUID of the volume or snapshot (required)\n' ': volume or snapshot; default: volume (optional)\n' ': volume size if create from snapshot ' '(optional)\n' ': true or false; default: false ' '(optional)\n' '(optional extension)'), ) parser.add_argument( '--nic', metavar="", action='append', help=_("Create a NIC on the server. " "Specify option multiple times to create multiple NICs. " "Either net-id or port-id must be provided, but not both. " "net-id: attach NIC to network with this UUID, " "port-id: attach NIC to port with this UUID, " "v4-fixed-ip: IPv4 fixed address for NIC (optional), " "v6-fixed-ip: IPv6 fixed address for NIC (optional), " "none: (v2.37+) no network is attached, " "auto: (v2.37+) the compute service will automatically " "allocate a network. Specifying a --nic of auto or none " "cannot be used with any other --nic value."), ) parser.add_argument( '--network', metavar="", action='append', dest='nic', type=_prefix_checked_value('net-id='), help=_("Create a NIC on the server and connect it to network. " "Specify option multiple times to create multiple NICs. " "This is a wrapper for the '--nic net-id=' " "parameter that provides simple syntax for the standard " "use case of connecting a new server to a given network. " "For more advanced use cases, refer to the '--nic' " "parameter."), ) parser.add_argument( '--port', metavar="", action='append', dest='nic', type=_prefix_checked_value('port-id='), help=_("Create a NIC on the server and connect it to port. " "Specify option multiple times to create multiple NICs. " "This is a wrapper for the '--nic port-id=' " "parameter that provides simple syntax for the standard " "use case of connecting a new server to a given port. For " "more advanced use cases, refer to the '--nic' parameter."), ) parser.add_argument( '--hint', metavar='', action='append', default=[], help=_('Hints for the scheduler (optional extension)'), ) parser.add_argument( '--config-drive', metavar='|True', default=False, help=_('Use specified volume as the config drive, ' 'or \'True\' to use an ephemeral drive'), ) parser.add_argument( '--min', metavar='', type=int, default=1, help=_('Minimum number of servers to launch (default=1)'), ) parser.add_argument( '--max', metavar='', type=int, default=1, help=_('Maximum number of servers to launch (default=1)'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for build to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute volume_client = self.app.client_manager.volume image_client = self.app.client_manager.image # Lookup parsed_args.image image = None if parsed_args.image: image = utils.find_resource( image_client.images, parsed_args.image, ) # Lookup parsed_args.volume volume = None if parsed_args.volume: volume = utils.find_resource( volume_client.volumes, parsed_args.volume, ).id # Lookup parsed_args.flavor flavor = utils.find_resource(compute_client.flavors, parsed_args.flavor) boot_args = [parsed_args.server_name, image, flavor] files = {} for f in parsed_args.file: dst, src = f.split('=', 1) try: files[dst] = io.open(src, 'rb') except IOError as e: msg = _("Can't open '%(source)s': %(exception)s") raise exceptions.CommandError( msg % {"source": src, "exception": e} ) if parsed_args.min > parsed_args.max: msg = _("min instances should be <= max instances") raise exceptions.CommandError(msg) if parsed_args.min < 1: msg = _("min instances should be > 0") raise exceptions.CommandError(msg) if parsed_args.max < 1: msg = _("max instances should be > 0") raise exceptions.CommandError(msg) userdata = None if parsed_args.user_data: try: userdata = io.open(parsed_args.user_data) except IOError as e: msg = _("Can't open '%(data)s': %(exception)s") raise exceptions.CommandError( msg % {"data": parsed_args.user_data, "exception": e} ) block_device_mapping_v2 = [] if volume: block_device_mapping_v2 = [{'uuid': volume, 'boot_index': '0', 'source_type': 'volume', 'destination_type': 'volume' }] # Handle block device by device name order, like: vdb -> vdc -> vdd for dev_name in sorted(six.iterkeys(parsed_args.block_device_mapping)): dev_map = parsed_args.block_device_mapping[dev_name] dev_map = dev_map.split(':') if dev_map[0]: mapping = {'device_name': dev_name} # 1. decide source and destination type if (len(dev_map) > 1 and dev_map[1] in ('volume', 'snapshot')): mapping['source_type'] = dev_map[1] else: mapping['source_type'] = 'volume' mapping['destination_type'] = 'volume' # 2. check target exist, update target uuid according by # source type if mapping['source_type'] == 'volume': volume_id = utils.find_resource( volume_client.volumes, dev_map[0]).id mapping['uuid'] = volume_id elif mapping['source_type'] == 'snapshot': snapshot_id = utils.find_resource( volume_client.volume_snapshots, dev_map[0]).id mapping['uuid'] = snapshot_id # 3. append size and delete_on_termination if exist if len(dev_map) > 2 and dev_map[2]: mapping['volume_size'] = dev_map[2] if len(dev_map) > 3 and dev_map[3]: mapping['delete_on_termination'] = dev_map[3] else: msg = _("Volume or snapshot (name or ID) must be specified if " "--block-device-mapping is specified") raise exceptions.CommandError(msg) block_device_mapping_v2.append(mapping) nics = [] auto_or_none = False if parsed_args.nic is None: parsed_args.nic = [] for nic_str in parsed_args.nic: # Handle the special auto/none cases if nic_str in ('auto', 'none'): auto_or_none = True nics.append(nic_str) else: nic_info = {"net-id": "", "v4-fixed-ip": "", "v6-fixed-ip": "", "port-id": ""} for kv_str in nic_str.split(","): k, sep, v = kv_str.partition("=") if k in nic_info and v: nic_info[k] = v else: msg = (_("Invalid nic argument '%s'. Nic arguments " "must be of the form --nic .")) raise exceptions.CommandError(msg % k) if bool(nic_info["net-id"]) == bool(nic_info["port-id"]): msg = _("either network or port should be specified " "but not both") raise exceptions.CommandError(msg) if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network if nic_info["net-id"]: net = network_client.find_network( nic_info["net-id"], ignore_missing=False) nic_info["net-id"] = net.id if nic_info["port-id"]: port = network_client.find_port( nic_info["port-id"], ignore_missing=False) nic_info["port-id"] = port.id else: if nic_info["net-id"]: nic_info["net-id"] = compute_client.api.network_find( nic_info["net-id"] )['id'] if nic_info["port-id"]: msg = _("can't create server with port specified " "since network endpoint not enabled") raise exceptions.CommandError(msg) nics.append(nic_info) if nics: if auto_or_none: if len(nics) > 1: msg = _('Specifying a --nic of auto or none cannot ' 'be used with any other --nic, --network ' 'or --port value.') raise exceptions.CommandError(msg) nics = nics[0] else: # Default to empty list if nothing was specified, let nova side to # decide the default behavior. nics = [] # Check security group exist and convert ID to name security_group_names = [] if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network for each_sg in parsed_args.security_group: sg = network_client.find_security_group(each_sg, ignore_missing=False) # Use security group ID to avoid multiple security group have # same name in neutron networking backend security_group_names.append(sg.id) else: # Handle nova-network case for each_sg in parsed_args.security_group: sg = compute_client.api.security_group_find(each_sg) security_group_names.append(sg['name']) hints = {} for hint in parsed_args.hint: key, _sep, value = hint.partition('=') # NOTE(vish): multiple copies of the same hint will # result in a list of values if key in hints: if isinstance(hints[key], six.string_types): hints[key] = [hints[key]] hints[key] += [value] else: hints[key] = value # What does a non-boolean value for config-drive do? # --config-drive argument is either a volume id or # 'True' (or '1') to use an ephemeral volume if str(parsed_args.config_drive).lower() in ("true", "1"): config_drive = True elif str(parsed_args.config_drive).lower() in ("false", "0", "", "none"): config_drive = None else: config_drive = parsed_args.config_drive boot_kwargs = dict( meta=parsed_args.property, files=files, reservation_id=None, min_count=parsed_args.min, max_count=parsed_args.max, security_groups=security_group_names, userdata=userdata, key_name=parsed_args.key_name, availability_zone=parsed_args.availability_zone, block_device_mapping_v2=block_device_mapping_v2, nics=nics, scheduler_hints=hints, config_drive=config_drive) LOG.debug('boot_args: %s', boot_args) LOG.debug('boot_kwargs: %s', boot_kwargs) # Wrap the call to catch exceptions in order to close files try: server = compute_client.servers.create(*boot_args, **boot_kwargs) finally: # Clean up open files - make sure they are not strings for f in files: if hasattr(f, 'close'): f.close() if hasattr(userdata, 'close'): userdata.close() if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, server.id, callback=_show_progress, ): sys.stdout.write('\n') else: LOG.error(_('Error creating server: %s'), parsed_args.server_name) sys.stdout.write(_('Error creating server\n')) raise SystemExit details = _prep_server_detail(compute_client, image_client, server) return zip(*sorted(six.iteritems(details))) class CreateServerDump(command.Command): """Create a dump file in server(s) Trigger crash dump in server(s) with features like kdump in Linux. It will create a dump file in the server(s) dumping the server(s)' memory, and also crash the server(s). OSC sees the dump file (server dump) as a kind of resource. """ def get_parser(self, prog_name): parser = super(CreateServerDump, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to create dump file (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server, ).trigger_crash_dump() class DeleteServer(command.Command): _description = _("Delete server(s)") def get_parser(self, prog_name): parser = super(DeleteServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs="+", help=_('Server(s) to delete (name or ID)'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for delete to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: server_obj = utils.find_resource( compute_client.servers, server) compute_client.servers.delete(server_obj.id) if parsed_args.wait: if utils.wait_for_delete( compute_client.servers, server_obj.id, callback=_show_progress, ): sys.stdout.write('\n') else: LOG.error(_('Error deleting server: %s'), server_obj.id) sys.stdout.write(_('Error deleting server\n')) raise SystemExit class ListServer(command.Lister): _description = _("List servers") def get_parser(self, prog_name): parser = super(ListServer, self).get_parser(prog_name) parser.add_argument( '--reservation-id', metavar='', help=_('Only return instances that match the reservation'), ) parser.add_argument( '--ip', metavar='', help=_('Regular expression to match IP addresses'), ) parser.add_argument( '--ip6', metavar='', help=_('Regular expression to match IPv6 addresses'), ) parser.add_argument( '--name', metavar='', help=_('Regular expression to match names'), ) parser.add_argument( '--instance-name', metavar='', help=_('Regular expression to match instance name (admin only)'), ) parser.add_argument( '--status', metavar='', # FIXME(dhellmann): Add choices? help=_('Search by server status'), ) parser.add_argument( '--flavor', metavar='', help=_('Search by flavor (name or ID)'), ) parser.add_argument( '--image', metavar='', help=_('Search by image (name or ID)'), ) parser.add_argument( '--host', metavar='', help=_('Search by hostname'), ) parser.add_argument( '--all-projects', action='store_true', default=bool(int(os.environ.get("ALL_PROJECTS", 0))), help=_('Include all projects (admin only)'), ) parser.add_argument( '--project', metavar='', help=_("Search by project (admin only) (name or ID)") ) identity_common.add_project_domain_option_to_parser(parser) parser.add_argument( '--user', metavar='', help=_('Search by user (admin only) (name or ID)'), ) identity_common.add_user_domain_option_to_parser(parser) parser.add_argument( '--long', action='store_true', default=False, help=_('List additional fields in output'), ) parser.add_argument( '-n', '--no-name-lookup', action='store_true', default=False, help=_('Skip flavor and image name lookup.'), ) parser.add_argument( '--marker', metavar='', default=None, help=_('The last server of the previous page. Display ' 'list of servers after marker. Display all servers if not ' 'specified. (name or ID)') ) parser.add_argument( '--limit', metavar='', type=int, default=None, help=_("Maximum number of servers to display. If limit equals -1, " "all servers will be displayed. If limit is greater than " "'osapi_max_limit' option of Nova API, " "'osapi_max_limit' will be used instead."), ) parser.add_argument( '--deleted', action="store_true", default=False, help=_('Only display deleted servers (Admin only).') ) parser.add_argument( '--changes-since', metavar='', default=None, help=_("List only servers changed after a certain point of time." " The provided time should be an ISO 8061 formatted time." " ex 2016-03-04T06:27:59Z .") ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute identity_client = self.app.client_manager.identity image_client = self.app.client_manager.image project_id = None if parsed_args.project: project_id = identity_common.find_project( identity_client, parsed_args.project, parsed_args.project_domain, ).id parsed_args.all_projects = True user_id = None if parsed_args.user: user_id = identity_common.find_user( identity_client, parsed_args.user, parsed_args.user_domain, ).id # Nova only supports list servers searching by flavor ID. So if a # flavor name is given, map it to ID. flavor_id = None if parsed_args.flavor: flavor_id = utils.find_resource(compute_client.flavors, parsed_args.flavor).id # Nova only supports list servers searching by image ID. So if a # image name is given, map it to ID. image_id = None if parsed_args.image: image_id = utils.find_resource(image_client.images, parsed_args.image).id search_opts = { 'reservation_id': parsed_args.reservation_id, 'ip': parsed_args.ip, 'ip6': parsed_args.ip6, 'name': parsed_args.name, 'instance_name': parsed_args.instance_name, 'status': parsed_args.status, 'flavor': flavor_id, 'image': image_id, 'host': parsed_args.host, 'tenant_id': project_id, 'all_tenants': parsed_args.all_projects, 'user_id': user_id, 'deleted': parsed_args.deleted, 'changes-since': parsed_args.changes_since, } LOG.debug('search options: %s', search_opts) if search_opts['changes-since']: try: timeutils.parse_isotime(search_opts['changes-since']) except ValueError: raise exceptions.CommandError( _('Invalid changes-since value: %s') % search_opts['changes-since'] ) if parsed_args.long: columns = ( 'ID', 'Name', 'Status', 'OS-EXT-STS:task_state', 'OS-EXT-STS:power_state', 'Networks', 'Image Name', 'Image ID', 'Flavor Name', 'Flavor ID', 'OS-EXT-AZ:availability_zone', 'OS-EXT-SRV-ATTR:host', 'Metadata', ) column_headers = ( 'ID', 'Name', 'Status', 'Task State', 'Power State', 'Networks', 'Image Name', 'Image ID', 'Flavor Name', 'Flavor ID', 'Availability Zone', 'Host', 'Properties', ) mixed_case_fields = [ 'OS-EXT-STS:task_state', 'OS-EXT-STS:power_state', 'OS-EXT-AZ:availability_zone', 'OS-EXT-SRV-ATTR:host', ] else: if parsed_args.no_name_lookup: columns = ( 'ID', 'Name', 'Status', 'Networks', 'Image ID', 'Flavor ID', ) else: columns = ( 'ID', 'Name', 'Status', 'Networks', 'Image Name', 'Flavor Name', ) column_headers = ( 'ID', 'Name', 'Status', 'Networks', 'Image', 'Flavor', ) mixed_case_fields = [] marker_id = None if parsed_args.marker: marker_id = utils.find_resource(compute_client.servers, parsed_args.marker).id data = compute_client.servers.list(search_opts=search_opts, marker=marker_id, limit=parsed_args.limit) images = {} # Create a dict that maps image_id to image object. # Needed so that we can display the "Image Name" column. # "Image Name" is not crucial, so we swallow any exceptions. if not parsed_args.no_name_lookup: try: images_list = self.app.client_manager.image.images.list() for i in images_list: images[i.id] = i except Exception: pass flavors = {} # Create a dict that maps flavor_id to flavor object. # Needed so that we can display the "Flavor Name" column. # "Flavor Name" is not crucial, so we swallow any exceptions. if not parsed_args.no_name_lookup: try: flavors_list = compute_client.flavors.list() for i in flavors_list: flavors[i.id] = i except Exception: pass # Populate image_name, image_id, flavor_name and flavor_id attributes # of server objects so that we can display those columns. for s in data: if 'id' in s.image: image = images.get(s.image['id']) if image: s.image_name = image.name s.image_id = s.image['id'] else: s.image_name = '' s.image_id = '' if 'id' in s.flavor: flavor = flavors.get(s.flavor['id']) if flavor: s.flavor_name = flavor.name s.flavor_id = s.flavor['id'] else: s.flavor_name = '' s.flavor_id = '' table = (column_headers, (utils.get_item_properties( s, columns, mixed_case_fields=mixed_case_fields, formatters={ 'OS-EXT-STS:power_state': _format_servers_list_power_state, 'Networks': _format_servers_list_networks, 'Metadata': utils.format_dict, }, ) for s in data)) return table class LockServer(command.Command): _description = _("Lock server(s). A non-admin user will not be able to " "execute actions") def get_parser(self, prog_name): parser = super(LockServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to lock (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server, ).lock() # FIXME(dtroyer): Here is what I want, how with argparse/cliff? # server migrate [--wait] \ # [--live # [--shared-migration | --block-migration] # [--disk-overcommit | --no-disk-overcommit]] # # # live_parser = parser.add_argument_group(title='Live migration options') # then adding the groups doesn't seem to work class MigrateServer(command.Command): _description = _("Migrate server to different host") def get_parser(self, prog_name): parser = super(MigrateServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--live', metavar='', help=_('Target hostname'), ) migration_group = parser.add_mutually_exclusive_group() migration_group.add_argument( '--shared-migration', dest='block_migration', action='store_false', default=False, help=_('Perform a shared live migration (default)'), ) migration_group.add_argument( '--block-migration', dest='block_migration', action='store_true', help=_('Perform a block live migration'), ) disk_group = parser.add_mutually_exclusive_group() disk_group.add_argument( '--disk-overcommit', action='store_true', default=False, help=_('Allow disk over-commit on the destination host'), ) disk_group.add_argument( '--no-disk-overcommit', dest='disk_overcommit', action='store_false', default=False, help=_('Do not over-commit disk on the' ' destination host (default)'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for migrate to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) if parsed_args.live: server.live_migrate( host=parsed_args.live, block_migration=parsed_args.block_migration, disk_over_commit=parsed_args.disk_overcommit, ) else: if parsed_args.block_migration or parsed_args.disk_overcommit: raise exceptions.CommandError("--live must be specified if " "--block-migration or " "--disk-overcommit is specified") server.migrate() if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, server.id, callback=_show_progress, ): sys.stdout.write(_('Complete\n')) else: LOG.error(_('Error migrating server: %s'), server.id) sys.stdout.write(_('Error migrating server\n')) raise SystemExit class PauseServer(command.Command): _description = _("Pause server(s)") def get_parser(self, prog_name): parser = super(PauseServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to pause (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server ).pause() class RebootServer(command.Command): _description = _("Perform a hard or soft server reboot") def get_parser(self, prog_name): parser = super(RebootServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) group = parser.add_mutually_exclusive_group() group.add_argument( '--hard', dest='reboot_type', action='store_const', const=servers.REBOOT_HARD, default=servers.REBOOT_SOFT, help=_('Perform a hard reboot'), ) group.add_argument( '--soft', dest='reboot_type', action='store_const', const=servers.REBOOT_SOFT, default=servers.REBOOT_SOFT, help=_('Perform a soft reboot'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for reboot to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) server.reboot(parsed_args.reboot_type) if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, server.id, callback=_show_progress, ): sys.stdout.write(_('Complete\n')) else: LOG.error(_('Error rebooting server: %s'), server.id) sys.stdout.write(_('Error rebooting server\n')) raise SystemExit class RebuildServer(command.ShowOne): _description = _("Rebuild server") def get_parser(self, prog_name): parser = super(RebuildServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--image', metavar='', help=_('Recreate server from the specified image (name or ID).' ' Defaults to the currently used one.'), ) parser.add_argument( '--password', metavar='', help=_("Set the password on the rebuilt instance"), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for rebuild to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute image_client = self.app.client_manager.image server = utils.find_resource( compute_client.servers, parsed_args.server) # If parsed_args.image is not set, default to the currently used one. image_id = parsed_args.image or server._info.get('image', {}).get('id') image = utils.find_resource(image_client.images, image_id) server = server.rebuild(image, parsed_args.password) if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, server.id, callback=_show_progress, ): sys.stdout.write(_('Complete\n')) else: LOG.error(_('Error rebuilding server: %s'), server.id) sys.stdout.write(_('Error rebuilding server\n')) raise SystemExit details = _prep_server_detail(compute_client, image_client, server) return zip(*sorted(six.iteritems(details))) class RemoveFixedIP(command.Command): _description = _("Remove fixed IP address from server") def get_parser(self, prog_name): parser = super(RemoveFixedIP, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to remove the fixed IP address from (name or ID)"), ) parser.add_argument( "ip_address", metavar="", help=_("Fixed IP address to remove from the server (IP only)"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) server.remove_fixed_ip(parsed_args.ip_address) class RemoveFloatingIP(network_common.NetworkAndComputeCommand): _description = _("Remove floating IP address from server") def update_parser_common(self, parser): parser.add_argument( "server", metavar="", help=_( "Server to remove the floating IP address from (name or ID)" ), ) parser.add_argument( "ip_address", metavar="", help=_("Floating IP address to remove from server (IP only)"), ) return parser def take_action_network(self, client, parsed_args): attrs = {} obj = client.find_ip( parsed_args.ip_address, ignore_missing=False, ) attrs['port_id'] = None client.update_ip(obj, **attrs) def take_action_compute(self, client, parsed_args): client.api.floating_ip_remove( parsed_args.server, parsed_args.ip_address, ) class RemovePort(command.Command): _description = _("Remove port from server") def get_parser(self, prog_name): parser = super(RemovePort, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to remove the port from (name or ID)"), ) parser.add_argument( "port", metavar="", help=_("Port to remove from the server (name or ID)"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network port_id = network_client.find_port( parsed_args.port, ignore_missing=False).id else: port_id = parsed_args.port server.interface_detach(port_id) class RemoveNetwork(command.Command): _description = _("Remove all ports of a network from server") def get_parser(self, prog_name): parser = super(RemoveNetwork, self).get_parser(prog_name) parser.add_argument( "server", metavar="", help=_("Server to remove the port from (name or ID)"), ) parser.add_argument( "network", metavar="", help=_("Network to remove from the server (name or ID)"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server) if self.app.client_manager.is_network_endpoint_enabled(): network_client = self.app.client_manager.network net_id = network_client.find_network( parsed_args.network, ignore_missing=False).id else: net_id = parsed_args.network for inf in server.interface_list(): if inf.net_id == net_id: server.interface_detach(inf.port_id) class RemoveServerSecurityGroup(command.Command): _description = _("Remove security group from server") def get_parser(self, prog_name): parser = super(RemoveServerSecurityGroup, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Name or ID of server to use'), ) parser.add_argument( 'group', metavar='', help=_('Name or ID of security group to remove from server'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) security_group = compute_client.api.security_group_find( parsed_args.group, ) server.remove_security_group(security_group['id']) class RemoveServerVolume(command.Command): _description = _("Remove volume from server") def get_parser(self, prog_name): parser = super(RemoveServerVolume, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( 'volume', metavar='', help=_('Volume to remove (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute volume_client = self.app.client_manager.volume server = utils.find_resource( compute_client.servers, parsed_args.server, ) volume = utils.find_resource( volume_client.volumes, parsed_args.volume, ) compute_client.volumes.delete_server_volume( server.id, volume.id, ) class RescueServer(command.Command): _description = _("Put server in rescue mode") def get_parser(self, prog_name): parser = super(RescueServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--image', metavar='', help=_('Image (name or ID) to use for the rescue mode.' ' Defaults to the currently used one.'), ) parser.add_argument( '--password', metavar='', help=_("Set the password on the rescued instance"), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute image_client = self.app.client_manager.image image = None if parsed_args.image: image = utils.find_resource( image_client.images, parsed_args.image, ) utils.find_resource( compute_client.servers, parsed_args.server, ).rescue(image=image, password=parsed_args.password) class ResizeServer(command.Command): _description = _("""Scale server to a new flavor. A resize operation is implemented by creating a new server and copying the contents of the original disk into a new one. It is also a two-step process for the user: the first is to perform the resize, the second is to either confirm (verify) success and release the old server, or to declare a revert to release the new server and restart the old one.""") def get_parser(self, prog_name): parser = super(ResizeServer, self).get_parser(prog_name) phase_group = parser.add_mutually_exclusive_group() parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) phase_group.add_argument( '--flavor', metavar='', help=_('Resize server to specified flavor'), ) phase_group.add_argument( '--confirm', action="store_true", help=_('Confirm server resize is complete'), ) phase_group.add_argument( '--revert', action="store_true", help=_('Restore server state before resize'), ) parser.add_argument( '--wait', action='store_true', help=_('Wait for resize to complete'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) if parsed_args.flavor: flavor = utils.find_resource( compute_client.flavors, parsed_args.flavor, ) compute_client.servers.resize(server, flavor) if parsed_args.wait: if utils.wait_for_status( compute_client.servers.get, server.id, success_status=['active', 'verify_resize'], callback=_show_progress, ): sys.stdout.write(_('Complete\n')) else: LOG.error(_('Error resizing server: %s'), server.id) sys.stdout.write(_('Error resizing server\n')) raise SystemExit elif parsed_args.confirm: compute_client.servers.confirm_resize(server) elif parsed_args.revert: compute_client.servers.revert_resize(server) class RestoreServer(command.Command): _description = _("Restore server(s)") def get_parser(self, prog_name): parser = super(RestoreServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to restore (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server ).restore() class ResumeServer(command.Command): _description = _("Resume server(s)") def get_parser(self, prog_name): parser = super(ResumeServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to resume (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server, ).resume() class SetServer(command.Command): _description = _("Set server properties") def get_parser(self, prog_name): parser = super(SetServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--name', metavar='', help=_('New server name'), ) parser.add_argument( '--root-password', action="store_true", help=_('Set new root password (interactive only)'), ) parser.add_argument( "--property", metavar="", action=parseractions.KeyValueAction, help=_('Property to add/change for this server ' '(repeat option to set multiple properties)'), ) parser.add_argument( '--state', metavar='', choices=['active', 'error'], help=_('New server state (valid value: active, error)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource( compute_client.servers, parsed_args.server, ) if parsed_args.name: server.update(name=parsed_args.name) if parsed_args.property: compute_client.servers.set_meta( server, parsed_args.property, ) if parsed_args.state: server.reset_state(state=parsed_args.state) if parsed_args.root_password: p1 = getpass.getpass(_('New password: ')) p2 = getpass.getpass(_('Retype new password: ')) if p1 == p2: server.change_password(p1) else: msg = _("Passwords do not match, password unchanged") raise exceptions.CommandError(msg) class ShelveServer(command.Command): _description = _("Shelve server(s)") def get_parser(self, prog_name): parser = super(ShelveServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', nargs='+', help=_('Server(s) to shelve (name or ID)'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute for server in parsed_args.server: utils.find_resource( compute_client.servers, server, ).shelve() class ShowServer(command.ShowOne): _description = _("Show server details") def get_parser(self, prog_name): parser = super(ShowServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--diagnostics', action='store_true', default=False, help=_('Display server diagnostics information'), ) return parser def take_action(self, parsed_args): compute_client = self.app.client_manager.compute server = utils.find_resource(compute_client.servers, parsed_args.server) if parsed_args.diagnostics: (resp, data) = server.diagnostics() if not resp.status_code == 200: sys.stderr.write(_("Error retrieving diagnostics data\n")) return ({}, {}) else: data = _prep_server_detail(compute_client, self.app.client_manager.image, server) return zip(*sorted(six.iteritems(data))) class SshServer(command.Command): _description = _("SSH to server") def get_parser(self, prog_name): parser = super(SshServer, self).get_parser(prog_name) parser.add_argument( 'server', metavar='', help=_('Server (name or ID)'), ) parser.add_argument( '--login', metavar='', help=_('Login name (ssh -l option)'), ) parser.add_argument( '-l', dest='login', metavar='', help=argparse.SUPPRESS, ) parser.add_argument( '--port', metavar='', type=int, help=_('Destination port (ssh -p option)'), ) parser.add_argument( '-p', metavar='', dest='port', type=int, help=argparse.SUPPRESS, ) parser.add_argument( '--identity', metavar='', help=_('Private key file (ssh -i option)'), ) parser.add_argument( '-i', metavar='', dest='identity', help=argparse.SUPPRESS, ) parser.add_argument( '--option', metavar='', help=_('Options in ssh_config(5) format (ssh -o option)'), ) parser.add_argument( '-o', metavar='