commit 9f57d16f38f0290718e3ba78393d064746f7e527
Author: Sean Mooney <email address hidden>
Date: Thu Oct 10 18:00:07 2019 +0100
Block rebuild when NUMA topology changed
If the image change during a rebuild it's possible for the request
NUMA topology to change. As a rebuild uses a noop claim in the
resource tracker the NUMA topology will not be updated as part of
a rebuild.
If the NUMA constraints do not change, a rebuild will continue as normal.
If the new constraints conflict with the existing NUMA constraints of the
instance the rebuild will be rejected without altering the status of the
instance.
This change introduces an API check to block rebuild when the NUMA
requirements for the new image do not match the existing NUMA constraints.
This is in line with the previous check introduced to prevent the rebuild of
volume-backed instances which similarly are not supported.
This change adds functional tests to assert the expected behaviour of
rebuilding NUMA instances with new images. This change also asserts that
in place rebuilds of numa instances is currently not supported.
NOTE(sean-k-mooney): due to the lack of
Ifcda7336d56c9b623720ee018ec5697740986273 the Fake HostInfo objects
created in the functional tests were updated to use the NUMAHostInfo
class. Prior to Ifcda7336d56c9b623720ee018ec5697740986273 the
Fake HostInfo class did not construct a numa topology from the kwargs
and instead only set a numa topology if it was passed in during
construction. In older release the initialization of the numa
topology from kwargs was a feature of NUMAHostInfo.
The servers.py conflicts are due to a lack of
I5576fa2a67d2771614266022428b4a95487ab6d5 in Stein.
Closes-Bug: #1763766
Partial-implements: blueprint inplace-rebuild-of-numa-instances
Change-Id: I0322d872bdff68936033a6f5a54e8296a6fb3434
(cherry picked from commit 6f5358ac1992b17b7f3f99d9a32290e0d4740dae)
(cherry picked from commit 745de99063bf77704a7f0610fe9e3647257eaa50)
Reviewed: https:/ /review. opendev. org/702972 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=9f57d16f38f 0290718e3ba7839 3d064746f7e527
Committed: https:/
Submitter: Zuul
Branch: stable/stein
commit 9f57d16f38f0290 718e3ba78393d06 4746f7e527
Author: Sean Mooney <email address hidden>
Date: Thu Oct 10 18:00:07 2019 +0100
Block rebuild when NUMA topology changed
If the image change during a rebuild it's possible for the request
NUMA topology to change. As a rebuild uses a noop claim in the
resource tracker the NUMA topology will not be updated as part of
a rebuild.
If the NUMA constraints do not change, a rebuild will continue as normal.
If the new constraints conflict with the existing NUMA constraints of the
instance the rebuild will be rejected without altering the status of the
instance.
This change introduces an API check to block rebuild when the NUMA
requirements for the new image do not match the existing NUMA constraints.
This is in line with the previous check introduced to prevent the rebuild of
volume-backed instances which similarly are not supported.
This change adds functional tests to assert the expected behaviour of
rebuilding NUMA instances with new images. This change also asserts that
in place rebuilds of numa instances is currently not supported.
Conflicts:
nova/api/ openstack/ compute/ servers. py
nova/tests/ functional/ libvirt/ test_numa_ servers. py
NOTE( sean-k- mooney) : due to the lack of 6c9b623720ee018 ec5697740986273 the Fake HostInfo objects 623720ee018ec56 97740986273 the d27716142660224 28b4a95487ab6d5 in Stein.
Ifcda7336d5
created in the functional tests were updated to use the NUMAHostInfo
class. Prior to Ifcda7336d56c9b
Fake HostInfo class did not construct a numa topology from the kwargs
and instead only set a numa topology if it was passed in during
construction. In older release the initialization of the numa
topology from kwargs was a feature of NUMAHostInfo.
The servers.py conflicts are due to a lack of
I5576fa2a67
Closes-Bug: #1763766 implements: blueprint inplace- rebuild- of-numa- instances 936033a6f5a54e8 296a6fb3434 b7f3f99d9a32290 e0d4740dae) 04a7f0610fe9e36 47257eaa50)
Partial-
Change-Id: I0322d872bdff68
(cherry picked from commit 6f5358ac1992b17
(cherry picked from commit 745de99063bf777