def rsync_destination_container(app, gear, destination_container, destination_district_uuid, quota_blocks, quota_files, keep_uid)
reply = ResultIO.new
source_container = gear.container
orig_uid = gear.uid
unless keep_uid
gear.uid = destination_container.reserve_uid(destination_district_uuid)
log_debug "DEBUG: Reserved uid '#{gear.uid}' on district: '#{destination_district_uuid}'"
end
log_debug "DEBUG: Creating new account for gear '#{gear.name}' on #{destination_container.id}"
reply.append destination_container.create(app, gear, quota_blocks, quota_files)
log_debug "DEBUG: Moving content for app '#{app.name}', gear '#{gear.name}' to #{destination_container.id}"
rsync_keyfile = Rails.configuration.auth[:rsync_keyfile]
log_debug `eval \`ssh-agent\`; ssh-add #{rsync_keyfile}; ssh -o StrictHostKeyChecking=no -A root@#{source_container.get_ip_address} "rsync -aA#{(gear.uid && gear.uid == orig_uid) ? 'X' : ''} -e 'ssh -o StrictHostKeyChecking=no' /var/lib/openshift/#{gear.uuid}/ root@#{destination_container.get_ip_address}:/var/lib/openshift/#{gear.uuid}/"; ssh-agent -k`
if $?.exitstatus != 0
raise OpenShift::NodeException.new("Error moving app '#{app.name}', gear '#{gear.name}' from #{source_container.id} to #{destination_container.id}", 143)
end
reply
end