<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/openstack/nova.git/nova/objects/migration_context.py, branch 23.2.2</title>
<subtitle>opendev.org: openstack/nova.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/'/>
<entry>
<title>Fix accumulated non-docs nits for cross-cell-resize series</title>
<updated>2019-12-23T15:10:57+00:00</updated>
<author>
<name>Matt Riedemann</name>
<email>mriedem.os@gmail.com</email>
</author>
<published>2019-12-13T15:07:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=3a66b8fdc04f65f7d10968d5359dfa1b9bad1807'/>
<id>3a66b8fdc04f65f7d10968d5359dfa1b9bad1807</id>
<content type='text'>
[1] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@899
[2] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@1160
[3] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@1187
[4] https://review.opendev.org/#/c/695334/5/nova/conductor/tasks/cross_cell_migrate.py@1464
[5] https://review.opendev.org/#/c/638048/56/nova/tests/functional/test_cross_cell_migrate.py@570
[6] https://review.opendev.org/#/c/638269/63/nova/compute/api.py@3735
[7] https://review.opendev.org/#/c/691991/15/nova/objects/migration_context.py@131
[8] https://review.opendev.org/#/c/638268/56/nova/tests/functional/test_cross_cell_migrate.py@762

Part of blueprint cross-cell-resize

Change-Id: I92a7c0c35415661db16edb89dc860f4512b98316
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[1] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@899
[2] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@1160
[3] https://review.opendev.org/#/c/638046/56/nova/conductor/tasks/cross_cell_migrate.py@1187
[4] https://review.opendev.org/#/c/695334/5/nova/conductor/tasks/cross_cell_migrate.py@1464
[5] https://review.opendev.org/#/c/638048/56/nova/tests/functional/test_cross_cell_migrate.py@570
[6] https://review.opendev.org/#/c/638269/63/nova/compute/api.py@3735
[7] https://review.opendev.org/#/c/691991/15/nova/objects/migration_context.py@131
[8] https://review.opendev.org/#/c/638268/56/nova/tests/functional/test_cross_cell_migrate.py@762

Part of blueprint cross-cell-resize

Change-Id: I92a7c0c35415661db16edb89dc860f4512b98316
</pre>
</div>
</content>
</entry>
<entry>
<title>libvirt: flatten rbd image during cross-cell move spawn at dest</title>
<updated>2019-12-12T17:45:06+00:00</updated>
<author>
<name>Matt Riedemann</name>
<email>mriedem.os@gmail.com</email>
</author>
<published>2019-10-29T21:34:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=dae920defaeaa90bf3cac4e27d0dac41de5a1e36'/>
<id>dae920defaeaa90bf3cac4e27d0dac41de5a1e36</id>
<content type='text'>
When migrating a non-volume-backed server across cells we will
create a temporary snapshot image and use that to spawn the
guest in the destination host/cell (like unshelve) and then
_finish_snapshot_based_resize_at_dest in the ComputeManager
will attempt to delete the snapshot image. For rbd images,
deleting the snapshot image will fail if we don't flatten it
first.

This builds on If3c9d1de3ce0fe394405bd1e1f0fa08ce2baeda8 and
adds logic to the libvirt driver such that, like the unshelve
scenario, if we are doing a cross-cell move we flatten the rbd
image so the ComputeManager can delete the temporary snapshot
image after the guest is spawned.

Part of blueprint cross-cell-resize

Change-Id: If56842da51688476072814e6e8309cf9e0a0210c
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When migrating a non-volume-backed server across cells we will
create a temporary snapshot image and use that to spawn the
guest in the destination host/cell (like unshelve) and then
_finish_snapshot_based_resize_at_dest in the ComputeManager
will attempt to delete the snapshot image. For rbd images,
deleting the snapshot image will fail if we don't flatten it
first.

This builds on If3c9d1de3ce0fe394405bd1e1f0fa08ce2baeda8 and
adds logic to the libvirt driver such that, like the unshelve
scenario, if we are doing a cross-cell move we flatten the rbd
image so the ComputeManager can delete the temporary snapshot
image after the guest is spawned.

Part of blueprint cross-cell-resize

Change-Id: If56842da51688476072814e6e8309cf9e0a0210c
</pre>
</div>
</content>
</entry>
<entry>
<title>object: Introduce Resource and ResourceList objs</title>
<updated>2019-09-13T08:50:35+00:00</updated>
<author>
<name>LuyaoZhong</name>
<email>luyao.zhong@intel.com</email>
</author>
<published>2019-09-11T04:49:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=384d783fc65223d5684d0fb7ea1e7fb0c44eeae1'/>
<id>384d783fc65223d5684d0fb7ea1e7fb0c44eeae1</id>
<content type='text'>
Introduce Resource and ResourceList objects, and add new resources
field to instance, also old_/new_ resources fields to migration_context,
Resource object can contain a generic resource information.

