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