From 4b7a1505845f92c0425b49c6f8f843c6ad81d2e1 Mon Sep 17 00:00:00 2001 From: Matt Riedemann Date: Thu, 7 Dec 2017 15:36:14 -0500 Subject: [PATCH] Update nova-status and docs for nova-compute requiring placement 1.14 With change I2f367b06e683ed7c815dd9e0536a46e5f0a27e6c, nova-compute now unconditionally requires Placement 1.14 to be available (the client side code doesn't check to see if 1.14 is available before trying to use it). This change updates the nova-status check for the minimum required version of Placement and also starts the "Queens" section of the Placement upgrade notes docs. Change-Id: I37415e384d375bc9b548a0223f787a9236286bb0 --- doc/source/cli/nova-status.rst | 4 ++++ doc/source/user/placement.rst | 12 +++++++++++- nova/cmd/status.py | 10 ++++++---- nova/tests/unit/cmd/test_status.py | 6 +++--- ...acement-1.14-for-nested-rps-8abb49df061b167e.yaml | 7 +++++++ 5 files changed, 31 insertions(+), 8 deletions(-) create mode 100644 releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b167e.yaml diff --git a/doc/source/cli/nova-status.rst b/doc/source/cli/nova-status.rst index 905103166b65..5d25e502ba8f 100644 --- a/doc/source/cli/nova-status.rst +++ b/doc/source/cli/nova-status.rst @@ -101,6 +101,10 @@ Upgrade * Checks for the Placement API are modified to require version 1.4, that is needed in Pike and further for nova-scheduler to work correctly. + **17.0.0 (Queens)** + + * Checks for the Placement API are modified to require version 1.14. + See Also ======== diff --git a/doc/source/user/placement.rst b/doc/source/user/placement.rst index e5555db64b25..40dad80e077a 100644 --- a/doc/source/user/placement.rst +++ b/doc/source/user/placement.rst @@ -49,12 +49,14 @@ changed or be partially complete at this time. * `Compute Node Inventory `_ * `Resource Provider Allocations `_ * `Resource Provider Base Models `_ -* `Nested Resource Providers `_ +* `Nested Resource Providers`_ * `Custom Resource Classes `_ * `Scheduler Filters in DB `_ * `Scheduler claiming resources to the Placement API `_ * `The Traits API - Manage Traits with ResourceProvider `_ +.. _Nested Resource Providers: http://specs.openstack.org/openstack/nova-specs/specs/queens/approved/nested-resource-providers.html + Deployment ========== @@ -264,6 +266,14 @@ Pike (16.0.0) used in testing, this is mentioned for completeness but should not be a concern for production deployments. +Queens (17.0.0) +~~~~~~~~~~~~~~~ + +* The minimum Placement API microversion required by the *nova-compute* service + is ``1.14`` in order to support `Nested Resource Providers`_. This means you + must upgrade the Placement service before upgrading any *nova-compute* + services to Queens. + REST API ======== diff --git a/nova/cmd/status.py b/nova/cmd/status.py index 34b718533ec7..60b54634620d 100644 --- a/nova/cmd/status.py +++ b/nova/cmd/status.py @@ -196,10 +196,12 @@ class UpgradeCommands(object): versions = self._placement_get("/") max_version = pkg_resources.parse_version( versions["versions"][0]["max_version"]) - # NOTE(rpodolyaka): 1.10 is needed in Pike and further as - # FilterScheduler requires GET /allocation_candidates in the - # Placement API. - needs_version = pkg_resources.parse_version("1.10") + # NOTE(mriedem): 1.14 is required by nova-compute services to + # get and set parent resource provider UUIDs for nested resource + # provider support. + # NOTE: If you bump this version, remember to update the history + # section in the nova-status man page (doc/source/cli/nova-status). + needs_version = pkg_resources.parse_version("1.14") if max_version < needs_version: msg = (_('Placement API version %(needed)s needed, ' 'you have %(current)s.') % diff --git a/nova/tests/unit/cmd/test_status.py b/nova/tests/unit/cmd/test_status.py index 711baef820a5..d8c7064dc1ee 100644 --- a/nova/tests/unit/cmd/test_status.py +++ b/nova/tests/unit/cmd/test_status.py @@ -210,7 +210,7 @@ class TestPlacementCheck(test.NoDBTestCase): "versions": [ { "min_version": "1.0", - "max_version": "1.10", + "max_version": "1.14", "id": "v1.0" } ] @@ -230,7 +230,7 @@ class TestPlacementCheck(test.NoDBTestCase): "versions": [ { "min_version": "1.0", - "max_version": "1.10", + "max_version": "1.14", "id": "v1.0" } ] @@ -251,7 +251,7 @@ class TestPlacementCheck(test.NoDBTestCase): } res = self.cmd._check_placement() self.assertEqual(status.UpgradeCheckCode.FAILURE, res.code) - self.assertIn('Placement API version 1.10 needed, you have 0.9', + self.assertIn('Placement API version 1.14 needed, you have 0.9', res.details) diff --git a/releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b167e.yaml b/releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b167e.yaml new file mode 100644 index 000000000000..ad522dddb5a4 --- /dev/null +++ b/releasenotes/notes/queens-compute-requires-placement-1.14-for-nested-rps-8abb49df061b167e.yaml @@ -0,0 +1,7 @@ +--- +upgrade: + - | + The ``nova-compute`` service requires Placement API version 1.14 at a + minimum to support `nested resource providers`_. + + .. _nested resource providers: http://specs.openstack.org/openstack/nova-specs/specs/queens/approved/nested-resource-providers.html