This commit is part of a series to retire the Packaging Deb
project. Step 2 is to remove all content from the project
repos, replacing it with a README notification where to find
ongoing work, and how to recover the repo if needed at some
future point (as in
https://docs.openstack.org/infra/manual/drivers.html#retiring-a-project).
Change-Id: I8d6903be44f4acb33aee0f875928b2bec5cc5caa
Using wsgi_intercept to run the placement API in the PlacementFixture,
instead of spawning an eventlet server. This should help with the weird
situation where sometimes requests that are supposed to go to compute or
placement go to the other.
Some combination of six or wsgi-intercept is not happy with the use of
socket_options in the keystoneauth1.session.TCPKeepAliveAdapter, so a
MonkeyPatch is used to skip over it and use the parent Adapter.
The change here continues to monkeypatch the report client so that we
don't have to monkey patch keystone's auth and endpoint handling. We
don't want that as it will also patch the nova side of things.
Change-Id: I03b3abea152d45575ac6dde22ccbe32b6acb4646
Related-Bug: #1705753
This enables Ironic to boot bare metal machines from Cinder
volume. Ironic virt driver needs to pass the remote volume
connection information down to Ironic when spawning a new
bare metal instance requested to boot from a Cinder volume.
This implements get_volume_connector method for the Ironic
driver. It will get connector information from the Ironic service
and pass it to Cinder's initialize_connection method for attached
volumes. And then it puts the returned value into Ironic.
This patch changes the required Ironic API version to 1.32 for using
new API for volume resources.
Co-Authored-By: Satoru Moriya <satoru.moriya.br@hitachi.com>
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Change-Id: I319779af265684715f0142577a217ab66632bf4f
Implements: blueprint ironic-boot-from-volume
Each gabbi yaml file is supposed to be an isolated sequence. The
fixtures were already making sure that the database was wiped, and the
traits sync was reset, but not making sure the _RC_CACHE used to cache
mappings between resource class strings and ids was flushed.
This change clears the _RC_CACHE in the APIFixture stop_fixture method.
For sake of information:
Before fixing the issue it was confirmed by running the two gabbi files
indicated in the bug report, in sequence, in a single process:
.tox/functional/bin/python -m subunit.run discover \
nova.tests.functional.api.openstack.placement \
--load-list /tmp/runthese |subunit-trace
Where runthese contains (with fully qualified package name prefixes):
test_placement_api.allocation-bad-class_allocate_some_of_it_standard.test_request
test_placement_api.resource-class-in-use_delete_resource_class.test_request
Change-Id: Icb3beef7964887f29bf8cca95ac7dbae1511876d
Closes-Bug: #1706207
This moves quota limits and classes from the main database to the
API database in an online migration.
Part of blueprint cells-quota-api-db
Change-Id: I64b600b30f6e54db0ec9083c6c176e895c6d0cc2
This patch adds code to the Ironic driver in init_host that will update
the flavor.extra_specs for all of the instances on that host with the
custom resource class information for the Ironic node. If the node has
not been populated with its resource_class, nothing happens. If there is
a custom resource_class set for the node, the instance's flavor's
extra_specs is modified to include the normalized resource class name
with a count of 1.
Blueprint: custom-resource-classes-in-flavors
Change-Id: Ia6be88720cc45defda709ae2a47b11624c78e7dc
This patch added a new field 'tags' to InstanceCreatePayload.
Partial-implement: bp additional-notification-fields-for-searchlight
Partial-implement: blueprint support-tag-instance-when-boot
Change-Id: Iefaa9da4e136fd5e823bf7b11c8aa5b4cd6d7de8
If someone chooses to run under uwsgi/apache instead of eventlet, the
basic logging of requests goes away (as that was an eventlet.wsgi
function). This is a critical piece of information for understanding
how services are working, and we need to retain it under uwsgi/apache.
This creates a new request_log middleware, inspired by the one in
placement, to provide that functionality. This includes all the same
information as before: http method, uri, status, content length, time
for the request. It also includes the microversion the request was
processed as, "-" if no microversion.
The middleware does not emit anything if it detects that it's running
under eventlet, to prevent duplicate log messages.
Release notes provided as this will be a manual transition for folks
as it's an api-paste.ini change.
Change-Id: I3a597b06d3501c765e2d7805c6c1375d6f4e40db
Adds a recursive call to the scheduler report client's
claim_resources() method that retries in the event (and only in the
event) of a concurrent update detected. If this error is returned, a
retry of the exact same allocation request is safe and perfectly
reasonable to attempt in normal operation.
Change-Id: Ib1abbb2deb1c0fd0a133e13c3cd2a967e3b3dc58
blueprint: placement-allocation-requests
When this test fails on a MismatchError we need to know
which notifications we have to figure out what's missing
in order to debug it.
Change-Id: I0ec92f853f5c76737b2888cd92cf9804ca83c495
Related-Bug: #1705818
Due to eventlet threading weirdness, it appears that sometimes a request
that is destined for the compute api fixture ends up on the placement
api fixture. The latter uses a no auth middleware that 401s when it does
not get a token.
The change retries the auth request a few times before failing.
If this has no effect, doing an eventlet.sleep() before the retry might
be something worth trying.
Change-Id: I9ca2022ca956be5ea67f4c40bed80115f2fae29d
Related-Bug: #1705753