...
No Format |
---|
#!/usr/bin/env ruby
# invoke with knife:
# knife exec state.rb
#
# also make sure ruby gem for amazon ec2 is installed e.g.: sudo gem install amazon-ec2
require 'rubygems'
require 'AWS'
ACCESS_KEY_ID = ENV['AMAZON_ACCESS_KEY_ID']
SECRET_ACCESS_KEY = ENV['AMAZON_SECRET_ACCESS_KEY']
ec2 = AWS::EC2::Base.new(:access_key_id => ACCESS_KEY_ID, :secret_access_key => SECRET_ACCESS_KEY)
amis = {}
ec2.describe_images(:owner_id => "self").imagesSet.item.each do |image|
name = image["name"]
if !name.nil?
m = name.match('CI\/EC2\/AMI\/(?:[^\/]+)\/(?:[^\/]+)\/TAG_hudson-cloud-(.+)(?:-)(.+)')
if !m.nil?
amis[image["imageId"]] = [(m[1].eql? "mifos-image") ? "mifos_2_1-bi_1_1-image" : m[1], m[2]]
end
end
end
mfis = {}
nodes.all { |n|
if n.name =~ /^i-/
mfi = n.override.tomcat.vhost
env = (mfi.start_with? "testing-") ? "test" : "prod"
mfi = mfi.match('(?:testing-){0}reporting-([^\/.]+).mifos.org')[1]
mfis[mfi + " " + env] = [mfi, env, amis[n.ec2.ami_id][0], amis[n.ec2.ami_id][1]]
end
}
printf("==============================================================\n")
printf("%-20s\t%-5s\t%-20s\t%s\n" % ["MFI", "ENV", "AMI", "BUILD"])
printf("==============================================================\n")
mfis.keys.sort.each { |mfi|
printf("%-20s\t%-5s\t%-20s\t%s\n" % [mfis[mfi][0],mfis[mfi][1],mfis[mfi][2],mfis[mfi][3]])
}
|
...