lib/supply_drop.rb in supply_drop-0.5.0 vs lib/supply_drop.rb in supply_drop-0.6.0
- old
+ new
@@ -5,11 +5,11 @@
Capistrano::Configuration.instance.load do
namespace :puppet do
set :puppet_source, '.'
set :puppet_destination, '/tmp/supply_drop'
set :puppet_command, 'puppet apply'
- set :puppet_lib, "#{puppet_destination}/modules"
+ set :puppet_lib, lambda { "#{puppet_destination}/modules" }
set :puppet_parameters, lambda { puppet_verbose ? '--debug --trace puppet.pp' : 'puppet.pp' }
set :puppet_verbose, false
set :puppet_excludes, %w(.git .svn)
set :puppet_stream_output, false
set :puppet_parallel_rsync, true
@@ -33,20 +33,22 @@
end
desc "pushes the current puppet configuration to the server"
task :update_code, :except => { :nopuppet => true } do
servers = SupplyDrop::Util.optionally_async(find_servers_for_task(current_task), puppet_parallel_rsync)
- servers.each do |server|
+ failed_servers = servers.map do |server|
rsync_cmd = SupplyDrop::Rsync.command(
puppet_source,
SupplyDrop::Rsync.remote_address(server.user || fetch(:user, ENV['USER']), server.host, puppet_destination),
:delete => true,
:excludes => puppet_excludes,
- :ssh => { :keys => ssh_options[:keys], :config => ssh_options[:config] }
+ :ssh => { :keys => ssh_options[:keys], :config => ssh_options[:config], :port => fetch(:port, nil) }
)
logger.debug rsync_cmd
- system rsync_cmd
- end
+ server.host unless system rsync_cmd
+ end.compact
+
+ raise "rsync failed on #{failed_servers.join(',')}" if failed_servers.any?
end
desc "runs puppet with --noop flag to show changes"
task :noop, :except => { :nopuppet => true } do
update_code