summaryrefslogtreecommitdiff
diff options
-rw-r--r--.zuul.yaml9
-rw-r--r--AUTHORS2
-rw-r--r--ChangeLog8
-rw-r--r--PKG-INFO2
-rw-r--r--RELEASENOTES.rst174
-rw-r--r--debian/changelog6
-rw-r--r--doc/source/cli/command-objects/volume.rst8
-rw-r--r--openstackclient/tests/functional/image/base.py24
-rw-r--r--openstackclient/tests/functional/image/v1/test_image.py55
-rw-r--r--openstackclient/tests/functional/image/v2/test_image.py107
-rw-r--r--openstackclient/tests/functional/volume/v1/test_transfer_request.py37
-rw-r--r--openstackclient/tests/functional/volume/v2/test_transfer_request.py42
-rw-r--r--openstackclient/tests/functional/volume/v3/test_transfer_request.py2
-rw-r--r--openstackclient/tests/unit/volume/v2/test_volume.py47
-rw-r--r--openstackclient/volume/v2/volume.py14
-rw-r--r--python_openstackclient.egg-info/PKG-INFO2
-rw-r--r--python_openstackclient.egg-info/SOURCES.txt1
-rw-r--r--python_openstackclient.egg-info/pbr.json2
-rw-r--r--releasenotes/notes/reno.cache202
-rw-r--r--tox.ini8
20 files changed, 195 insertions, 557 deletions
diff --git a/.zuul.yaml b/.zuul.yaml
index 4541fbd..ee3abfc 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -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
diff --git a/AUTHORS b/AUTHORS
index b698b51..4ddf8ca 100644
--- a/AUTHORS
+++ b/AUTHORS
@@ -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>
diff --git a/ChangeLog b/ChangeLog
index e62e501..fc9e716 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
------
diff --git a/PKG-INFO b/PKG-INFO
index 33debe5..46d7198 100644
--- a/PKG-INFO
+++ b/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/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: []
diff --git a/tox.ini b/tox.ini
index 4aad012..cfc945d 100644
--- a/tox.ini
+++ b/tox.ini
@@ -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