According to the Cinder devref:
https://github.com/openstack/cinder/blob/master/doc/source/devref/api_microversion_dev.rst)
you should be able to use the following pattern:
def index(self, req):
<common code>
req_version = req.api_version_request
if req_version.matches("3.1", "3.5"):
....stuff....
elif req_version.matches("3.6", "3.10"):
....other stuff....
elif req_version > api_version_request.APIVersionRequest("3.10"):
....more stuff.....
<common code>
However, the api_version_request.matches() function will not accept a
string, it requires an api_version_request object.
This changes the doc to implement an api_version_request object to use
this pattern.
Closes-Bug: #1550337
Change-Id: I14a943b21e9e98dd848c0c292ca1a1ae941cb98b
This emits a warning message when hooks are used to ensure that admins
understand that this facility is deprecated in Nova going forward. It
also removes the links to the meager documentation on hooks to ensure
no one finds these by accident and starts using them. Also add a
comment to the code file itself incase someone ends up in it from
other searches.
Change-Id: I31b1223a0dc3fdffe356a816b591fdd88a31483a
This is os-migrateLive API changes:
* 2.25 - Make block_migration to support 'auto' value, remove
disk_over_commit.
Partially implements: blueprint making-live-migration-api-friendly
APIImpact
DocImpact
Change-Id: Ibb0d50f0f7444028ef9d0c294aea41edf0024b31
For example, When aggregate zone is updated, time is not getting updated
in updated_at field.
So, modified the code such that time gets updated in updated_at field
whenever the aggregate metadata content gets modified.
Change-Id: Icb65313ba85562fadeddbc1890ca5d463e74d3c2
Closes-Bug: #1538014
This way we avoid having to change the test template every time we bump
the version, it will be taken from the module.
Change-Id: I699b737e0e234f0649f6d207a648c60d74d9701e
This change adds a DELETE call on the server-migrations object to cancel
a running live migration of a specific instance.
TO perform the cancellation the virtualization driver needs to support
it, in case that the feature is not supported we return an error.
We allow a cancellation of a migration only if the migration is
running at the moment of the request and if the migration type is equal
to 'live-migration'.
In this change we implement this feature for the libvirt driver.
When the cancellation of a live migration succeeded we rollback the live
migration and we set the state of the Migration object equals to
'cancelled'.
The implementation of this change is based on the work done by the
implementation of the feature called 'force live migration':
https://review.openstack.org/245921
DocImpact
ApiImpact
Implements blueprint: abort-live-migration
Change-Id: I1ff861e54997a069894b542bd764ac3ef1b3dbb2
This patch does two things:
1. Add two APIs /servers/migrations:index/show for server migrations.
Two new novaclient commands server-migration-list and
server-migration-show will also be added.
ref: I071198fa9ba0699383bdebf4fab54714a435e6c3
2. Add ref link for /os-migrations
The old top-level resource `/os-migrations` won't be extended anymore.
It is deprecated.
Adding migration_type for it, also add ref link to
/servers/{uuid}/migrations/{id} for it when the migration is an
in progress migration.
Partially implements blueprint live-migration-progress-report
Change-Id: Ia92ecbe3c99082e3a34adf4fd29041b1a95ef21e
Co-authored-by: ShaoHe Feng <shaohe.feng@intel.com>
current API microversion document mentioned no need to bump
version if we change from 500 error to 4xx error,
in this case, 503 (service unavailable) also can't be handled
by client side so it should be fine to change without bump.
This patch comes from I80a07222f44017448d1877d6b821eebe462d9fec
discussion.
Change-Id: I2500698b821797568e2564176e87938f2b0f9ae5
The feature triggering crash dump has already been supported by nova [1],
now we should complete the support matrix correspondingly.
[1]The change id is: Iaf63352139c466430d3304a87a66398133541fac
Change-Id: I769cab81ba72d48db259d737cbe5e69f7d530e73
This change adds manual knob to force ongoing live migration to
complete. It is implemented as a new server-migrations API.
DocImpact
ApiImpact
Implements: blueprint pause-vm-during-live-migration
Change-Id: I034b4041414a797f65ede52db2963107f2ef7456
Add a microversion change to the os-instance-actions API so that we
mutate the context to set 'read_deleted="yes"' when looking up the
instance.
Blueprint: os-instance-actions-read-deleted-instances
Change-Id: I607a28bbe06e20e17ee47a283e06b1d42b5c0e84
This change enables the attach and detach volume operations for
instances which are in shelve and shelved_offloaded state.
The code to manage the actual attach and detach is implemented by this
change: https://review.openstack.org/259528
New tempest tests are going to be written for testing the new feature.
APIImpact
DocImpact by this change we are allowing operations which were not
allowed before, we need to track this change in the documentation.
Partially implements blueprint: volume-ops-when-shelved
Change-Id: I43b67a50d998d43a6ff78c917093c513231b6ff2
This is primarily a writing style cleanup with some clarifications
and link additions. It does not make any great effort to bring the
information up to date with current conditions.
Change-Id: I665dc5afc952cf93c095cdd1421b64d7b0716b2a
This reverts commit 4b142e53e43132e996d35c335da30959f9f361be.
I was having a point left unresolved in https://review.openstack.org/#/c/189279/8/doc/source/filter_scheduler.rst about the tech debt that adding a new filter in-tree would cause for something very closely related to another filter.
I totally get the need for adding more logic and reverting how we compare flavors vs. aggregates. I just feel that before committing ourselves to that, we need to correctly estimate the possibilities to modify AggregateInstanceExtraSpecsFilter to fit the above needs.
Change-Id: Ic9f70dae037d32980a5a252bdd08eff02ba27120
By default this is turned on and has equal weight to the
ram weigher.
DocImpact: Added the disk_weight_multiplier config option
Closes-Bug: 1513654
Change-Id: I29ce73122ad1860081b64b75646a297dfbb8d292
This makes us actually capable of sending migrate_data objects
over the wire and handles all the compatibility work to tolerate
older nodes without this support.
Note this also fixes a bug in the libvirt migration data
object where the serial console field should be nullable
(per existing code) but wasn't. Since this is the patch that
actually lets this object be sent over the wire, we can update
the definition and the hash without needing a version bump.
Related to blueprint objectify-live-migrate-data
Change-Id: I8ad7a91910e269c27bc74389a9d4d2c7388313d6
The flavor_extra_spec metadata pair will be consumed by the
AggregateTypeExtraSpecsAffinityFilter to allow operators to define a
set of extra specs key value pairs that are required to schedule to
the aggregate, e.g.:
standard memory backing aggregate:
flavor_extra_spec: "hw:mem_page_size=small,hw:mem_page_size=any"
high bandwidth memory backing aggregate:
flavor_extra_spec: "hw:mem_page_size=2M,hw:mem_page_size=1G," \
"hw:mem_page_size=large"
DocImpact
Implements: blueprint aggregate-extra-specs-filter
Change-Id: Id3a9918cf9f83b2a9b1dfbcd91803b5b1b2bcc78
The versioned notificaton infrastructure is in place and the team
agreed on the midcycle to allow new notification types only based
on the versioned notification infrastructure. So the code-review
document is updated to reflect this decision
Change-Id: I7f3860ca59658dc21e67f26bb45341cb46da2235
Partially-Implements: bp versioned-notification-api
This commit adds a new sphinx extension that inspects the nova code
and adds information about the existing versioned notifications to
the nofitications devref. This way the devref is automatically kept
up to date with relevant information.
Partially-Implements: bp versioned-notification-api
Change-Id: If65d5d81e26cb2b4a9f57a8c7d37d3de310ebe00
This patch adds infrastructure to store and verify json samples
about versioned notifications. Also it adds sample for the service.update
notification as that is the only existing versioned notification.
A new notification_sample_tests subtree added to the functional test
tree to verify that the emitted notifications match with the stored sample.
Partially-Implements: bp versioned-notification-api
Change-Id: I3a70b7b5d6d427611a9d2c1610e0d55aff88f0e8
I74b1a340c5ab98fdea2186e87dd13f42ce7c7661 introduced a malformed api
sample and the tox -e docs fails since then. This patch fixes the
sample file.
Closes-bug: #1539071
Change-Id: Ica76db8928fc98db1a09074fdc46439c920e93d8
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for server PUT API tests and
remove its specific extensions tests and sample files.
Adding a hack for other tests which are still running with specific
extensions. That is needed to avoid all tests updates in single commit.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I9c44da3d9df39c1db0948194502be52f4f15acf2
Post Ic1f106684270a8f2197e0fb2a67d6fc00535ee65 we now require
msgfmt (a binary in the gettext package) to be installed for pep8
to pass. This hasn't failed in the gate because infra already
installs that package. We should make sure new devs know to do
that thing as well.
Change-Id: Iac505ddd54466e8a6272fee5ff61aac180c90ac4
This patch update feature support matrix documentation for uefi boot.
Change-Id: I8ec6a2ad24e100cce48d70160350e5bf853992ef
Implements: blueprint boot-from-uefi
This patches adds changes to the Nova REST API to allow
users to create a server with a description, rebuild
a server with a description, update the description,
and get the description in the server details.
Note: Future commits will be done to support the server
description in python-novaclient and openstack-client.
APIImpact
Implements blueprint: user-settable-server-description
Change-Id: I74b1a340c5ab98fdea2186e87dd13f42ce7c7661
This introduces microversion 2.18 which signals that the {project_id}
is no longer required in URLs.
It tests this with an additional scenario in api_samples which makes
all the requests without the project_id in the url (using a different
noauth middleware to accomplish this).
Update the link fixer in the ApiSamples matching code to also update
for optional project_id. This is the least worse approach here,
because if we set request_api_version, then we have to duplicate the
entire template tree as well, which we definitely don't want to do, as
it now correctly handles either url form.
This updates the auth tests to bifurcate with testscenarios instead of
the subclass model, which makes for more consistent tests.
In order to support adding routes without project_id we have to be
able to restrict project_id something that doesn't match any of our
top level routes.
The default for this is [0-9a-f\-]+ which will match all of the
following:
- keystone default generated project_ids [0-9a-f]{32}
- integer project_ids (\d+) - known in use by RAX
- uuids with dashes (no known users, but suspect there might be)
This can be overrided with the new (but already deprecated)
``project_id_regex`` config option.
NOTE: we used this feature to expand the regex to match 'fake' and
'openstack' as valid project ids in tests. Those concepts are deeply
embedded in our tests, and need to be unwound independently.
APIImpact
Implements bp:service-catalog-tng
Co-Authored-By: Augustina Ragwitz <auggy@cpan.org>
Change-Id: Id92251243d9e92f30e466419110fce5781304823
servers-detail-resp.json of microversion v2.16 contains some invalid
indents which are made with tabs instead of spaces.
This patch fixes them by replacing with spaces.
Change-Id: I1ee55e7b8ec78bde1d2e6097585b8d3db07d68f2