Change-Id: I095bb71d2a5e451f2827f646aa5b3ed31d2ccac3
Partially-Implements: blueprint virtual-persistent-memory
Co-Authored-By: He Jie Xu &lt;hejie.xu@intel.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Introduce Resource and ResourceList objects, and add new resources
field to instance, also old_/new_ resources fields to migration_context,
Resource object can contain a generic resource information.

Change-Id: I095bb71d2a5e451f2827f646aa5b3ed31d2ccac3
Partially-Implements: blueprint virtual-persistent-memory
Co-Authored-By: He Jie Xu &lt;hejie.xu@intel.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Move get_pci_mapping_for_migration to MigrationContext</title>
<updated>2019-05-19T09:41:00+00:00</updated>
<author>
<name>Adrian Chiris</name>
<email>adrianc@mellanox.com</email>
</author>
<published>2019-03-12T12:19:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=5a1c385b996090b80f5881680e04c88abc21828a'/>
<id>5a1c385b996090b80f5881680e04c88abc21828a</id>
<content type='text'>
In order to fix Bug #1809095, it is required to update
PCI related VIFs with the original PCI address on the source
host to allow virt driver to properly unplug the VIF from hypervisor,
e.g allow the proper VF representor to be unplugged
from the integration bridge in case of a hardware offloaded OVS.

To do so, some preliminary work is needed to allow code-sharing
between nova.network.neutronv2 and nova.compute.manager

This change:
- Moves common logic to retrieve the PCI mapping between
  the source and destination node from nova.network.neutronv2
  to objects.migration_context.
- Makes code adjustments to methods in nova.network.neutronv2
  to accomodate the former.

Change-Id: I9a5118373548c525b2b1c2271e7d210cc92e4f4c
Partial-Bug: #1809095
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to fix Bug #1809095, it is required to update
PCI related VIFs with the original PCI address on the source
host to allow virt driver to properly unplug the VIF from hypervisor,
e.g allow the proper VF representor to be unplugged
from the integration bridge in case of a hardware offloaded OVS.

To do so, some preliminary work is needed to allow code-sharing
between nova.network.neutronv2 and nova.compute.manager

This change:
- Moves common logic to retrieve the PCI mapping between
  the source and destination node from nova.network.neutronv2
  to objects.migration_context.
- Makes code adjustments to methods in nova.network.neutronv2
  to accomodate the former.

Change-Id: I9a5118373548c525b2b1c2271e7d210cc92e4f4c
Partial-Bug: #1809095
</pre>
</div>
</content>
</entry>
<entry>
<title>Use nova.db.api directly</title>
<updated>2018-07-10T14:56:27+00:00</updated>
<author>
<name>Chris Dent</name>
<email>cdent@anticdent.org</email>
</author>
<published>2018-02-11T21:58:04+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=def4b17934a3b2cf783d0177d6a9632916dfd10f'/>
<id>def4b17934a3b2cf783d0177d6a9632916dfd10f</id>
<content type='text'>
nova/db/__init__.py was importing * from nova.db.api. This meant that
any time any code anywhere within the nova.db package was imported
then nova.db.api was too, leading to a cascade of imports that may
not have been desired. Also, in general, code in __init__.py is a pain.

Therefore, this change adjusts code that so that either:

* nova.db.api is used directly
* nova.db.api is imported as 'db'

In either case, the functionality remains the same.

The primary goal of this change was to make it possible to import the
model files without having to import the db api. Moving the model files
to a different place in the directory hierarchy was considered, but
given that "code in __init__.py is a pain" this mode was chosen.

This looks like a very large change, but it is essentially adjusting
package names, many in mocks.

Change-Id: Ic1fd7c87ceda05eeb96735da2a415ef37060bb1a
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nova/db/__init__.py was importing * from nova.db.api. This meant that
any time any code anywhere within the nova.db package was imported
then nova.db.api was too, leading to a cascade of imports that may
not have been desired. Also, in general, code in __init__.py is a pain.

Therefore, this change adjusts code that so that either:

* nova.db.api is used directly
* nova.db.api is imported as 'db'

In either case, the functionality remains the same.

The primary goal of this change was to make it possible to import the
model files without having to import the db api. Moving the model files
to a different place in the directory hierarchy was considered, but
given that "code in __init__.py is a pain" this mode was chosen.

This looks like a very large change, but it is essentially adjusting
package names, many in mocks.

Change-Id: Ic1fd7c87ceda05eeb96735da2a415ef37060bb1a
</pre>
</div>
</content>
</entry>
<entry>
<title>pci: Move PCI devices and PCI requests into migration context</title>
<updated>2016-06-02T23:09:33+00:00</updated>
<author>
<name>Moshe Levi</name>
<email>moshele@mellanox.com</email>
</author>
<published>2016-04-18T11:33:59+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=c2c3b97259258eec3c98feabde3b411b519eae6e'/>
<id>c2c3b97259258eec3c98feabde3b411b519eae6e</id>
<content type='text'>
When resizing guest to flavor with pci passthrogth, we need to drop
the old pci devices and allocate new ones. To be able to do that we
are leveraging the migration context (that used only for NUMA).

