class Management::Address::List
Public Instance Methods
run()
click to toggle source
# File lib/management/commands/address/list.rb, line 11 def run() servers = live_servers cols = [ {size: 20, title: "IP", fn: ->(addr){ addr.public_ip } }, {size: 20, title: "Server", fn: ->(addr){ s = servers.find{|server| server.id == addr.server_id }; s ? s.name : "n/a" } }, {size: 30, title: "Name", fn: ->(addr){ a = config[:addresses].find{|k, v| v == addr.public_ip}; a ? a.first : "n/a" } }, {size: 15, title: "Status", fn: ->(addr){ s = servers.find{|server| server.id == addr.server_id }; s ? s.state : "n/a" } }, ] format = cols.map{|c| "%-#{c[:size]}s"}.join(" ") + "\n" send :printf, *([format].concat(cols.map{|c|c[:title]})) send :printf, *([format].concat(cols.map{|c|'-' * c[:size]})) cloud.addresses.each do |address| send :printf, *([format].concat(cols.map{|c|c[:fn].call address})) end end