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'],