Adds old and new PCI devices/ PCI requests into the MigrationContext
object and uses the nova.pci.request.get_pci_requests_from_flavor()
function to grab the set of requested PCI devices during a migration.

Then, in the resource tracker's _update_usage_from_migration() call, we
use the old and new PCI devices and PCI requests stored in the
MigrationContext to properly account for changes.

Closes-Bug: #1368201
Co-Authored-by: Jay Pipes &lt;jaypipes@gmail.com&gt;

Change-Id: Ie8690f2b7235d677ebe15fabaae81b0a6bda29de
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
When resizing guest to flavor with pci passthrogth, we need to drop
the old pci devices and allocate new ones. To be able to do that we
are leveraging the migration context (that used only for NUMA).

Adds old and new PCI devices/ PCI requests into the MigrationContext
object and uses the nova.pci.request.get_pci_requests_from_flavor()
function to grab the set of requested PCI devices during a migration.

Then, in the resource tracker's _update_usage_from_migration() call, we
use the old and new PCI devices and PCI requests stored in the
MigrationContext to properly account for changes.

Closes-Bug: #1368201
Co-Authored-by: Jay Pipes &lt;jaypipes@gmail.com&gt;

Change-Id: Ie8690f2b7235d677ebe15fabaae81b0a6bda29de
</pre>
</div>
</content>
</entry>
<entry>
<title>Save all instance extras in a single db call</title>
<updated>2016-05-25T10:23:03+00:00</updated>
<author>
<name>Hans Lindgren</name>
<email>hanlind@kth.se</email>
</author>
<published>2016-04-13T17:22:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=e75e9184f352c1d6f39b6c08235b79ebed8b88f1'/>
<id>e75e9184f352c1d6f39b6c08235b79ebed8b88f1</id>
<content type='text'>
Currently, changes to instance fields backed by instance_extras table
trigger separate db calls for each individual change when calling
save() on the instance. This reworks that so that all changes gets
saved with a single call to the db.

Change-Id: I2ddcb625ca54f18b1a68f8ddd1f28e541f438a74
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, changes to instance fields backed by instance_extras table
trigger separate db calls for each individual change when calling
save() on the instance. This reworks that so that all changes gets
saved with a single call to the db.

Change-Id: I2ddcb625ca54f18b1a68f8ddd1f28e541f438a74
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove obj_relationships from objects</title>
<updated>2015-10-30T00:22:23+00:00</updated>
<author>
<name>Dan Smith</name>
<email>dansmith@redhat.com</email>
</author>
<published>2015-10-05T23:50:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=93a3017999a6f71e94c86f29c83395e9d220250c'/>
<id>93a3017999a6f71e94c86f29c83395e9d220250c</id>
<content type='text'>
In Liberty, we converted to using the manifest-based class
action and backport methods, which no longer rely on these
object relationship maps. They provide a full manifest of
client-side versions with each call, which is far more
robust than us trying to hand-edit these mappings (which
we get incorrect a lot).

Since we're now in Mitaka, we can drop compatibility with
clients that don't make the version-manifest calls. Those
have also been deprecated in oslo.versionedobjects.

Change-Id: Iea8b6348e3b01aaa335ec5408f07826f1e758d20</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In Liberty, we converted to using the manifest-based class
action and backport methods, which no longer rely on these
object relationship maps. They provide a full manifest of
client-side versions with each call, which is far more
robust than us trying to hand-edit these mappings (which
we get incorrect a lot).

Since we're now in Mitaka, we can drop compatibility with
clients that don't make the version-manifest calls. Those
have also been deprecated in oslo.versionedobjects.

Change-Id: Iea8b6348e3b01aaa335ec5408f07826f1e758d20</pre>
</div>
</content>
</entry>
<entry>
<title>objects: Add MigrationContext object</title>
<updated>2015-08-31T19:45:19+00:00</updated>
<author>
<name>Nikola Dipanov</name>
<email>ndipanov@redhat.com</email>
</author>
<published>2015-08-25T12:03:07+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/openstack/nova.git/commit/?id=a7a2e95e713387b1bc570d0303bb136f85cad2b4'/>
<id>a7a2e95e713387b1bc570d0303bb136f85cad2b4</id>
<content type='text'>
Part of the object infrastructure needed for

Change-Id: I877483931867ecc64f142f4950655725643aa802
Related-blueprint: migration-fix-resource-tracking
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Part of the object infrastructure needed for

Change-Id: I877483931867ecc64f142f4950655725643aa802
Related-blueprint: migration-fix-resource-tracking
</pre>
</div>
</content>
</entry>
</feed>
