def describe_load_balancers(options = {})
unless options.is_a?(Hash)
Fog::Logger.deprecation("describe_load_balancers with #{options.class} is deprecated, use all('LoadBalancerNames' => []) instead [light_black](#{caller.first})[/]")
options = { 'LoadBalancerNames' => [options].flatten }
end
lb_names = options['LoadBalancerNames'] || []
lb_names = [*lb_names]
load_balancers = if lb_names.any?
lb_names.map do |lb_name|
lb = self.data[:load_balancers].find { |name, data| name == lb_name }
raise Fog::AWS::ELB::NotFound unless lb
lb[1].dup
end.compact
else
self.data[:load_balancers].map { |lb, values| values.dup }
end
marker = options.fetch('Marker', 0).to_i
if load_balancers.count - marker > 400
next_marker = marker + 400
load_balancers = load_balancers[marker...next_marker]
else
next_marker = nil
end
response = Excon::Response.new
response.status = 200
response.body = {
'ResponseMetadata' => {
'RequestId' => Fog::AWS::Mock.request_id
},
'DescribeLoadBalancersResult' => {
'LoadBalancerDescriptions' => load_balancers.map do |lb|
lb['Instances'] = lb['Instances'].map { |i| i['InstanceId'] }
lb['Policies'] = lb['Policies'].reject { |name, policies| name == 'Proper' }
lb
end
}
}
if next_marker
response.body['DescribeLoadBalancersResult']['NextMarker'] = next_marker.to_s
end
response
end