aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/leap_cli/remote/plugin.rb20
1 files changed, 12 insertions, 8 deletions
diff --git a/lib/leap_cli/remote/plugin.rb b/lib/leap_cli/remote/plugin.rb
index 3fb5160..6b59727 100644
--- a/lib/leap_cli/remote/plugin.rb
+++ b/lib/leap_cli/remote/plugin.rb
@@ -18,21 +18,25 @@ module LeapCli; module Remote; module Plugin
def rsync_update
SupplyDrop::Util.thread_pool_size = puppet_parallel_rsync_pool_size
servers = SupplyDrop::Util.optionally_async(find_servers, puppet_parallel_rsync)
+
+ # rsync to each server
failed_servers = servers.map do |server|
- #p server
- #p server.options
+
# build rsync command
- _paths = yield server
- _source = _paths[:source]
- _user = server.user || fetch(:user, ENV['USER'])
- _dest = SupplyDrop::Rsync.remote_address(_user, server.host, _paths[:dest])
- _opts = {:ssh => ssh_options.merge(server.options[:ssh_options]||{})}
- rsync_cmd = SupplyDrop::Rsync.command(_source, _dest, _opts)
+ paths = yield server
+ remote_user = server.user || fetch(:user, ENV['USER'])
+ rsync_cmd = SupplyDrop::Rsync.command(
+ paths[:source],
+ SupplyDrop::Rsync.remote_address(remote_user, server.host, paths[:dest]),
+ {:ssh => ssh_options.merge(server.options[:ssh_options]||{})}
+ )
# run command
logger.debug rsync_cmd
server.host unless system rsync_cmd
+
end.compact
+
raise "rsync failed on #{failed_servers.join(',')}" if failed_servers.any?
end