class Kelbim::Exporter
Public Class Methods
export(elb, options = {})
click to toggle source
# File lib/kelbim/exporter.rb, line 6 def export(elb, options = {}) self.new(elb, options).export end
new(elb, options = {})
click to toggle source
# File lib/kelbim/exporter.rb, line 11 def initialize(elb, options = {}) @elb = elb @options = options end
Public Instance Methods
export()
click to toggle source
# File lib/kelbim/exporter.rb, line 16 def export result = {} lbs = @elb.load_balancers ec2s = @options[:ec2s] if ec2s or @options[:elb_name] or @options[:exclude_elb_name] lbs = lbs.select do |lb| (ec2s.nil? or ec2s.include?(lb.vpc_id || 'classic')) && matched_elb?(lb.name) end end lbs.each do |lb| result[lb.vpc_id] ||= {} result[lb.vpc_id][lb.name] = export_load_balancer(lb) end return result end
Private Instance Methods
export_listener(listener)
click to toggle source
# File lib/kelbim/exporter.rb, line 63 def export_listener(listener) { :protocol => listener.protocol, :port => listener.port, :instance_protocol => listener.instance_protocol, :instance_port => listener.instance_port, :server_certificate => listener.server_certificate, :policies => listener.policies.map {|i| export_policy(i) }, :ssl_certificate_id => listener.ssl_certificate_id, } end
export_load_balancer(load_balancer)
click to toggle source
# File lib/kelbim/exporter.rb, line 38 def export_load_balancer(load_balancer) attrs = { :instances => load_balancer.instances.map {|i| i.id }, :listeners => load_balancer.listeners.map {|i| export_listener(i) }, :health_check => load_balancer.health_check, :scheme => load_balancer.scheme, :dns_name => load_balancer.dns_name, :attributes => load_balancer.attributes, } if @options[:fetch_policies] and load_balancer.policies.first attrs[:policies] = h = {} load_balancer.policies.each {|i| h[i.name] = i.type } end if load_balancer.vpc_id attrs[:subnets] = load_balancer.subnets.map {|i| i.id } attrs[:security_groups] = load_balancer.security_groups.map {|i| i.name } else attrs[:availability_zones] = load_balancer.availability_zones.map {|i| i.name } end return attrs end
export_policy(policy)
click to toggle source
# File lib/kelbim/exporter.rb, line 75 def export_policy(policy) { :name => policy.name, :type => policy.type, :attributes => policy.attributes } end