Class: Kelbim::ELBWrapper::LoadBalancerCollection::LoadBalancer::ListenerCollection::Listener::PolicyCollection

Inherits:
Object
  • Object
show all
Includes:
Logger::ClientHelper
Defined in:
lib/kelbim/wrapper/policy.rb,
lib/kelbim/wrapper/policy-collection.rb

Defined Under Namespace

Classes: Policy

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logger::ClientHelper

#log

Constructor Details

#initialize(policies, listener, options) ⇒ PolicyCollection

of class methods



47
48
49
50
51
# File 'lib/kelbim/wrapper/policy-collection.rb', line 47

def initialize(policies, listener, options)
  @policies = policies
  @listener = listener
  @options = options
end

Class Method Details

.create_mock_policy(dsl, listener) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/kelbim/wrapper/policy-collection.rb', line 17

def create_mock_policy(dsl, listener)
  dsl_type, dsl_name_or_attrs = dsl
  policy_type = PolicyTypes.symbol_to_string(dsl_type)
  plcy = OpenStruct.new(:type => policy_type)

  if PolicyTypes.name?(dsl_name_or_attrs)
    plcy.name = dsl_name_or_attrs
    plcy.attribute = {'<new policy attribute name>' => ['<new policy attribute value>']}
  else
    plcy.name = create_policy_name(listener, policy_type).sub(/\w+-\w+-\w+-\w+-\w+\Z/, '...')
    plcy.attributes = PolicyTypes.unexpand(dsl_type, dsl_name_or_attrs)
  end

  return plcy
end

.create_policy_name(listener, policy_type) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/kelbim/wrapper/policy-collection.rb', line 33

def create_policy_name(listener, policy_type)
  [
    listener.load_balancer.vpc_id || :classic,
    listener.load_balancer.name,
    listener.protocol,
    listener.port,
    listener.instance_protocol,
    listener.instance_port,
    policy_type,
    UUID.new.generate,
  ].join('-').gsub(/\s/, '_')
end

Instance Method Details

#create(dsl) ⇒ Object



59
60
61
62
63
64
65
66
67
# File 'lib/kelbim/wrapper/policy-collection.rb', line 59

def create(dsl)
  dsl_type, dsl_name_or_attrs = dsl
  log_id = "#{@listener.load_balancer.vpc_id || :classic} > #{@listener.load_balancer.name} > #{PolicyTypes.symbol_to_string(dsl_type)}: "
  log_id += PolicyTypes.name?(dsl_name_or_attrs) ? dsl_name_or_attrs : dsl_name_or_attrs.inspect
  log(:info, 'Create Policy', :cyan, log_id)

  plcy = @options.dry_run ? self.class.create_mock_policy(dsl, @listener) : create_policy(dsl)
  Policy.new(plcy, @listener, @options)
end

#eachObject



53
54
55
56
57
# File 'lib/kelbim/wrapper/policy-collection.rb', line 53

def each
  @policies.each do |plcy|
    yield(Policy.new(plcy, @listener, @options))
  end
end