lib/aly/app.rb in aly-0.1.0 vs lib/aly/app.rb in aly-0.1.1

- old
+ new

@@ -22,10 +22,11 @@ def ecs(*args, **options) raw_out = exec('ecs', 'DescribeInstances', '--pager') selected = raw_out['Instances']['Instance'].each do |item| item['PrivateIP'] = (item['NetworkInterfaces']['NetworkInterface'] || []).map { |ni| ni['PrimaryIpAddress'] }.join(', ') item['PublicIP'] = item['EipAddress']['IpAddress'] || '' + item['PublicIP'] = item['PublicIpAddress']['IpAddress'].join(', ') if item['PublicIP'] == '' end if query = args.first selected = selected.select do |item| item.values_at('InstanceId', 'InstanceName', 'PrivateIP', 'PublicIP').compact.any? { |e| e.include?(query) } @@ -106,21 +107,28 @@ if options['detail'] selected.each do |row| described_load_balancer_attributes = exec('slb', 'DescribeLoadBalancerAttribute', "--LoadBalancerId=#{row['LoadBalancerId']}") row['BackendServers'] = described_load_balancer_attributes['BackendServers']['BackendServer'] + + row['Listeners'].select { |e| e['VServerGroupId'] }.each do |listener| + vserver_group = exec('slb', 'DescribeVServerGroupAttribute', "--VServerGroupId=#{listener['VServerGroupId']}") + listener['VServerGroup'] = vserver_group + end end puts JSON.pretty_generate(selected) else selected = selected.map do |row| listeners = (row['Listeners'] || []).map do |listener| listener_port = listener['ListenerPort'] backend_port = listener['BackendServerPort'] if backend_port "#{listener_port}:#{backend_port}" - else forward_port = listener.dig('HTTPListenerConfig', 'ForwardPort') + elsif forward_port = listener.dig('HTTPListenerConfig', 'ForwardPort') "#{listener_port}->#{forward_port}" + elsif vserver_group_id = listener['VServerGroupId'] + "#{listener_port}->#{vserver_group_id}" end end.compact.join(', ') { Id: row['LoadBalancerId'],