diff options
Diffstat (limited to 'plugins')
-rwxr-xr-x | plugins/xenserver/xenapi/etc/xapi.d/plugins/migration | 18 |
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. |