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

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>`_
* `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>`_
* `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>`_
* `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>`_
* `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
==========
@ -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
========

View File

@ -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.') %

View File

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

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