Make aggregate.create() and destroy() use the API rather than cell database.
Also block aggregate creation until main database empty. This makes
Aggregate.create() fail until the main database has had all of its aggreagtes
migrated. Since we want to avoid any overlap or clashes in integer ids we
need to enforce this.
Note that this includes a change to a notification sample, which encodes
the function and module of a sample exception (which happens to be during
an aggregate operation). Since the notifications are encoding internal
function names, which can and will change over time, this is an expected
change.
blueprint cells-aggregate-api-db
Co-Authored-By: Dan Smith <dansmith@redhat.com>
Change-Id: Ida70e3c05f93d6044ddef4fcbc1af999ac1b1944
The instance.restore.start and instance.restore.end notifications
are transformed to the versioned framework.
Change-Id: I4459ec05a7153af7a0f04adcccb9d99cb5f661e5
Implements: bp versioned-notification-transformation-newton
This service version indicates that the successful delete of a
BuildRequest during instance deletion will cause nova-conductor to stop
a build when it notices that the BuildRequest is gone. This simplifies
the delete code for dealing with pre-scheduled instances.
Change-Id: I961d002cccd3e01a26cb5174e0804db7fc1f836d
The instance.resize.start and instance.resize.end notifications
are transformed to the versioned framework.
Implements: bp versioned-notification-transformation-newton
Change-Id: If5183eddb7d79712f360cde11c554e4798f86255
The instance.pause.start and instance.pause.end notifications
are transformed to the versioned framework.
Implements: bp versioned-notification-transformation-newton
Change-Id: I67979c1cd7cd221a2241846255bf2a884a9d60f5
Instance.shelve.start and instance.shelve.end notifications
are transformed to the new versioned framework.
Change-Id: Ibb52f4c9d8ec10810916a6ccb2bb494db7300d05
Implements: bp versioned-notification-transformation-newton
The instance.suspend.start and instance.suspend.end
notifications are transformed to the versioned notifications
framework.
Change-Id: I6a90019773c415db9d27c893eb64466ae101b7d7
Implements: blueprint versioned-notification-transformation-newton
Depends-On: #313654
The instance.power_on.start and instance.power_on.end notifications
are transformed to the versioned framework.
Change-Id: I4e4fd701a59064b89e38b50dcc01c9d8846a09b0
Implements: bp versioned-notification-transformation-newton
The instance.delete.start and instance.delete.end notifications
are transformed to the versioned framework using the generic
InstanceActionNotification and InstanceActionPayload class.
There is no instance.delete.error notification in legacy so
it is not added here but considered as a future improvement.
Change-Id: Iddbe50ce0ad3c14562df800bbc09ec5a7e840485
Implements: bp versioned-notification-transformation-newton
This patch allows the network manager(s) to set virtual device tags if
they are present during allocation.
Implements: blueprint virt-device-role-tagging
Co-authored-by: Vladik Romanovsky <vromanso@redhat.com>
Co-authored-by: Dan Smith <dansmith@redhat.com>
Change-Id: I8367f740d6d4ebaeb81bc74c6a82a8faf5cd8308
Removes a longstanding TODO to update this method to handle instance
objects. The method is not actually used anywhere so there are no
upgrade concerns, but proper protocol is observed regardless.
Change-Id: Ieaf538fa2dc5c4a15574cc6aacac26abbac3b5a2
The REST API is going to be checking that all computes
in the deployment are running new enough code to support
network requests with the special 'auto' and 'none' values
for Get Me a Network, so we need to bump the service version
which can be used as the minimum version to check.
Part of blueprint get-me-a-network
Change-Id: Ia1af75422d5e1fd4535c1ed9703d855239282559
A new versioned notification is emitted from the wrap_exception
decorator.
Change-Id: I8fcbce111537dae6ad3ba0961fb761540ae800ed
Partially-Implements: bp versioned-notification-transformation-newton
During force_live_migration operation there are 2
checks of migration status, one on api layer and one on
compute side, second one requires rpc request to be done
and also to query the db. This check could be removed as additional
one doesn't guarantee that live_migration is not already completed,
also is very small window between api and compute side.
Target compute host is now taken from migration object rather
then instance.host field, which allows to guarantee that nova will not
pause already migrated instance.
Change-Id: I51585302e898251e26cbf311aeac38a0ec329001
This does a live migration of compute node resource information from the
current location (in compute_nodes columns) to the new desired location
of records in the inventories table. It only does this if all control
services have been upgraded to a level that understands this.
Related to blueprint compute-node-inventory-newton
Change-Id: Ieda099d3f617713f09315b2b1e932a7c1d6f45c4
This reverts commit d411d60587.
The point of doc/*samples* is they are static files, not
dynamic. We shouldn't be doing substitution here, this
breaks all kinds of things, including the doc target.
Change-Id: Iaaf9fa0096ab62e6d3efbe018d8d4853a2ff8cda
Closes-Bug: #1553634
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 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
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
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