File migrate-uri.patch of Package openstack-nova

Index: nova/virt/libvirt/driver.py
===================================================================
--- nova/virt/libvirt/driver.py.orig
+++ nova/virt/libvirt/driver.py
@@ -37,6 +37,7 @@ import os
 import shutil
 import tempfile
 import time
+import urlparse
 import uuid
 
 import eventlet
@@ -839,7 +840,7 @@ class LibvirtDriver(driver.ComputeDriver
         return uri
 
     @staticmethod
-    def _live_migration_uri(dest):
+    def _live_migration_uri_template():
         # Only Xen and QEMU support live migration, see
         # https://libvirt.org/migration.html#scenarios for reference
         uris = {
@@ -851,8 +852,19 @@ class LibvirtDriver(driver.ComputeDriver
         uri = CONF.libvirt.live_migration_uri or uris.get(virt_type)
         if uri is None:
             raise exception.LiveMigrationURINotAvailable(virt_type=virt_type)
+        return uri
+
+    @staticmethod
+    def _live_migration_uri(dest):
+        uri = LibvirtDriver._live_migration_uri_template()
         return uri % dest
 
+    @staticmethod
+    def _migrate_uri(dest):
+        uri = LibvirtDriver._live_migration_uri_template()
+        netloc = urlparse.urlparse(uri).netloc % dest
+        return 'tcp://%s' % netloc
+
     def instance_exists(self, instance):
         """Efficient override of base instance_exists method."""
         try:
@@ -6058,6 +6070,7 @@ class LibvirtDriver(driver.ComputeDriver
                             'bandwidth': CONF.libvirt.live_migration_bandwidth,
                             'destination_xml': new_xml_str,
                             'migrate_disks': device_names,
+                            'migrate_uri': str(self._migrate_uri(dest)),
                         }
                         # NOTE(pkoniszewski): Because of precheck which blocks
                         # tunnelled block live migration with mapped volumes we
@@ -6078,7 +6091,7 @@ class LibvirtDriver(driver.ComputeDriver
                     else:
                         dom.migrateToURI2(
                             self._live_migration_uri(dest),
-                            None,
+                            self._migrate_uri(dest),
                             new_xml_str,
                             migration_flags,
                             None,
openSUSE Build Service is sponsored by