Class: Kelbim::ELBWrapper::LoadBalancerCollection::LoadBalancer::ListenerCollection
- Inherits:
-
Object
- Object
- Kelbim::ELBWrapper::LoadBalancerCollection::LoadBalancer::ListenerCollection
- Includes:
- Logger::ClientHelper
- Defined in:
- lib/kelbim/wrapper/policy.rb,
lib/kelbim/wrapper/listener.rb,
lib/kelbim/wrapper/policy-collection.rb,
lib/kelbim/wrapper/listener-collection.rb
Defined Under Namespace
Classes: Listener
Class Method Summary collapse
Instance Method Summary collapse
- #create(dsl) ⇒ Object
- #each ⇒ Object
-
#initialize(listeners, load_balancer, options) ⇒ ListenerCollection
constructor
of class methods.
Methods included from Logger::ClientHelper
Constructor Details
#initialize(listeners, load_balancer, options) ⇒ ListenerCollection
of class methods
56 57 58 59 60 |
# File 'lib/kelbim/wrapper/listener-collection.rb', line 56 def initialize(listeners, load_balancer, ) @listeners = listeners @load_balancer = load_balancer @options = end |
Class Method Details
.create_listener_options(dsl, iam) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/kelbim/wrapper/listener-collection.rb', line 30 def (dsl, iam) lstnr_opts = { :protocol => dsl.protocol, :port => dsl.port, :instance_protocol => dsl.instance_protocol, :instance_port => dsl.instance_port, } if (ss_name = dsl.server_certificate) ss = iam.server_certificates[ss_name] unless ss raise "Can't find ServerCertificate: #{ss_name} in #{load_balancer.vpc_id || :classic} > #{@load_balancer.name}" end lstnr_opts[:server_certificate] = ss.arn end if dsl.ssl_certificate_id lstnr_opts[:ssl_certificate_id] = dsl.ssl_certificate_id end return lstnr_opts end |
.create_mock_listener(dsl, load_balancer) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# File 'lib/kelbim/wrapper/listener-collection.rb', line 9 def create_mock_listener(dsl, load_balancer) lstnr = OpenStruct.new({ :protocol => dsl.protocol, :port => dsl.port, :instance_protocol => dsl.instance_protocol, :instance_port => dsl.instance_port, :policies => [], # Listener作成時に同時にPolicyを作成することはできない :load_balancer => load_balancer, }) if dsl.server_certificate lstnr.server_certificate = OpenStruct.new(:name => dsl.server_certificate) end if dsl.ssl_certificate_id lstnr.ssl_certificate_id = dsl.ssl_certificate_id end return lstnr end |
Instance Method Details
#create(dsl) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/kelbim/wrapper/listener-collection.rb', line 68 def create(dsl) log_id = [[dsl.protocol, dsl.port], [dsl.instance_protocol, dsl.instance_port]].map {|i| i.inspect }.join(' => ') log_id = "#{@load_balancer.vpc_id || :classic} > #{@load_balancer.name} > #{log_id}" log(:info, 'Create Listener', :cyan, log_id) lstnr = nil if @options.dry_run lstnr = self.class.create_mock_listener(dsl, @load_balancer) else lstnr_opts = self.class.(dsl, @options.iam) # lstnr_optsは破壊的に更新される lstnr = @listeners.create(lstnr_opts.dup) @options.updated = true # XXX: 新規作成後、_descriptionはセットされない fix_new_listener(lstnr, lstnr_opts) end Listener.new(lstnr, @options) end |