diff options
| -rw-r--r-- | .zuul.yaml | 9 | ||||
| -rw-r--r-- | AUTHORS | 2 | ||||
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | PKG-INFO | 2 | ||||
| -rw-r--r-- | RELEASENOTES.rst | 174 | ||||
| -rw-r--r-- | debian/changelog | 6 | ||||
| -rw-r--r-- | doc/source/cli/command-objects/volume.rst | 8 | ||||
| -rw-r--r-- | openstackclient/tests/functional/image/base.py | 24 | ||||
| -rw-r--r-- | openstackclient/tests/functional/image/v1/test_image.py | 55 | ||||
| -rw-r--r-- | openstackclient/tests/functional/image/v2/test_image.py | 107 | ||||
| -rw-r--r-- | openstackclient/tests/functional/volume/v1/test_transfer_request.py | 37 | ||||
| -rw-r--r-- | openstackclient/tests/functional/volume/v2/test_transfer_request.py | 42 | ||||
| -rw-r--r-- | openstackclient/tests/functional/volume/v3/test_transfer_request.py | 2 | ||||
| -rw-r--r-- | openstackclient/tests/unit/volume/v2/test_volume.py | 47 | ||||
| -rw-r--r-- | openstackclient/volume/v2/volume.py | 14 | ||||
| -rw-r--r-- | python_openstackclient.egg-info/PKG-INFO | 2 | ||||
| -rw-r--r-- | python_openstackclient.egg-info/SOURCES.txt | 1 | ||||
| -rw-r--r-- | python_openstackclient.egg-info/pbr.json | 2 | ||||
| -rw-r--r-- | releasenotes/notes/reno.cache | 202 | ||||
| -rw-r--r-- | tox.ini | 8 |
20 files changed, 195 insertions, 557 deletions
@@ -192,6 +192,12 @@ templates: - openstackclient-plugin-jobs - osc-tox-unit-tips + - openstack-python-jobs + - openstack-python35-jobs + - publish-openstack-sphinx-docs + - check-requirements + - release-notes-jobs + - lib-forward-testing check: jobs: - osc-functional-devstack @@ -210,3 +216,6 @@ jobs: - osc-functional-devstack - openstack-tox-lower-constraints + post: + jobs: + - openstack-tox-cover @@ -84,6 +84,7 @@ Einst Crazy <yu.changcai@99cloud.net> Elena Ezhova <eezhova@mirantis.com> Emilien Macchi <emilien@redhat.com> Eric Brown <browne@vmware.com> +Fan Zhang <zh.f@outlook.com> Fang Zhen <zhen.fang@easystack.cn> Fei Long Wang <flwang@catalyst.net.nz> Flavio Percoco <flaper87@gmail.com> @@ -343,6 +344,7 @@ nidhimittalhada <nidhimittal19@gmail.com> npraveen35 <npraveen35@gmail.com> phil-hopkins-a <phil.hopkins@rackspace.com> qinchunhua <qin.chunhua@zte.com.cn> +qingszhao <zhao.daqing@99cloud.net> qtang <qtang@vmware.com> rabi <ramishra@redhat.com> reedip <reedip.banerjee@nectechnologies.in> @@ -1,6 +1,14 @@ CHANGES ======= +3.16.1 +------ + +* Fix broken gate jobs +* import zuul job settings from project-config +* Update UPPER\_CONSTRAINTS\_FILE for stable/rocky +* Update .gitreview for stable/rocky + 3.16.0 ------ @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: python-openstackclient -Version: 3.16.0 +Version: 3.16.1 Summary: OpenStack Command-line Client Home-page: https://docs.openstack.org/python-openstackclient/latest/ Author: OpenStack diff --git a/RELEASENOTES.rst b/RELEASENOTES.rst index 90e2cdc..4db55b5 100644 --- a/RELEASENOTES.rst +++ b/RELEASENOTES.rst @@ -1,177 +1,3 @@ ====================== python-openstackclient ====================== - -.. _python-openstackclient_3.16.0: - -3.16.0 -====== - -.. _python-openstackclient_3.16.0_New Features: - -New Features ------------- - -.. releasenotes/notes/add-image-member-list-1630ead5988348c2.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``image member list`` command to list all members of an image. - -.. releasenotes/notes/add-image-tag-filter-support-5cb039416b07caab.yaml @ 9edbab8c90bb74ba12892d0c77c8e8a99d4868fe - -- Add ``--tag`` option to ``image list`` command to filter by tag. - -.. releasenotes/notes/add-server-create-image-property-ef76af26233b472b.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``--image-property`` option to ``server create`` command. - This parameter will filter a image which properties that are matching. - -.. releasenotes/notes/allow-port-list-with-ip-address-substr-14c5805b241e402f.yaml @ 4a9cb8eea8e47950cb30ecaa7572a23d80d5bfcd - -- Add an ``ip-substring`` key to the ``--fixed-ip`` option of the - ``port list`` command. This allows filtering ports by a substring - match of an IP address. - [Bug `1718605 <https://bugs.launchpad.net/bugs/1718605>`_] - -.. releasenotes/notes/bp-unified-limits-58f166401534a4ff.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``registered limit`` commands for managing registered limits in Keystone. - Registered limits define limits of resources for projects to assume by default. - [`bp unified-limits <https://blueprints.launchpad.net/keystone/+spec/unified-limit>`_] - -.. releasenotes/notes/bp-unified-limits-6c5fdb1c26805d86.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``limit`` commands for managing project-specific limits in keystone. - Limits define limits of resources for projects to consume once a limit - has been registered. - [`bp unified-limits <https://blueprints.launchpad.net/keystone/+spec/unified-limit>`_] - -.. releasenotes/notes/bug-1750983-420945d6c0afb509.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``--tag`` and ``--no-tag`` options to ``security group create`` and - ``security group set`` commands. - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - -.. releasenotes/notes/bug-1750983-420945d6c0afb509.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``--tags``, ``--any-tags``, ``--not-tags`` and ``--not-any-tags`` options - to ``security group list`` command. - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - -.. releasenotes/notes/bug-1750983-420945d6c0afb509.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add ``--tag`` and ``--all-tag`` options to ``security group unset`` command. - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - -.. releasenotes/notes/flavor-add-description-b618abd4a7fb6545.yaml @ 7e8c55fa1bbc5f44b9233602786c22d6019eef22 - -- Add ``--description`` option to ``flavor set`` command to update the description of the flavor. Only available starting with ``--os-compute-api-version 2.55``. - -.. releasenotes/notes/flavor-add-description-b618abd4a7fb6545.yaml @ 7e8c55fa1bbc5f44b9233602786c22d6019eef22 - -- Add ``--description`` option to ``flavor create`` command to set the description of the flavor. Only available starting with ``--os-compute-api-version 2.55``. - -.. releasenotes/notes/implement-system-scope-4c3c47996f98deac.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- Add support for system-scope to ``role`` commands. This includes the ability to - generate system-scoped tokens using ``system_scope: all`` in ``cloud.yaml`` - or ``OS_SYSTEM_SCOPE=all`` in an environment variable. Support is also - included for managing role assignments on the system using ``--system`` - when adding and removing roles. - [`bp system-scope <https://blueprints.launchpad.net/keystone/+spec/system-scope>`_] - -.. releasenotes/notes/subnet-set-segment-id-4440e433b170f9f3.yaml @ e8c731547d85b1241c7898d2fb77b8d635901dfd - -- Add ``--network-segment`` option to ``subnet set`` command. This enables the possiblity to set the ``segment_id`` of a subnet on update. - -.. releasenotes/notes/versions-show-12a2443624c83048.yaml @ 9ece632f96844fd78c2f717f2f6d35e61c3b9ef2 - -- A new command, ``openstack versions show`` was added, which will - provide a list of all versions of all services in the cloud. It - includes relevant metadata, such as min/max microversion, endpoint, - status and region. - - -.. _python-openstackclient_3.16.0_Bug Fixes: - -Bug Fixes ---------- - -.. releasenotes/notes/add-community-option-to-image-list-ac0651eb2e5d632f.yaml @ 860639a548a2c07193662cd361432cb5061c2a7f - -- Add ``--community`` option to ``image list`` command. [Bug `2001925 <https://storyboard.openstack.org/#!/story/2001925>`_] - -.. releasenotes/notes/bug-1742453-ae4be6de90a3ae1d.yaml @ c615bcd75e85a2a2231d9944caeffd746e881e5e - -- The ``server list --all`` command now resolves non-public flavor names, - too, so that the ``Flavor`` column will be properly populated. - [Bug `1742453 <https://bugs.launchpad.net/bugs/1742453>`_] - -.. releasenotes/notes/bug-1750985-a5345f715a14825c.yaml @ 09a0916daeeb9c257d84175a43062d5b4a1d0b1a - -- Add ``--tag`` support to ``floating ip create|list|set|unset`` commands. - [:lpbug:`1750985`] - -.. releasenotes/notes/bug-1751104-compute-api-2.47-4bfa21cfaa13f408.yaml @ 4236d777ffb6f03bb2682142aaa18b48e9a00d96 - -- The ``server show`` command will now properly show the server's - flavor information when using ``--os-compute-api-version 2.47`` or higher. - [Bug `1751104 <https://storyboard.openstack.org/#!/story/1751104>`_] - - -.. _python-openstackclient_3.16.0_Other Notes: - -Other Notes ------------ - -.. releasenotes/notes/remove-ip-floating-commands-d5363f313e09249a.yaml @ ea89065dabf92c2684e55c4b37c7be9b667cfa1e - -- Remove deprecated ``ip floating`` and ``ip floating pool`` commands. - - -.. _python-openstackclient_3.15.0: - -3.15.0 -====== - -.. _python-openstackclient_3.15.0_New Features: - -New Features ------------- - -.. releasenotes/notes/bp-application-credential-a7031a043efc4a25.yaml @ 375964f270e125b8887e0ca4ee1cbe15d5eddf04 - -- Adds support for creating, reading, and deleting application credentials - via the ``appication credential`` command. With application credentials, a - user can grant their applications limited access to their cloud resources. - Once created, users can authenticate with an application credential by - using the ``v3applicationcredential`` auth type. - [`blueprint application-credentials <https://blueprints.launchpad.net/keystone/+spec/application-credentials>`_] - -.. releasenotes/notes/bp-project-tags-b544aef9672d415b.yaml @ d32664150fbc00340f3ff4304c13abf9a191299a - -- Add ``--tag`` option to ``project create`` command, ``--tag``, ``--clear-tags``, and - ``--remove-tag`` options to ``project set`` command. Add ``--tags``, ``--tags-any``, - ``--not-tags``, and ``--not-tags-any`` options to ``project list`` command to filter - list results by different projects based on their tags. - [`blueprint project-tags <https://blueprints.launchpad.net/keystone/+spec/project-tags>`_] - -.. releasenotes/notes/bug-1714878-46806jv2yv13q054.yaml @ 4a9e84be994575146b30bd40a341d5686174eaad - -- Add ``--dns-domain`` option to ``port create`` and ``port set`` commands. - Requires the ``dns_domain for ports`` extension to be enabled. See the - `Neutron DNS integration <https://docs.openstack.org/neutron/latest/admin/config-dns-int.html>`_ - documentation for information how to use this. - [Bug `1714878 <https://bugs.launchpad.net/python-openstackclient/+bug/1714878>`_] - -.. releasenotes/notes/keystone-endpoint-group-0c55debbb66844f2.yaml @ 1eae301c4fab30c551ed7542cdaf8735cbbc3822 - -- Add endpoint group commands: ``endpoint group add project``, ``endpoint group create``, - ``endpoint group delete``, ``endpoint group list``, ``endpoint group remove project``, - ``endpoint group set`` and ``endpoint group show``. - [Blueprint `keystone-endpoint-filter <https://blueprints.launchpad.net/python-openstackclient/+spec/keystone-endpoint-filter>`_] - -.. releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml @ 18563b4132f794cc6612c2897795f96a31b565ae - -- Add ``--mtu`` option to ``network create`` and ``network set`` - commands, allowing CLI users to set the MTU for Neutron networks. - diff --git a/debian/changelog b/debian/changelog index 4c074b8..24bd4cc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +python-openstackclient (3.16.1-0ubuntu1) cosmic; urgency=medium + + * New stable point release for OpenStack Rocky. + + -- Corey Bryant <corey.bryant@canonical.com> Thu, 04 Oct 2018 12:33:47 -0400 + python-openstackclient (3.16.0-0ubuntu1) cosmic; urgency=medium * New upstream release for OpenStack Rocky. diff --git a/doc/source/cli/command-objects/volume.rst b/doc/source/cli/command-objects/volume.rst index a06a5d4..8df48d4 100644 --- a/doc/source/cli/command-objects/volume.rst +++ b/doc/source/cli/command-objects/volume.rst @@ -15,7 +15,7 @@ Create new volume openstack volume create [--size <size>] [--type <volume-type>] - [--image <image> | --snapshot <snapshot> | --source <volume> | --source-replicated <replicated-volume>] + [--image <image> | --snapshot <snapshot> | --source <volume> ] [--description <description>] [--user <user>] [--project <project>] @@ -31,7 +31,7 @@ Create new volume .. option:: --size <size> Volume size in GB - (Required unless --snapshot or --source or --source-replicated is specified) + (Required unless --snapshot or --source is specified) .. option:: --type <volume-type> @@ -54,10 +54,6 @@ Create new volume Volume to clone (name or ID) -.. option:: --source-replicated <replicated-volume> - - Replicated volume to clone (name or ID) - .. option:: --description <description> Volume description diff --git a/openstackclient/tests/functional/image/base.py b/openstackclient/tests/functional/image/base.py new file mode 100644 index 0000000..4b2ab64 --- /dev/null +++ b/openstackclient/tests/functional/image/base.py @@ -0,0 +1,24 @@ +# 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. + +from openstackclient.tests.functional import base + + +class BaseImageTests(base.TestCase): + """Functional tests for Image commands""" + + @classmethod + def setUpClass(cls): + super(BaseImageTests, cls).setUpClass() + # TODO(dtroyer): maybe do image API discovery here to determine + # what is available, it isn't in the service catalog + cls.haz_v1_api = False diff --git a/openstackclient/tests/functional/image/v1/test_image.py b/openstackclient/tests/functional/image/v1/test_image.py index fa073f9..30490bf 100644 --- a/openstackclient/tests/functional/image/v1/test_image.py +++ b/openstackclient/tests/functional/image/v1/test_image.py @@ -15,50 +15,47 @@ import uuid import fixtures -from openstackclient.tests.functional import base +from openstackclient.tests.functional.image import base -class ImageTests(base.TestCase): - """Functional tests for image. """ +class ImageTests(base.BaseImageTests): + """Functional tests for Image commands""" - NAME = uuid.uuid4().hex - OTHER_NAME = uuid.uuid4().hex + def setUp(self): + super(ImageTests, self).setUp() + if not self.haz_v1_api: + self.skipTest('No Image v1 API present') - @classmethod - def setUpClass(cls): - super(ImageTests, cls).setUpClass() - json_output = json.loads(cls.openstack( + self.name = uuid.uuid4().hex + json_output = json.loads(self.openstack( '--os-image-api-version 1 ' 'image create -f json ' + - cls.NAME + self.name )) - cls.image_id = json_output["id"] - cls.assertOutput(cls.NAME, json_output['name']) + self.image_id = json_output["id"] + self.assertOutput(self.name, json_output['name']) + + ver_fixture = fixtures.EnvironmentVariable( + 'OS_IMAGE_API_VERSION', '1' + ) + self.useFixture(ver_fixture) - @classmethod - def tearDownClass(cls): + def tearDown(self): try: - cls.openstack( + self.openstack( '--os-image-api-version 1 ' 'image delete ' + - cls.image_id + self.image_id ) finally: - super(ImageTests, cls).tearDownClass() - - def setUp(self): - super(ImageTests, self).setUp() - ver_fixture = fixtures.EnvironmentVariable( - 'OS_IMAGE_API_VERSION', '1' - ) - self.useFixture(ver_fixture) + super(ImageTests, self).tearDown() def test_image_list(self): json_output = json.loads(self.openstack( 'image list -f json ' )) self.assertIn( - self.NAME, + self.name, [img['Name'] for img in json_output] ) @@ -72,11 +69,11 @@ class ImageTests(base.TestCase): '--min-ram 5 ' + '--disk-format qcow2 ' + '--public ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) self.assertEqual( 4, @@ -100,11 +97,11 @@ class ImageTests(base.TestCase): '--property a=b ' + '--property c=d ' + '--public ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) self.assertEqual( "a='b', c='d'", diff --git a/openstackclient/tests/functional/image/v2/test_image.py b/openstackclient/tests/functional/image/v2/test_image.py index 3037b90..3185c3b 100644 --- a/openstackclient/tests/functional/image/v2/test_image.py +++ b/openstackclient/tests/functional/image/v2/test_image.py @@ -16,60 +16,55 @@ import uuid import fixtures # from glanceclient import exc as image_exceptions -from openstackclient.tests.functional import base +from openstackclient.tests.functional.image import base -class ImageTests(base.TestCase): - """Functional tests for image. """ +class ImageTests(base.BaseImageTests): + """Functional tests for Image commands""" - NAME = uuid.uuid4().hex - OTHER_NAME = uuid.uuid4().hex + def setUp(self): + super(ImageTests, self).setUp() - @classmethod - def setUpClass(cls): - super(ImageTests, cls).setUpClass() - cls.image_tag = 'my_tag' - json_output = json.loads(cls.openstack( + self.name = uuid.uuid4().hex + self.image_tag = 'my_tag' + json_output = json.loads(self.openstack( '--os-image-api-version 2 ' 'image create -f json --tag {tag} {name}'.format( - tag=cls.image_tag, name=cls.NAME) + tag=self.image_tag, name=self.name) )) - cls.image_id = json_output["id"] - cls.assertOutput(cls.NAME, json_output['name']) + self.image_id = json_output["id"] + self.assertOutput(self.name, json_output['name']) + + ver_fixture = fixtures.EnvironmentVariable( + 'OS_IMAGE_API_VERSION', '2' + ) + self.useFixture(ver_fixture) - @classmethod - def tearDownClass(cls): + def tearDown(self): try: - cls.openstack( + self.openstack( '--os-image-api-version 2 ' 'image delete ' + - cls.image_id + self.image_id ) finally: - super(ImageTests, cls).tearDownClass() - - def setUp(self): - super(ImageTests, self).setUp() - ver_fixture = fixtures.EnvironmentVariable( - 'OS_IMAGE_API_VERSION', '2' - ) - self.useFixture(ver_fixture) + super(ImageTests, self).tearDown() def test_image_list(self): json_output = json.loads(self.openstack( 'image list -f json ' )) self.assertIn( - self.NAME, + self.name, [img['Name'] for img in json_output] ) def test_image_list_with_name_filter(self): json_output = json.loads(self.openstack( - 'image list --name ' + self.NAME + ' -f json' + 'image list --name ' + self.name + ' -f json' )) self.assertIn( - self.NAME, + self.name, [img['Name'] for img in json_output] ) @@ -101,11 +96,11 @@ class ImageTests(base.TestCase): '--min-disk 4 ' + '--min-ram 5 ' + '--public ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) self.assertEqual( 4, @@ -126,31 +121,31 @@ class ImageTests(base.TestCase): '--property a=b ' + '--property c=d ' + '--public ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) - self.assertEqual( - "a='b', c='d'", - json_output["properties"], - ) + # NOTE(dtroyer): Don't do a full-string compare so we are tolerant of + # new artributes in the returned data + self.assertIn("a='b'", json_output["properties"]) + self.assertIn("c='d'", json_output["properties"]) self.openstack( 'image unset ' + '--property a ' + '--property c ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) - self.assertNotIn( - 'properties', - json_output, - ) + # NOTE(dtroyer): Don't do a full-string compare so we are tolerant of + # new artributes in the returned data + self.assertNotIn("a='b'", json_output["properties"]) + self.assertNotIn("c='d'", json_output["properties"]) # Test tags self.assertNotIn( @@ -160,11 +155,11 @@ class ImageTests(base.TestCase): self.openstack( 'image set ' + '--tag 01 ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) self.assertIn( '01', @@ -174,11 +169,11 @@ class ImageTests(base.TestCase): self.openstack( 'image unset ' + '--tag 01 ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) self.assertNotIn( '01', @@ -222,7 +217,7 @@ class ImageTests(base.TestCase): json_output = json.loads(self.openstack( 'image show -f json ' + - self.NAME + self.name )) # NOTE(dtroyer): Until OSC supports --shared flags in create and set # we can not properly test membership. Sometimes the @@ -230,47 +225,47 @@ class ImageTests(base.TestCase): if json_output["visibility"] == 'shared': self.openstack( 'image add project ' + - self.NAME + ' ' + + self.name + ' ' + my_project_id ) # self.addCleanup( # self.openstack, # 'image remove project ' + - # self.NAME + ' ' + + # self.name + ' ' + # my_project_id # ) self.openstack( 'image set ' + '--accept ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image list -f json ' + '--shared' )) self.assertIn( - self.NAME, + self.name, [img['Name'] for img in json_output] ) self.openstack( 'image set ' + '--reject ' + - self.NAME + self.name ) json_output = json.loads(self.openstack( 'image list -f json ' + '--shared' )) # self.assertNotIn( - # self.NAME, + # self.name, # [img['Name'] for img in json_output] # ) self.openstack( 'image remove project ' + - self.NAME + ' ' + + self.name + ' ' + my_project_id ) @@ -280,11 +275,11 @@ class ImageTests(base.TestCase): # image_exceptions.HTTPForbidden, # self.openstack, # 'image add project ' + - # self.NAME + ' ' + + # self.name + ' ' + # my_project_id # ) # self.openstack( # 'image set ' + # '--share ' + - # self.NAME + # self.name # ) diff --git a/openstackclient/tests/functional/volume/v1/test_transfer_request.py b/openstackclient/tests/functional/volume/v1/test_transfer_request.py index 73191fc..0399e6c 100644 --- a/openstackclient/tests/functional/volume/v1/test_transfer_request.py +++ b/openstackclient/tests/functional/volume/v1/test_transfer_request.py @@ -29,20 +29,13 @@ class TransferRequestTests(common.BaseVolumeTests): 'volume create -f json --size 1 ' + cls.VOLUME_NAME)) cls.assertOutput(cls.VOLUME_NAME, cmd_output['name']) - cmd_output = json.loads(cls.openstack( - 'volume transfer request create -f json ' + - cls.VOLUME_NAME + - ' --name ' + cls.NAME)) - cls.assertOutput(cls.NAME, cmd_output['name']) + cls.wait_for_status("volume", cls.VOLUME_NAME, "available") @classmethod def tearDownClass(cls): try: - raw_output_transfer = cls.openstack( - 'volume transfer request delete ' + cls.NAME) raw_output_volume = cls.openstack( 'volume delete ' + cls.VOLUME_NAME) - cls.assertOutput('', raw_output_transfer) cls.assertOutput('', raw_output_volume) finally: super(TransferRequestTests, cls).tearDownClass() @@ -79,12 +72,28 @@ class TransferRequestTests(common.BaseVolumeTests): 'volume delete ' + volume_name) self.assertEqual('', raw_output) - def test_volume_transfer_request_list(self): + def test_volume_transfer_request_list_show(self): + name = uuid.uuid4().hex cmd_output = json.loads(self.openstack( - 'volume transfer request list -f json')) - self.assertIn(self.NAME, [req['Name'] for req in cmd_output]) + 'volume transfer request create -f json ' + + ' --name ' + name + ' ' + + self.VOLUME_NAME + )) + self.addCleanup( + self.openstack, + 'volume transfer request delete ' + name + ) + self.assertOutput(name, cmd_output['name']) + auth_key = cmd_output['auth_key'] + self.assertTrue(auth_key) - def test_volume_transfer_request_show(self): cmd_output = json.loads(self.openstack( - 'volume transfer request show -f json ' + self.NAME)) - self.assertEqual(self.NAME, cmd_output['name']) + 'volume transfer request list -f json' + )) + self.assertIn(name, [req['Name'] for req in cmd_output]) + + cmd_output = json.loads(self.openstack( + 'volume transfer request show -f json ' + + name + )) + self.assertEqual(name, cmd_output['name']) diff --git a/openstackclient/tests/functional/volume/v2/test_transfer_request.py b/openstackclient/tests/functional/volume/v2/test_transfer_request.py index 33495af..33d8ce7 100644 --- a/openstackclient/tests/functional/volume/v2/test_transfer_request.py +++ b/openstackclient/tests/functional/volume/v2/test_transfer_request.py @@ -21,29 +21,24 @@ class TransferRequestTests(common.BaseVolumeTests): NAME = uuid.uuid4().hex VOLUME_NAME = uuid.uuid4().hex + API_VERSION = '2' @classmethod def setUpClass(cls): super(TransferRequestTests, cls).setUpClass() cmd_output = json.loads(cls.openstack( + '--os-volume-api-version ' + cls.API_VERSION + ' ' + 'volume create -f json --size 1 ' + cls.VOLUME_NAME)) cls.assertOutput(cls.VOLUME_NAME, cmd_output['name']) - cmd_output = json.loads(cls.openstack( - 'volume transfer request create -f json ' + - cls.VOLUME_NAME + - ' --name ' + cls.NAME)) - cls.assertOutput(cls.NAME, cmd_output['name']) + cls.wait_for_status("volume", cls.VOLUME_NAME, "available") @classmethod def tearDownClass(cls): try: - raw_output_transfer = cls.openstack( - 'volume transfer request delete ' + cls.NAME) raw_output_volume = cls.openstack( 'volume delete ' + cls.VOLUME_NAME) - cls.assertOutput('', raw_output_transfer) cls.assertOutput('', raw_output_volume) finally: super(TransferRequestTests, cls).tearDownClass() @@ -80,12 +75,31 @@ class TransferRequestTests(common.BaseVolumeTests): 'volume delete ' + volume_name) self.assertEqual('', raw_output) - def test_volume_transfer_request_list(self): + def test_volume_transfer_request_list_show(self): + name = uuid.uuid4().hex cmd_output = json.loads(self.openstack( - 'volume transfer request list -f json')) - self.assertIn(self.NAME, [req['Name'] for req in cmd_output]) + '--os-volume-api-version ' + self.API_VERSION + ' ' + + 'volume transfer request create -f json ' + + ' --name ' + name + ' ' + + self.VOLUME_NAME + )) + self.addCleanup( + self.openstack, + 'volume transfer request delete ' + name + ) + self.assertEqual(name, cmd_output['name']) + auth_key = cmd_output['auth_key'] + self.assertTrue(auth_key) + + cmd_output = json.loads(self.openstack( + '--os-volume-api-version ' + self.API_VERSION + ' ' + + 'volume transfer request list -f json' + )) + self.assertIn(name, [req['Name'] for req in cmd_output]) - def test_volume_transfer_request_show(self): cmd_output = json.loads(self.openstack( - 'volume transfer request show -f json ' + self.NAME)) - self.assertEqual(self.NAME, cmd_output['name']) + '--os-volume-api-version ' + self.API_VERSION + ' ' + + 'volume transfer request show -f json ' + + name + )) + self.assertEqual(name, cmd_output['name']) diff --git a/openstackclient/tests/functional/volume/v3/test_transfer_request.py b/openstackclient/tests/functional/volume/v3/test_transfer_request.py index b325323..f16dfaf 100644 --- a/openstackclient/tests/functional/volume/v3/test_transfer_request.py +++ b/openstackclient/tests/functional/volume/v3/test_transfer_request.py @@ -17,3 +17,5 @@ from openstackclient.tests.functional.volume.v3 import common class TransferRequestTests(common.BaseVolumeTests, v2.TransferRequestTests): """Functional tests for transfer request. """ + + API_VERSION = '3' diff --git a/openstackclient/tests/unit/volume/v2/test_volume.py b/openstackclient/tests/unit/volume/v2/test_volume.py index 304aa91..971567c 100644 --- a/openstackclient/tests/unit/volume/v2/test_volume.py +++ b/openstackclient/tests/unit/volume/v2/test_volume.py @@ -133,7 +133,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -185,7 +184,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=consistency_group.id, - source_replica=None, multiattach=True, scheduler_hints={'k': 'v'}, ) @@ -231,7 +229,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -277,7 +274,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -317,7 +313,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -359,7 +354,6 @@ class TestVolumeCreate(TestVolume): imageRef=image.id, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -401,7 +395,6 @@ class TestVolumeCreate(TestVolume): imageRef=image.id, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -442,7 +435,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -484,7 +476,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -530,7 +521,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -585,7 +575,6 @@ class TestVolumeCreate(TestVolume): imageRef=None, source_volid=None, consistencygroup_id=None, - source_replica=None, multiattach=False, scheduler_hints=None, ) @@ -598,40 +587,6 @@ class TestVolumeCreate(TestVolume): self.volumes_mock.update_readonly_flag.assert_called_with( self.new_volume.id, True) - def test_volume_create_with_source_replicated(self): - self.volumes_mock.get.return_value = self.new_volume - arglist = [ - '--source-replicated', self.new_volume.id, - self.new_volume.name, - ] - verifylist = [ - ('source_replicated', self.new_volume.id), - ('name', self.new_volume.name), - ] - parsed_args = self.check_parser(self.cmd, arglist, verifylist) - - columns, data = self.cmd.take_action(parsed_args) - self.volumes_mock.create.assert_called_once_with( - size=None, - snapshot_id=None, - name=self.new_volume.name, - description=None, - volume_type=None, - user_id=None, - project_id=None, - availability_zone=None, - metadata=None, - imageRef=None, - source_volid=None, - consistencygroup_id=None, - source_replica=self.new_volume.id, - multiattach=False, - scheduler_hints=None, - ) - - self.assertEqual(self.columns, columns) - self.assertEqual(self.datalist, data) - def test_volume_create_without_size(self): arglist = [ self.new_volume.name, @@ -649,7 +604,6 @@ class TestVolumeCreate(TestVolume): '--image', 'source_image', '--source', 'source_volume', '--snapshot', 'source_snapshot', - '--source-replicated', 'source_replicated_volume', '--size', str(self.new_volume.size), self.new_volume.name, ] @@ -657,7 +611,6 @@ class TestVolumeCreate(TestVolume): ('image', 'source_image'), ('source', 'source_volume'), ('snapshot', 'source_snapshot'), - ('source-replicated', 'source_replicated_volume'), ('size', self.new_volume.size), ('name', self.new_volume.name), ] diff --git a/openstackclient/volume/v2/volume.py b/openstackclient/volume/v2/volume.py index ee3d2f2..fc648ce 100644 --- a/openstackclient/volume/v2/volume.py +++ b/openstackclient/volume/v2/volume.py @@ -14,6 +14,7 @@ """Volume V2 Volume action implementations""" +import argparse import copy import logging @@ -37,7 +38,7 @@ def _check_size_arg(args): volume is not specified. """ - if ((args.snapshot or args.source or args.source_replicated) + if ((args.snapshot or args.source) is None and args.size is None): msg = _("--size is a required option if snapshot " "or source volume is not specified.") @@ -59,7 +60,7 @@ class CreateVolume(command.ShowOne): metavar="<size>", type=int, help=_("Volume size in GB (Required unless --snapshot or " - "--source or --source-replicated is specified)"), + "--source is specified)"), ) parser.add_argument( "--type", @@ -85,7 +86,7 @@ class CreateVolume(command.ShowOne): source_group.add_argument( "--source-replicated", metavar="<replicated-volume>", - help=_("Replicated volume to clone (name or ID)"), + help=argparse.SUPPRESS, ) parser.add_argument( "--description", @@ -168,12 +169,6 @@ class CreateVolume(command.ShowOne): volume_client.volumes, parsed_args.source).id - replicated_source_volume = None - if parsed_args.source_replicated: - replicated_source_volume = utils.find_resource( - volume_client.volumes, - parsed_args.source_replicated).id - consistency_group = None if parsed_args.consistency_group: consistency_group = utils.find_resource( @@ -227,7 +222,6 @@ class CreateVolume(command.ShowOne): imageRef=image, source_volid=source_volume, consistencygroup_id=consistency_group, - source_replica=replicated_source_volume, multiattach=parsed_args.multi_attach, scheduler_hints=parsed_args.hint, ) diff --git a/python_openstackclient.egg-info/PKG-INFO b/python_openstackclient.egg-info/PKG-INFO index 33debe5..46d7198 100644 --- a/python_openstackclient.egg-info/PKG-INFO +++ b/python_openstackclient.egg-info/PKG-INFO @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: python-openstackclient -Version: 3.16.0 +Version: 3.16.1 Summary: OpenStack Command-line Client Home-page: https://docs.openstack.org/python-openstackclient/latest/ Author: OpenStack diff --git a/python_openstackclient.egg-info/SOURCES.txt b/python_openstackclient.egg-info/SOURCES.txt index 721dc6a..193b72f 100644 --- a/python_openstackclient.egg-info/SOURCES.txt +++ b/python_openstackclient.egg-info/SOURCES.txt @@ -326,6 +326,7 @@ openstackclient/tests/functional/identity/v3/test_service_provider.py openstackclient/tests/functional/identity/v3/test_token.py openstackclient/tests/functional/identity/v3/test_user.py openstackclient/tests/functional/image/__init__.py +openstackclient/tests/functional/image/base.py openstackclient/tests/functional/image/v1/__init__.py openstackclient/tests/functional/image/v1/test_image.py openstackclient/tests/functional/image/v2/__init__.py diff --git a/python_openstackclient.egg-info/pbr.json b/python_openstackclient.egg-info/pbr.json index e7a874f..992ceda 100644 --- a/python_openstackclient.egg-info/pbr.json +++ b/python_openstackclient.egg-info/pbr.json @@ -1 +1 @@ -{"git_version": "f77ca68", "is_release": true}
\ No newline at end of file +{"git_version": "3e5a2d2", "is_release": true}
\ No newline at end of file diff --git a/releasenotes/notes/reno.cache b/releasenotes/notes/reno.cache index 93a7646..4b0c358 100644 --- a/releasenotes/notes/reno.cache +++ b/releasenotes/notes/reno.cache @@ -1,201 +1,3 @@ --- -file-contents: - releasenotes/notes/add-community-option-to-image-list-ac0651eb2e5d632f.yaml: - fixes: ['Add ``--community`` option to ``image list`` command. [Bug `2001925 <https://storyboard.openstack.org/#!/story/2001925>`_]'] - releasenotes/notes/add-image-member-list-1630ead5988348c2.yaml: - features: [Add ``image member list`` command to list all members of an image.] - releasenotes/notes/add-image-tag-filter-support-5cb039416b07caab.yaml: - features: ['Add ``--tag`` option to ``image list`` command to filter by tag. - - '] - releasenotes/notes/add-server-create-image-property-ef76af26233b472b.yaml: - features: ['Add ``--image-property`` option to ``server create`` command. - - This parameter will filter a image which properties that are matching. - - '] - releasenotes/notes/allow-port-list-with-ip-address-substr-14c5805b241e402f.yaml: - features: ['Add an ``ip-substring`` key to the ``--fixed-ip`` option of the - - ``port list`` command. This allows filtering ports by a substring - - match of an IP address. - - [Bug `1718605 <https://bugs.launchpad.net/bugs/1718605>`_]'] - releasenotes/notes/bp-application-credential-a7031a043efc4a25.yaml: - features: ['Adds support for creating, reading, and deleting application credentials - - via the ``appication credential`` command. With application credentials, a - - user can grant their applications limited access to their cloud resources. - - Once created, users can authenticate with an application credential by - - using the ``v3applicationcredential`` auth type. - - [`blueprint application-credentials <https://blueprints.launchpad.net/keystone/+spec/application-credentials>`_] - - '] - releasenotes/notes/bp-project-tags-b544aef9672d415b.yaml: - features: ["Add ``--tag`` option to ``project create`` command, ``--tag``, ``--clear-tags``,\ - \ and\n``--remove-tag`` options to ``project set`` command. Add ``--tags``,\ - \ ``--tags-any``, \n``--not-tags``, and ``--not-tags-any`` options to ``project\ - \ list`` command to filter\nlist results by different projects based on their\ - \ tags.\n[`blueprint project-tags <https://blueprints.launchpad.net/keystone/+spec/project-tags>`_]\n"] - releasenotes/notes/bp-unified-limits-58f166401534a4ff.yaml: - features: ['Add ``registered limit`` commands for managing registered limits in - Keystone. - - Registered limits define limits of resources for projects to assume by default. - - [`bp unified-limits <https://blueprints.launchpad.net/keystone/+spec/unified-limit>`_] - - '] - releasenotes/notes/bp-unified-limits-6c5fdb1c26805d86.yaml: - features: ['Add ``limit`` commands for managing project-specific limits in keystone. - - Limits define limits of resources for projects to consume once a limit - - has been registered. - - [`bp unified-limits <https://blueprints.launchpad.net/keystone/+spec/unified-limit>`_] - - '] - releasenotes/notes/bug-1714878-46806jv2yv13q054.yaml: - features: ['Add ``--dns-domain`` option to ``port create`` and ``port set`` commands. - - Requires the ``dns_domain for ports`` extension to be enabled. See the - - `Neutron DNS integration <https://docs.openstack.org/neutron/latest/admin/config-dns-int.html>`_ - - documentation for information how to use this. - - [Bug `1714878 <https://bugs.launchpad.net/python-openstackclient/+bug/1714878>`_] - - '] - releasenotes/notes/bug-1742453-ae4be6de90a3ae1d.yaml: - fixes: ['The ``server list --all`` command now resolves non-public flavor names, - - too, so that the ``Flavor`` column will be properly populated. - - [Bug `1742453 <https://bugs.launchpad.net/bugs/1742453>`_] - - '] - releasenotes/notes/bug-1750983-420945d6c0afb509.yaml: - features: ['Add ``--tag`` and ``--no-tag`` options to ``security group create`` - and - - ``security group set`` commands. - - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - - ', 'Add ``--tags``, ``--any-tags``, ``--not-tags`` and ``--not-any-tags`` - options - - to ``security group list`` command. - - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - - ', 'Add ``--tag`` and ``--all-tag`` options to ``security group unset`` command. - - [Bug `1750983 <https://bugs.launchpad.net/python-openstackclient/+bug/1750983>`_] - - '] - releasenotes/notes/bug-1750985-a5345f715a14825c.yaml: - fixes: ['Add ``--tag`` support to ``floating ip create|list|set|unset`` commands. - - [:lpbug:`1750985`] - - '] - releasenotes/notes/bug-1751104-compute-api-2.47-4bfa21cfaa13f408.yaml: - fixes: ['The ``server show`` command will now properly show the server''s - - flavor information when using ``--os-compute-api-version 2.47`` or higher. - - [Bug `1751104 <https://storyboard.openstack.org/#!/story/1751104>`_] - - '] - releasenotes/notes/flavor-add-description-b618abd4a7fb6545.yaml: - features: [Add ``--description`` option to ``flavor set`` command to update the - description of the flavor. Only available starting with ``--os-compute-api-version - 2.55``., Add ``--description`` option to ``flavor create`` command to set - the description of the flavor. Only available starting with ``--os-compute-api-version - 2.55``.] - releasenotes/notes/implement-system-scope-4c3c47996f98deac.yaml: - features: ['Add support for system-scope to ``role`` commands. This includes the - ability to - - generate system-scoped tokens using ``system_scope: all`` in ``cloud.yaml`` - - or ``OS_SYSTEM_SCOPE=all`` in an environment variable. Support is also - - included for managing role assignments on the system using ``--system`` - - when adding and removing roles. - - [`bp system-scope <https://blueprints.launchpad.net/keystone/+spec/system-scope>`_] - - '] - releasenotes/notes/keystone-endpoint-group-0c55debbb66844f2.yaml: - features: ['Add endpoint group commands: ``endpoint group add project``, ``endpoint - group create``, - - ``endpoint group delete``, ``endpoint group list``, ``endpoint group remove - project``, - - ``endpoint group set`` and ``endpoint group show``. - - [Blueprint `keystone-endpoint-filter <https://blueprints.launchpad.net/python-openstackclient/+spec/keystone-endpoint-filter>`_] - - '] - releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml: - features: ['Add ``--mtu`` option to ``network create`` and ``network set`` - - commands, allowing CLI users to set the MTU for Neutron networks. - - '] - releasenotes/notes/remove-ip-floating-commands-d5363f313e09249a.yaml: - other: ['Remove deprecated ``ip floating`` and ``ip floating pool`` commands. - - '] - releasenotes/notes/subnet-set-segment-id-4440e433b170f9f3.yaml: - features: [Add ``--network-segment`` option to ``subnet set`` command. This enables - the possiblity to set the ``segment_id`` of a subnet on update.] - releasenotes/notes/versions-show-12a2443624c83048.yaml: - features: ['A new command, ``openstack versions show`` was added, which will - - provide a list of all versions of all services in the cloud. It - - includes relevant metadata, such as min/max microversion, endpoint, - - status and region. - - '] -notes: -- files: - - [releasenotes/notes/add-community-option-to-image-list-ac0651eb2e5d632f.yaml, - 860639a548a2c07193662cd361432cb5061c2a7f] - - [releasenotes/notes/add-image-member-list-1630ead5988348c2.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/add-image-tag-filter-support-5cb039416b07caab.yaml, 9edbab8c90bb74ba12892d0c77c8e8a99d4868fe] - - [releasenotes/notes/add-server-create-image-property-ef76af26233b472b.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/allow-port-list-with-ip-address-substr-14c5805b241e402f.yaml, - 4a9cb8eea8e47950cb30ecaa7572a23d80d5bfcd] - - [releasenotes/notes/bp-unified-limits-58f166401534a4ff.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/bp-unified-limits-6c5fdb1c26805d86.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/bug-1742453-ae4be6de90a3ae1d.yaml, c615bcd75e85a2a2231d9944caeffd746e881e5e] - - [releasenotes/notes/bug-1750983-420945d6c0afb509.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/bug-1750985-a5345f715a14825c.yaml, 09a0916daeeb9c257d84175a43062d5b4a1d0b1a] - - [releasenotes/notes/bug-1751104-compute-api-2.47-4bfa21cfaa13f408.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/flavor-add-description-b618abd4a7fb6545.yaml, 7e8c55fa1bbc5f44b9233602786c22d6019eef22] - - [releasenotes/notes/implement-system-scope-4c3c47996f98deac.yaml, 4236d777ffb6f03bb2682142aaa18b48e9a00d96] - - [releasenotes/notes/remove-ip-floating-commands-d5363f313e09249a.yaml, ea89065dabf92c2684e55c4b37c7be9b667cfa1e] - - [releasenotes/notes/subnet-set-segment-id-4440e433b170f9f3.yaml, e8c731547d85b1241c7898d2fb77b8d635901dfd] - - [releasenotes/notes/versions-show-12a2443624c83048.yaml, 9ece632f96844fd78c2f717f2f6d35e61c3b9ef2] - version: 3.16.0 -- files: - - [releasenotes/notes/bp-application-credential-a7031a043efc4a25.yaml, 375964f270e125b8887e0ca4ee1cbe15d5eddf04] - - [releasenotes/notes/bp-project-tags-b544aef9672d415b.yaml, d32664150fbc00340f3ff4304c13abf9a191299a] - - [releasenotes/notes/bug-1714878-46806jv2yv13q054.yaml, 4a9e84be994575146b30bd40a341d5686174eaad] - - [releasenotes/notes/keystone-endpoint-group-0c55debbb66844f2.yaml, 1eae301c4fab30c551ed7542cdaf8735cbbc3822] - - [releasenotes/notes/neutron_mtu-d87e53e2d76f8612.yaml, 18563b4132f794cc6612c2897795f96a31b565ae] - version: 3.15.0 +file-contents: {} +notes: [] @@ -11,7 +11,7 @@ setenv = VIRTUAL_ENV={envdir} 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} + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} -r{toxinidir}/test-requirements.txt -r{toxinidir}/requirements.txt commands = stestr run {posargs} @@ -88,7 +88,7 @@ commands = [testenv:venv] deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = {posargs} @@ -110,7 +110,7 @@ commands = [testenv:docs] deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} -r{toxinidir}/requirements.txt -r{toxinidir}/doc/requirements.txt commands = @@ -119,7 +119,7 @@ commands = [testenv:releasenotes] deps = - -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt} + -c{env:UPPER_CONSTRAINTS_FILE:https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=stable/rocky} -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html |
