Sha256: afded74dbb064d27eb4dba15b9cc1d06e914bd14414814d7aeb09715c64c70d0
Contents?: true
Size: 1.5 KB
Versions: 17
Compression:
Stored size: 1.5 KB
Contents
#!/usr/bin/env ruby $:.unshift(File.join(File.dirname(__FILE__), "..", "lib")) require "poolparty" require "poolpartycl" o = PoolParty::Optioner.new(ARGV) do |opts, optioner| opts.on('-n name', '--name name', 'Update hosts for local pool named [name]') { |p| optioner.cloudname p } end o.loaded_clouds.each do |cloud| with_cloud(cloud) do vputs "Cloud: #{name}" new_hosts_listing = returning Array.new do |arr| puts list_of_running_instances list_of_running_instances.each do |ri| vputs ri.hosts_file_listing_for(self) arr << ri.hosts_file_listing_for(self) end other_clouds.each do |other| other.list_of_running_instances.each do |ri| vputs ri.hosts_file_listing_for(self) arr << ri.hosts_file_listing_for(self) end end end.join("\n") if testing puts new_hosts_listing else new_hosts_file = "#{Base.manifest_path}/classes/hosts.pp" arr = returning Array.new do |arr| new_hosts_listing.split(/\n/).each do |line| parts = line.split(/\t/).map {|a| a.chomp } ip,hostname,aliases = parts[0], parts[1], parts[2..-1] vputs "ip: #{ip} for #{hostname} as #{aliases}" h = PoolParty::Resources::Host.new(:name => hostname, :ip => Resolv::DNS.new.getaddress(ip).to_s, :alias => aliases) arr << h.to_string end end ::File.open(new_hosts_file, "w+") {|f| f << arr.join("\n") } end end end
Version data entries
17 entries across 17 versions & 2 rubygems