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