This change adds a post test hook to the nova-next job to report
timing of a query to GET /allocation_candidates when there are 1000
resource providers with the same inventory.
A summary of the work ends up in logs/placement-perf.txt
Change-Id: Idc446347cd8773f579b23c96235348d8e10ea3f6
About "PUT /resource_providers/{uuid}/aggregates"
in the Placement API reference,
the example of the response body in microversion 1.1 - 1.18 is missing.
So add it.
Change-Id: Ic3dc665124ae7927cfa20cf70a08c39b856b8961
Closes-Bug: #1786759
z/VM driver is in Rocky release now and this patch adds
the z/VM support matrix update.
blueprint: add-zvm-driver-rocky
Change-Id: I58016140c7f556df91ce258733455647a26dd727
There can be unicode characters in the params for live migration, for
example, the guest domain name in the destination XML. We need to
convert those to bytes when we call migrateToURI3 under python2.
The existing code was just calling str() for this, but that will fail
with the error:
UnicodeEncodeError: 'ascii' codec can't encode characters...
We need to encode the unicode characters to do conversion.
The existing unit test wasn't using any unicode characters in its test
data, so this scenario wasn't covered.
Closes-Bug: #1768807
Change-Id: I4b34139a3c5e3e2b7cf7cbe50bdf3da3131b9b1c
Somewhere in the past release, we started using extremely complex code
paths involving sharing providers, anchor providers, and nested resource
provider calculations when we absolutely don't need to do so.
There was a _has_provider_trees() function in the
nova/api/openstack/placement/objects/resource_provider.py file that used
to be used for top-level switching between a faster, simpler approach to
finding allocation candidates for a simple search of resources and
traits when no sharing providers and no nesting was used. That was
removed at some point and all code paths -- even for simple "get me
these amounts of these resources" when no trees or sharing providers are
present (which is the vast majority of OpenStack deployments) -- were
going through the complex tree-search-and-match queries and algorithms.
This patch changes that so that when there's a request for some
resources and there's no trees or sharing providers, we do the simple
code path. Hopefully this gets our performance for the simple, common
cases back to where we were pre-Rocky.
This change is a prerequisite for the following change which adds
debugging output to help diagnose which resource classes are running
out of inventory when GET /allocation_candidates returns 0 results.
That code is not possible without the changes here as they only
work if we can identify when a "simpler approach" is possible and
call that simpler code.
Related-Bug: #1786055
Partial-Bug: #1786519
Change-Id: I1fdbcdb7a1dd51e738924c8a30238237d7ac74e1
This patch adds a test for _get_provider_ids_matching()
to verify it works correctly with required traits.
Related-Bug: #1786519
Change-Id: I2512e361f5eaa4e60701be7c8bf57b2e0a02a146
This reverts commit 8e6d5d404c.
As detailed in the bug, this is overly racy, waiting for the event
potentially a long ways (and a couple RPC calls) away from where
the event will be triggered. The compute manager now has a generic
mechanism to do this which conflicts and replaces this functionality,
if enabled (default is off in Rocky, to be defaulted to on in Stein).
Conflicts:
nova/tests/unit/virt/libvirt/test_driver.py
nova/virt/libvirt/driver.py
Change-Id: Ibf2b5eeafd962e93ae4ab6290015d58c33024132
Closes-Bug: #1786346
Since [1] was fixed we don't need to manually patch the mock lib to
avoid silently passing mistyped assert methods on mocks.
[1] https://bugs.python.org/issue21238
Change-Id: Iecf4dcf8e648c9191bf8846428683ec81812c026
The call to os-roll_detaching was dropped when
I3800b466a50b1e5f5d1e8c8a963d9a6258af67ee started to catch and reraise
DeviceDetachFailed. This call is required to ensure a volume returns to
an in-use state when the instance is unable to detach.
Closes-Bug: #1786318
Change-Id: I6b3dc09acc6f360806ce0ef8c8a65addbf4a8c51
This patch updates the api-ref for 'in_use'
field of quota details for keypair which is
always 0 as it is user dependant parameter.
Closes-Bug: #1644457
Change-Id: I0323c411126314ddf3d689dc3120b039256ae81a
Mention that if any nonexistent aggregate uuids are provided, those
aggregates will be created automatically first during the update call.
I think this is a good addition since in fact I was much confused how
the aggregates can be created in the first place when playing with
the placement APIs.
Change-Id: I2f86715a21784eb974b73fc3edc74eedd73ad48b
In the placement API reference, there is a separate section for
"microversions 1.19 -" for both List and Update resource provider
aggregates, so there's no need for the resource_provider_generation
field to mention that it's "New in version 1.19" in those sections.
Change-Id: I3fd02f21d4af11633c4aeb33925c279a1c3b4abd
This patch does the following:
1. Mention that the current doc is only relavant to cold-migration.
2. Additional live-migration reference is given.
3. The inappropriate --live flag in the example is removed.
4. Policy violation message is updated.
5. Replace a nova command with openstack commmand
Change-Id: Idaa7915ea47d11e30da3f12318082a10a4e73b3b
Add description for nested resource providers
in allocation candidates, Placement API microversion 1.29
in the Placement API reference.
Change-Id: I22c2068ae860c1ef2cbdb0801e85a40acc2a097a
Implements: blueprint nested-resource-providers-allocation-candidates
When we update a volume attachment in nova api, we use volume_id instead
of attachment_id in params in latest api.
Change-Id: I5fc4d0ba3bb1c49dfaba2b2eed056441509cb9da