Module: PuppetX::IntechWIFI::Declare_Environment_Resources::NatHelpers

Defined in:
lib/puppet_x/intechwifi/declare_environment_resources.rb

Class Method Summary collapse

Class Method Details

.CalculateNatDetails(name, network, zones) ⇒ Object



749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
# File 'lib/puppet_x/intechwifi/declare_environment_resources.rb', line 749

def self.CalculateNatDetails(name, network, zones)

  #  First we ensure we have an array of nat IP addresses (that may be zero long)
  (zones.has_key?('nat') ?
      (zones['nat']['nat_ipaddr'].kind_of?(Array) ?
          zones['nat']['nat_ipaddr'] : [ zones['nat']['nat_ipaddr'] ] ) :
      []).select.with_index{ |ipaddr, index|
    # Then we only select enough IP's for the availability zones.
    index < network['availability'].length
  }.map.with_index{|ipaddr, index|
    # Map into a hash, containing all the details of this nat.
    {
        :name => sprintf(ZoneHelpers.ZoneValue(zones['nat'], 'format'), {
            :vpc => name,
            :zone => 'nat',
            :az => network['availability'][index],
            :index => index.to_s,
        }),
        :az => network['availability'][index],
        :ip_addr => ipaddr
    }
  }
end