NUMA nodes should store the pCPUs reserved for the hypervisor
to allow drivers to use them and allow to compute NUMA topology
resources usage.
implements blueprint libvirt-emulator-threads-policy
Change-Id: Ieec2e698d6ca8ce4257e0db2f21e3021b3d7d479
The api_samples tests depend on a very static environment where
we use the SpawnIsSynchronous fixture. This is somewhat at odds with
the locking used in the CellDatabase fixture, which will necessarily
recurse at times. Since the api_samples tests are already a bit naive
in the service layout, and since they don't care about cells things,
we do some monkeywork here to make them use the SingleCellSimple
fixture instead of a full-blown multi-cell environment.
Change-Id: If1138331f3a46f5aed87e898ce19879a787d435f
Previously, libvirt just appended 'script=' onto the QEMU cmd line
according to what <script path=''/> contained, letting QEMU execute the
script. That was flawed from security POV (you don't want QEMU to be
allowed to execute anything), so newer libvirt (as of [1]) executes the
script now. But the libvirt code doesn't allow this corner case (of
allowing and ignoring an empty script path) whereas apparently the QEMU
code does.
So the Nova setting of '' used to work by accident, but now does not.
[1]
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=9c17d66 (autocreate
tap device for ethernet network type)
Closes-Bug: #1649527
Change-Id: I4f97c05e2dec610af22a5150dd27696e1d767896
This makes compute API's instance listing routines access and compile
the list of instances across all cells.
Related to blueprint cells-scheduling-interaction
Change-Id: I37b5af1e02e2288340378944e77c110268a59a8d
Depends-On: I3c9101a34b2bb0804fc4deda62dbb8637e7b8f94
The 'NUMATopologyFilter' makes a call to 'numa_fit_instance_to_host' in
order to determine whether an instance with a sample topology could fit
on a given host. This function is provided with an InstanceNUMATopology
object, which was extracted from the RequestSpec provided to the filter.
However, the 'numa_fit_instance_to_host' call has the side effect of
modifying a couple of fields on this InstanceNUMATopology object, most
notably the pinning information, and these changes are then propagated
to subsequent calls of the filter. The reason for this propagation is
presumably Python's "call-by-object" model [1].
While this doesn't cause any issues currently, it is a latent bug that
has caused issues downstream. Resolve the issue by copying the entire
RequestSpec object, thus ensuring any changes to this or the contained
NUMA topology are not stored and cannot affect future calls to this or
other filters.
[1] https://jeffknupp.com/blog/2012/11/13/is-python-callbyvalue-or-callbyreference-neither/
Change-Id: If26cbdd5189c53891554c8d128be9b90578616aa
Closes-Bug: #1655979
There was a typo in here about the map_cell0 command creating
a db connection with a _nova suffix when it's actually a _cell0
suffix like in the example, nova_cell0.
This also adds a reminder to sync the API database schema before
running the commands and also gives a warning about being
specific when using map_cell0 and having the databases on different
hosts.
Depends-On: I541b072638b5d50985145391e76f610417fdcaa6
Change-Id: Ibf3355217bbd0139a020de352bb62ff7d973d27b
We recently merged something adding a version argument for the get method of the
SchedulerReportClient. We should add that feature into the PlacementFixture.
Also adding a comment explaining why we need to mock up the report client.
Change-Id: I918b84a0f19d56fe9aa2164c1c7ab679e7535769
This patch gets Ironic virt driver to support soft reboot.
Ironic API supports soft reboot since API version 1.27. The API
version has already been bumped to 1.28.
Change-Id: I4e61ebf852f61e3c0a511b49f0304d3138ef022e
Implements: blueprint soft-reboot-poweroff
Co-Authored-By: Tang Chen <chen.tang@easystack.cn>
Co-Authored-By: xiexs <xiexs@cn.fujitsu.com>
Some of the functional tests are calling the scheduler for getting the destination.
Once we will accept having the scheduler be calling the Placement service in order
to know a list of valid resource providers, we will need to run a local fixture
for having those tests faking the Placement service.
Change-Id: I6883888bf5d1920ab57dbf3dcaa1a7b375591754