nova/nova/objects
Huan Xie ef0c67934c Fix live migrate with XenServer
Live migration with XenServer as hypervisor failed with xapi
errors "VIF_NOT_IN_MAP". There are two reasons for this
problem:

(1) Before XS7.0, it supports VM live migration without
setting vif_ref and network_ref explicitly if the destination
host has same network, but since XS7.0, it doesn't support
this way, we must give vif_ref and network_ref mapping.

(2) In nova, XenServer has introduced interim network for
fixing ovs updating wrong port in neutron, see bug 1268955
and also interim network can assist support neutron security
group (linux bridge) as we cannot make VIF connected to
linux bridge directly via XAPI

To achieve this, we will add {src_vif_ref: dest_network_ref}
mapping information, in pre_live_migration, we first create
interim network in destination host and store
{neutron_vif_uuid: dest_network_ref} in migrate_data, then in
source host, before live_migration, we will calculate the
{src_vif_ref: dest_network_ref} and set it as parameters to
xapi when calling VM.migrate_send. Also, we will handle the
case where the destination host is running older code that
doesn't have this new src_vif_ref mapping, like live migrating
from an Ocata compute node to a Newton compute node.

Closes-bug: 1658877

Change-Id: If0fb5d764011521916fbbe15224f524a220052f3
(cherry picked from commit 4cd32645fb)
2017-02-16 12:47:09 -05:00
..
__init__.py Move notification related code to separate package 2016-06-08 11:32:53 +02:00
agent.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
aggregate.py Merge "Handle unicode when dealing with duplicate aggregate errors during migration" 2017-01-26 02:15:47 +00:00
bandwidth_usage.py Cleanup NovaObjectDictCompat from BandwidthUsage 2016-04-04 10:26:55 +00:00
base.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
block_device.py Add tag column to vifs and bdm 2016-04-01 08:46:54 -07:00
build_request.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
cell_mapping.py Add is_cell0 helper method 2016-09-15 10:35:26 -04:00
compute_node.py Add ComputeNodeList.get_all_by_uuids method 2017-01-20 09:47:43 +01:00
dns_domain.py Remove DictCompat from DNSDomain 2016-01-11 16:38:06 +00:00
ec2.py Remove DictCompat from S3 object 2016-04-04 18:22:59 +00:00
external_event.py cleanup NovaObjectDictCompat from external_event 2015-08-26 17:01:02 +05:30
fields.py Merge "Add 'disabled' to WatchdogAction field" 2017-01-31 21:14:03 +00:00
fixed_ip.py Use version convert methods from oslo_utils.versionutils 2015-11-25 20:26:02 +08:00
flavor.py Merge "Handle unicode when dealing with duplicate flavors during online migrations" 2017-01-26 02:15:14 +00:00
floating_ip.py Add new NeutronFloatingIP object 2016-04-08 14:50:38 +00:00
host_mapping.py Allow scheduler to run cell host discovery periodically 2017-02-01 12:22:23 -08:00
hv_spec.py objects: Move 'hv_type' to 'fields.HVType' 2016-11-25 16:19:43 +00:00
image_meta.py Add 'disabled' to WatchdogAction field 2017-01-03 17:27:40 -05:00
instance.py Merge "Only return latest instance fault for instances" 2017-01-04 21:37:14 +00:00
instance_action.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
instance_fault.py Only return latest instance fault for instances 2016-12-14 19:25:05 +02:00
instance_group.py Use pick_context_manager throughout DB APIs 2016-11-18 17:15:51 +00:00
instance_info_cache.py Remove DictCompat from instance_info_cache 2016-06-13 18:31:45 +00:00
instance_mapping.py Add InstanceMappingList.get_by_cell_id 2017-01-16 12:04:30 -05:00
instance_numa_topology.py objects: add new field cpuset_reserved in NUMACell 2017-01-24 19:37:55 +00:00
instance_pci_requests.py pci: Deprecate is_new from pci requests 2016-06-21 13:19:57 +03:00
keypair.py Use pick_context_manager throughout DB APIs 2016-11-18 17:15:51 +00:00
migrate_data.py Fix live migrate with XenServer 2017-02-16 12:47:09 -05:00
migration.py Add new APIs and deprecate old API for migrations 2016-02-26 14:25:48 +00:00
migration_context.py pci: Move PCI devices and PCI requests into migration context 2016-06-03 02:09:33 +03:00
monitor_metric.py Fix MonitorMetric obj_make_compatible 2016-09-12 14:10:41 +00:00
network.py Remove deprecated configuration option network_device_mtu 2016-09-07 12:31:57 +00:00
network_request.py Merge "Remove DictCompat from NetworkRequest" 2016-06-30 10:23:36 +00:00
numa.py Mark sibling CPUs as 'used' for cpu_thread_policy = 'isolated' 2016-12-13 11:23:07 +04:00
pci_device.py Fix typo in comment 2016-09-28 12:18:22 +07:00
pci_device_pool.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
quotas.py cleanup NovaObjectDictCompat from quota 2015-08-20 18:48:21 +00:00
request_spec.py [2/3]Replace six.iteritems() with .items() 2017-01-09 09:11:00 +00:00
resource_provider.py allocations.consumer_id is not used in query. 2017-02-14 16:24:02 -05:00
security_group.py Add SecurityGroup.identifier to prefer uuid over name 2016-12-09 10:30:48 -08:00
security_group_rule.py Cleanup NovaObjectDictCompat from security_group_rule 2016-01-05 16:21:08 +00:00
service.py Block starting compute unless placement conf is provided 2017-01-27 16:35:09 -08:00
tag.py Added server tags controller 2016-04-06 16:37:22 +03:00
task_log.py Remove obj_relationships from objects 2015-10-30 00:22:23 +00:00
vcpu_model.py Untie subobject versions 2015-11-10 15:56:14 +00:00
virt_cpu_topology.py cleanup NovaObjectDictCompat from virt_cpu_topology 2015-08-05 08:56:30 +05:30
virt_device_metadata.py objects: vlan field to NetworkInterfaceMetadata object 2017-01-26 15:10:56 -05:00
virtual_interface.py Merge "trivial: comment about vif object address field" 2016-07-13 19:24:58 +00:00
volume_usage.py Add a VolumeUsage object 2015-08-23 18:45:38 +02:00