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
This commit is contained in:
Matt Riedemann 2017-12-07 15:36:14 -05:00
parent a0ff3e2936
commit 4b7a150584
5 changed files with 31 additions and 8 deletions

View File

@ -101,6 +101,10 @@ Upgrade
* Checks for the Placement API are modified to require version 1.4, that * 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. 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 See Also
======== ========

View File

@ -49,12 +49,14 @@ changed or be partially complete at this time.
* `Compute Node Inventory <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/compute-node-inventory-newton.html>`_ * `Compute Node Inventory <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/compute-node-inventory-newton.html>`_
* `Resource Provider Allocations <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/resource-providers-allocations.html>`_ * `Resource Provider Allocations <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/resource-providers-allocations.html>`_
* `Resource Provider Base Models <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/resource-providers.html>`_ * `Resource Provider Base Models <https://specs.openstack.org/openstack/nova-specs/specs/newton/implemented/resource-providers.html>`_
* `Nested Resource Providers <http://specs.openstack.org/openstack/nova-specs/specs/pike/approved/nested-resource-providers.html>`_ * `Nested Resource Providers`_
* `Custom Resource Classes <http://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/custom-resource-classes.html>`_ * `Custom Resource Classes <http://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/custom-resource-classes.html>`_
* `Scheduler Filters in DB <http://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/resource-providers-scheduler-db-filters.html>`_ * `Scheduler Filters in DB <http://specs.openstack.org/openstack/nova-specs/specs/ocata/implemented/resource-providers-scheduler-db-filters.html>`_
* `Scheduler claiming resources to the Placement API <http://specs.openstack.org/openstack/nova-specs/specs/pike/approved/placement-claims.html>`_ * `Scheduler claiming resources to the Placement API <http://specs.openstack.org/openstack/nova-specs/specs/pike/approved/placement-claims.html>`_
* `The Traits API - Manage Traits with ResourceProvider <http://specs.openstack.org/openstack/nova-specs/specs/pike/approved/resource-provider-traits.html>`_ * `The Traits API - Manage Traits with ResourceProvider <http://specs.openstack.org/openstack/nova-specs/specs/pike/approved/resource-provider-traits.html>`_
.. _Nested Resource Providers: http://specs.openstack.org/openstack/nova-specs/specs/queens/approved/nested-resource-providers.html
Deployment Deployment
========== ==========
@ -264,6 +266,14 @@ Pike (16.0.0)
used in testing, this is mentioned for completeness but should not be a used in testing, this is mentioned for completeness but should not be a
concern for production deployments. 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 REST API
======== ========

View File

@ -196,10 +196,12 @@ class UpgradeCommands(object):
versions = self._placement_get("/") versions = self._placement_get("/")
max_version = pkg_resources.parse_version( max_version = pkg_resources.parse_version(
versions["versions"][0]["max_version"]) versions["versions"][0]["max_version"])
# NOTE(rpodolyaka): 1.10 is needed in Pike and further as # NOTE(mriedem): 1.14 is required by nova-compute services to
# FilterScheduler requires GET /allocation_candidates in the # get and set parent resource provider UUIDs for nested resource
# Placement API. # provider support.
needs_version = pkg_resources.parse_version("1.10") # 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: if max_version < needs_version:
msg = (_('Placement API version %(needed)s needed, ' msg = (_('Placement API version %(needed)s needed, '
'you have %(current)s.') % 'you have %(current)s.') %

View File

@ -210,7 +210,7 @@ class TestPlacementCheck(test.NoDBTestCase):
"versions": [ "versions": [
{ {
"min_version": "1.0", "min_version": "1.0",
"max_version": "1.10", "max_version": "1.14",
"id": "v1.0" "id": "v1.0"
} }
] ]
@ -230,7 +230,7 @@ class TestPlacementCheck(test.NoDBTestCase):
"versions": [ "versions": [
{ {
"min_version": "1.0", "min_version": "1.0",
"max_version": "1.10", "max_version": "1.14",
"id": "v1.0" "id": "v1.0"
} }
] ]
@ -251,7 +251,7 @@ class TestPlacementCheck(test.NoDBTestCase):
} }
res = self.cmd._check_placement() res = self.cmd._check_placement()
self.assertEqual(status.UpgradeCheckCode.FAILURE, res.code) 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) res.details)

View File

@ -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