test/support/ec2_runner.rb in knife-solo-0.4.3 vs test/support/ec2_runner.rb in knife-solo-0.5.0

- old
+ new

@@ -40,22 +40,27 @@ logger.info "#{test.class} server (#{server.dns_name}) reported ready, trying to connect to ssh..." server.wait_for do `nc #{dns_name} 22 -w 1 -q 0 </dev/null` $?.success? end - logger.info "Sleeping 10s to avoid Net::SSH locking up by connecting too early..." - logger.info " (if you know a better way, please send me a note at https://github.com/matschaffer/knife-solo)" - # These may have better ways: - # http://rubydoc.info/gems/fog/Fog/Compute/AWS/Server:setup - # http://rubydoc.info/gems/knife-ec2/Chef/Knife/Ec2ServerCreate:tcp_test_ssh - sleep 10 + + unless server.tags["knife_solo_ssh_sleep_passed"] + logger.info "Sleeping 10s to avoid Net::SSH locking up by connecting too early..." + logger.info " (if you know a better way, please send me a note at https://github.com/matschaffer/knife-solo)" + # These may have better ways: + # http://rubydoc.info/gems/fog/Fog/Compute/AWS/Server:setup + # http://rubydoc.info/gems/knife-ec2/Chef/Knife/Ec2ServerCreate:tcp_test_ssh + sleep 10 + tag_as(:ssh_sleep_passed, server) + end + server end # Adds a knife_solo_prepared tag to the server so we can know not to re-prepare it - def tag_as_prepared(server) + def tag_as(state, server) compute.tags.create(resource_id: server.identity, - key: :knife_solo_prepared, + key: "knife_solo_#{state}", value: true) end # Cleans up all the servers tagged as knife solo servers for this user. # Specify SKIP_DESTROY environment variable to skip this step and leave servers