summaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'plugins')
-rwxr-xr-xplugins/xenserver/xenapi/etc/xapi.d/plugins/migration18
1 files changed, 12 insertions, 6 deletions
diff --git a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
index bf5af304a9..4ffa9d3a00 100755
--- a/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
+++ b/plugins/xenserver/xenapi/etc/xapi.d/plugins/migration
@@ -36,15 +36,21 @@ def move_vhds_into_sr(session, instance_uuid, sr_path, uuid_stack):
def _rsync_vhds(instance_uuid, host, staging_path, user="root"):
- ssh_cmd = 'ssh -o StrictHostKeyChecking=no'
-
if not staging_path.endswith('/'):
staging_path += '/'
- dest_path = '%s@%s:/images/instance%s/' % (user, host, instance_uuid)
-
- rsync_cmd = ["/usr/bin/rsync", "-av", "--progress", "-e", ssh_cmd,
- staging_path, dest_path]
+ dest_path = '/images/instance%s/' % (instance_uuid)
+
+ ip_cmd = ["/sbin/ip", "addr", "show"]
+ output = utils.run_command(ip_cmd)
+ if ' %s/' % host in output:
+ # If copying to localhost, don't use SSH
+ rsync_cmd = ["/usr/bin/rsync", "-av", "--progress",
+ staging_path, dest_path]
+ else:
+ ssh_cmd = 'ssh -o StrictHostKeyChecking=no'
+ rsync_cmd = ["/usr/bin/rsync", "-av", "--progress", "-e", ssh_cmd,
+ staging_path, '%s@%s:%s' % (user, host, dest_path)]
# NOTE(hillad): rsync's progress is carriage returned, requiring
# universal_newlines for real-time output.