Class: Management::Address::List
- Includes:
- Helper
- Defined in:
- lib/management/commands/address/list.rb
Instance Method Summary collapse
Methods included from Helper
#cloud, #config, #get_address, #get_env, #get_script, #get_server, #get_type, #live_servers, #system_verbose
Methods inherited from Command
all, #arg_list, #call_with, #command_name, #fn, #help_string, inherited, maxlen, #true_arity
Instance Method Details
#run ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# 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 |