From 47aba89c95615858dd2e654a178acf46e0c0a688 Mon Sep 17 00:00:00 2001 From: Tomoyuki Sakurai Date: Tue, 4 Oct 2016 13:53:24 +0900 Subject: [PATCH 1/4] use '-o IdentityFile' instead of '-i' --- lib/kitchen/transport/rsync.rb | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/kitchen/transport/rsync.rb b/lib/kitchen/transport/rsync.rb index 302c3aa..d406f09 100644 --- a/lib/kitchen/transport/rsync.rb +++ b/lib/kitchen/transport/rsync.rb @@ -97,7 +97,11 @@ def ssh_args args += %W{ -o IdentitiesOnly=yes } if @options[:keys] args += %W{ -o LogLevel=#{@logger.debug? ? "VERBOSE" : "ERROR"} } args += %W{ -o ForwardAgent=#{options[:forward_agent] ? "yes" : "no"} } if @options.key? :forward_agent - Array(@options[:keys]).each { |ssh_key| args += %W{ -i #{ssh_key}} } + # use '-o IdentityFile=/path/to/file' instead of '-i' flag. + # this fixes an error that shows up with: + # 'ssh_percent_expand: unknown key %2' + # when the path to key includes '%'. + Array(@options[:keys]).each { |ssh_key| args += %W{ -o IdentityFile=#{ssh_key}} } args += %W{ -p #{@session.options[:port]}} end end From 25acca2891c9eb162f5baae4b03a56c1a1c23f4f Mon Sep 17 00:00:00 2001 From: Tomoyuki Sakurai Date: Tue, 4 Oct 2016 14:29:15 +0900 Subject: [PATCH 2/4] s/%/%%/ to escape '%' --- lib/kitchen/transport/rsync.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kitchen/transport/rsync.rb b/lib/kitchen/transport/rsync.rb index d406f09..bfef0f2 100644 --- a/lib/kitchen/transport/rsync.rb +++ b/lib/kitchen/transport/rsync.rb @@ -101,7 +101,7 @@ def ssh_args # this fixes an error that shows up with: # 'ssh_percent_expand: unknown key %2' # when the path to key includes '%'. - Array(@options[:keys]).each { |ssh_key| args += %W{ -o IdentityFile=#{ssh_key}} } + Array(@options[:keys]).each { |ssh_key| args += %W{ -o IdentityFile=#{ssh_key.gsub('%', '%%'} } } args += %W{ -p #{@session.options[:port]}} end end From d972505c5a59805c123993e4f2f3fe3d5b4dac2c Mon Sep 17 00:00:00 2001 From: Tomoyuki Sakurai Date: Tue, 4 Oct 2016 14:35:47 +0900 Subject: [PATCH 3/4] missing brace --- lib/kitchen/transport/rsync.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/kitchen/transport/rsync.rb b/lib/kitchen/transport/rsync.rb index bfef0f2..b54227f 100644 --- a/lib/kitchen/transport/rsync.rb +++ b/lib/kitchen/transport/rsync.rb @@ -101,7 +101,7 @@ def ssh_args # this fixes an error that shows up with: # 'ssh_percent_expand: unknown key %2' # when the path to key includes '%'. - Array(@options[:keys]).each { |ssh_key| args += %W{ -o IdentityFile=#{ssh_key.gsub('%', '%%'} } } + Array(@options[:keys]).each { |ssh_key| args += %W{ -o IdentityFile=#{ssh_key.gsub('%', '%%')} } } args += %W{ -p #{@session.options[:port]}} end end From bb1a3f665bb074051d9c14e3ab78a6227a371227 Mon Sep 17 00:00:00 2001 From: Tomoyuki Sakurai Date: Tue, 4 Oct 2016 15:16:21 +0900 Subject: [PATCH 4/4] fix format string bugs in rsync and sftp --- lib/kitchen/transport/rsync.rb | 2 +- lib/kitchen/transport/sftp.rb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/kitchen/transport/rsync.rb b/lib/kitchen/transport/rsync.rb index b54227f..03bd72c 100644 --- a/lib/kitchen/transport/rsync.rb +++ b/lib/kitchen/transport/rsync.rb @@ -56,7 +56,7 @@ def upload(locals, remote) time = Benchmark.realtime do ret << system(rsync_cmd) end - logger.info("[rsync] Time taken to upload #{rsync_candidates.join(';')} to #{self}:#{remote}: %.2f sec" % time) + logger.info("[rsync] Time taken to upload %s to %s:%s: %.2f sec" % [ rsync_candidates.join(';'), self, remote, time ]) unless ret.first logger.warn("[rsync] rsync exited with status #{$?.exitstatus}, using SCP instead") @rsync_failed = true diff --git a/lib/kitchen/transport/sftp.rb b/lib/kitchen/transport/sftp.rb index ff637c6..2d0472c 100644 --- a/lib/kitchen/transport/sftp.rb +++ b/lib/kitchen/transport/sftp.rb @@ -80,7 +80,7 @@ def upload(locals, remote) time = Benchmark.realtime do sftp_upload!(local, full_remote, options) end - logger.info("[SFTP] Time taken to upload #{local} to #{self}:#{full_remote}: %.2f sec" % time) + logger.info("[SFTP] Time taken to upload %s to %s:%s: %.2f sec" % [ local, self, full_remote, time]) end end