nova/nova/objects
Balazs Gibizer cd03bbc1c3 Record SRIOV PF MAC in the binding profile
Today Nova updates the mac_address of a direct-physical port to reflect
the MAC address of the physical device the port is bound to. But this
can only be done before the port is bound. However during migration Nova
does not update the MAC when the port is bound to a different physical
device on the destination host.

This patch extends the libvirt virt driver to provide the MAC address of
the PF in the pci_info returned to the resource tracker. This
information will be then persisted in the extra_info field of the
PciDevice object.

Then the port update logic during migration, resize, live
migration, evacuation and unshelve is also extended to record the MAC of
physical device in the port binding profile according to the device on
the destination host.

The related neutron change Ib0638f5db69cb92daf6932890cb89e83cf84f295
uses this info from the binding profile to update the mac_address field
of the port when the binding is activated.

Closes-Bug: #1942329

Change-Id: Iad5e70b43a65c076134e1874cb8e75d1ba214fde
2022-05-03 18:08:50 +02:00
..
__init__.py objects: Remove 'bandwidth' fields from notifications 2021-11-03 17:33:43 +00:00
aggregate.py db: Replace use of strings in join, defer operations 2022-04-08 15:56:47 +01:00
base.py Remove six.binary_type/integer_types/string_types 2020-12-13 11:25:14 +00:00
block_device.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
build_request.py db: Post reshuffle cleanup 2021-08-09 15:34:40 +01:00
cell_mapping.py db: Resolve additional SAWarning warnings 2022-04-08 15:57:10 +01:00
compute_node.py Prevent deletion of a compute node belonging to another host 2021-08-20 14:57:45 +01:00
console_auth_token.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
diagnostics.py Add NovaEphemeralObject class for non-persistent objects 2020-01-14 08:13:18 -08:00
ec2.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
external_event.py Define Cyborg ARQ binding notification event. 2020-03-01 13:52:51 -08:00
fields.py Allow 'bochs' as a display device option 2021-09-02 17:46:22 +01:00
flavor.py db: Replace use of strings in join, defer operations 2022-04-08 15:56:47 +01:00
host_mapping.py db: Replace use of strings in join, defer operations 2022-04-08 15:56:47 +01:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py object/notification for Adds Pick guest CPU architecture based on host 2022-02-24 12:06:55 -05:00
instance.py db: Remove nova-network models 2021-11-03 17:33:53 +00:00
instance_action.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
instance_fault.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
instance_group.py db: Replace use of strings in join, defer operations 2022-04-08 15:56:47 +01:00
instance_info_cache.py Raise InstanceNotFound on fkey constraint fail saving info cache 2022-02-07 20:11:59 +00:00
instance_mapping.py db: Replace use of strings in join, defer operations 2022-04-08 15:56:47 +01:00
instance_numa.py Migrate RequestSpec.numa_topology to use pcpuset 2021-12-03 10:10:26 +01:00
instance_pci_requests.py objects: Remove 'NovaObjectDictCompat' from 'InstancePCIRequest' 2022-03-23 15:16:00 +00:00
keypair.py objects: Stop querying the main DB for keypairs 2021-10-18 20:26:18 +01:00
migrate_data.py objects: Fix VIFMigrateData.supports_os_vif_delegation setter 2021-06-18 18:14:39 +01:00
migration.py objects: Remove 'NovaObjectDictCompat' from 'Migration' 2022-03-23 15:15:41 +00:00
migration_context.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
monitor_metric.py Fix MonitorMetric obj_make_compatible 2016-09-12 14:10:41 +00:00
network_metadata.py Assorted cleanups from numa-aware-vswitches series 2018-07-27 09:49:12 -07:00
network_request.py smartnic support - new vnic type 2021-08-05 15:58:25 +08:00
numa.py libvirt: start tracking NUMACell.socket for hosts 2021-02-21 11:30:07 -05:00
pci_device.py Record SRIOV PF MAC in the binding profile 2022-05-03 18:08:50 +02:00
pci_device_pool.py Remove six.binary_type/integer_types/string_types 2020-12-13 11:25:14 +00:00
quotas.py db: Post reshuffle cleanup 2021-08-09 15:34:40 +01:00
request_spec.py objects: Remove 'NovaObjectDictCompat' from 'InstancePCIRequest' 2022-03-23 15:16:00 +00:00
resource.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
security_group.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
selection.py Add Selection.availability_zone field 2019-10-02 13:39:24 -04:00
service.py [yoga] Add support for VNIC_REMOTE_MANAGED 2022-02-09 01:23:27 +03:00
tag.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
task_log.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
trusted_certs.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
vcpu_model.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00
virtual_interface.py db: Post reshuffle cleanup 2021-08-09 15:34:40 +01:00
volume_usage.py db: Unify 'nova.db.api', 'nova.db.sqlalchemy.api' 2021-08-09 15:34:40 +01:00