lib/judo/server.rb in judo-0.2.1 vs lib/judo/server.rb in judo-0.2.3

- old
+ new

@@ -313,11 +313,11 @@ def stop(force = false) invalid "not running" unless running? ## EC2 terminate_isntaces task("Terminating instance") { @base.ec2.terminate_instances([ instance_id ]) } force_detach_volumes if force - task("Wait for volumes to detach") { wait_for_volumes_detached } if volumes.size > 0 + wait_for_volumes_detached if volumes.size > 0 remove "instance_id" end def launch_ec2 # validate @@ -380,18 +380,22 @@ end end def wait_for_volumes_detached begin - Timeout::timeout(60) do - loop do - break if ec2_volumes.reject { |v| v[:aws_status] == "available" }.empty? - sleep 2 + task("Wait for volumes to detach") do + Timeout::timeout(60) do + loop do + break if ec2_volumes.reject { |v| v[:aws_status] == "available" }.empty? + sleep 2 + end end end rescue Timeout::Error + puts "failed!" force_detach_volumes + retry end end def wait_for_termination loop do @@ -461,33 +465,10 @@ wait_for_ssh system "chmod 600 #{group.keypair_file}" system "ssh -i #{group.keypair_file} #{config["user"]}@#{hostname}" end - def self.commit - ## FIXME - Config.group_dirs.each do |group_dir| - group = File.basename(group_dir) - next if Config.group and Config.group != group - puts "commiting #{group}" - doc = Config.couchdb.get(group) rescue {} - config = Config.read_config(group) - config['_id'] = group - config['_rev'] = doc['_rev'] if doc.has_key?('_rev') - response = Config.couchdb.save_doc(config) - doc = Config.couchdb.get(response['id']) - - # walk subdirs and save as _attachments - ['files', 'templates', 'packages', 'scripts'].each { |subdir| - Dir["#{group_dir}/#{subdir}/*"].each do |f| - puts "storing attachment #{f}" - doc.put_attachment("#{subdir}/#{File.basename(f)}", File.read(f)) - end - } - end - end - def ec2_instance_type ec2_instance[:aws_instance_type] rescue nil end def ip @@ -503,9 +484,10 @@ <<USER_DATA #!/bin/sh export DEBIAN_FRONTEND="noninteractive" export DEBIAN_PRIORITY="critical" +export JUDO_ID='#{name}' export SECRET='#{secret}' apt-get update apt-get install ruby rubygems ruby-dev irb libopenssl-ruby libreadline-ruby -y gem install kuzushi --no-rdoc --no-ri GEM_BIN=`ruby -r rubygems -e "puts Gem.bindir"`