commit 745de99063bf77704a7f0610fe9e3647257eaa50
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(stephenfin): The new tests added in 'test_numa_servers.py' had to
be modified to use the old-style '_wait_for_state_change' function,
since change I80cdc0a33ec27b1389130c22f9c3a8ff69f6b1a0 isn't present on
'stable/train' and it's too large and invasive to justify backporting.
In addition, a 'super()' call had to be updated to use the Python 2
compatible 'super(ClassName, self)' style.
Reviewed: https:/ /review. opendev. org/698530 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=745de99063b f77704a7f0610fe 9e3647257eaa50
Committed: https:/
Submitter: Zuul
Branch: stable/train
commit 745de99063bf777 04a7f0610fe9e36 47257eaa50
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.
Modifications: tests/functiona l/libvirt/ test_numa_ servers. py
nova/
NOTE( stephenfin) : The new tests added in 'test_numa_ servers. py' had to for_state_ change' function, 1389130c22f9c3a 8ff69f6b1a0 isn't present on
be modified to use the old-style '_wait_
since change I80cdc0a33ec27b
'stable/train' and it's too large and invasive to justify backporting.
In addition, a 'super()' call had to be updated to use the Python 2
compatible 'super(ClassName, self)' style.
Closes-Bug: #1763766 implements: blueprint inplace- rebuild- of-numa- instances 936033a6f5a54e8 296a6fb3434 b7f3f99d9a32290 e0d4740dae)
Partial-
Change-Id: I0322d872bdff68
(cherry picked from commit 6f5358ac1992b17