lib/aly/app.rb in aly-0.2.1 vs lib/aly/app.rb in aly-0.2.2
- old
+ new
@@ -21,11 +21,11 @@
send(options[:command], *options[:args], **options[:options])
end
def ecs(*args, **options)
raw_out = exec('ecs', 'DescribeInstances', '--pager', **options)
- selected = raw_out['Instances']['Instance'].each do |item|
+ 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
@@ -90,13 +90,13 @@
end
end
def slb(*args, **options)
raw_out = exec('slb', 'DescribeLoadBalancers', '--pager', **options)
- selected = raw_out['LoadBalancers']['LoadBalancer']
+ selected = raw_out['LoadBalancers']['LoadBalancer'] || []
- listeners = exec('slb', 'DescribeLoadBalancerListeners', '--pager', 'path=Listeners', **options)['Listeners'].each_with_object({}) do |listener, result|
+ listeners = (exec('slb', 'DescribeLoadBalancerListeners', '--pager', 'path=Listeners', **options)['Listeners'] || []).each_with_object({}) do |listener, result|
instance_id = listener['LoadBalancerId']
result[instance_id] ||= []
result[instance_id] << listener
end
@@ -154,11 +154,11 @@
def ecs_contains_host?(host)
@ecs.any? { |item| item['AllIPs'].include?(host) }
end
def show_slb(host, **options)
- @listeners ||= exec('slb', 'DescribeLoadBalancerListeners', '--pager', 'path=Listeners', **options)['Listeners']
+ @listeners ||= exec('slb', 'DescribeLoadBalancerListeners', '--pager', 'path=Listeners', **options)['Listeners'] || []
lb = @slb.find { |e| e['Address'] == host }
listeners = @listeners.select { |e| e['LoadBalancerId'] == lb['LoadBalancerId'] }
background_servers = exec('slb', 'DescribeLoadBalancerAttribute', "--LoadBalancerId=#{lb['LoadBalancerId']}", **options)['BackendServers']['BackendServer']
puts 'LoadBalancers:'
@@ -252,14 +252,14 @@
def eip_contains_host?(host)
@eip.any? { |eip| eip['IpAddress'] == host }
end
def show(*args, **options)
- @slb ||= exec('slb', 'DescribeLoadBalancers', '--pager', **options)['LoadBalancers']['LoadBalancer']
+ @slb ||= exec('slb', 'DescribeLoadBalancers', '--pager', **options)['LoadBalancers']['LoadBalancer'] || []
- @eip ||= exec('vpc', 'DescribeEipAddresses', '--PageSize=100', **options)['EipAddresses']['EipAddress']
+ @eip ||= exec('vpc', 'DescribeEipAddresses', '--PageSize=100', **options)['EipAddresses']['EipAddress'] || []
unless @ecs
- @ecs = exec('ecs', 'DescribeInstances', '--pager', **options)['Instances']['Instance']
+ @ecs = exec('ecs', 'DescribeInstances', '--pager', **options)['Instances']['Instance'] || []
@ecs.each do |item|
item['PrivateIP'] = (item['NetworkInterfaces']['NetworkInterface'] || []).map { |ni| ni['PrimaryIpAddress'] }
item['PublicIP'] = []
if ip = item['EipAddress']['IpAddress']
item['PublicIP'] << ip