Module: PuppetX::IntechWIFI::Declare_Environment_Resources::RdsHelpers

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

Class Method Summary collapse

Class Method Details

.CalculateNetworkRules(name, services, db_server_name, db_server_engine) ⇒ Object



648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
# File 'lib/puppet_x/intechwifi/declare_environment_resources.rb', line 648

def self.CalculateNetworkRules(name, services, db_server_name, db_server_engine)
  # First we need to find the port(s) to enable...
  ports = {
      'mysql' => [3306],
      'mariadb' =>  [3306],
      'oracle-se1' => [1525],
      'oracle-se2' => [1526],
      'oracle-se' => [1526],
      'oracle-ee' => [1526],
      'sqlserver-ee' => [1433],
      'sqlserver-se' => [1433],
      'sqlserver-ex' => [1433],
      'sqlserver-web' => [1433],
      'postgres' => [5432,5433],
      'aurora' => [3306],
  }[db_server_engine.nil? ? 'mysql' : db_server_engine]

    # Then we need the list of services that talk to this database.
    services.select{|service_name, service|
      service['network']['out'].flatten.any?{|rule|
        segments = rule.split('|')
        segments[2] == 'rds' and segments[3] == db_server_name
      }
    }.keys.map{|service_name|
      ports.map{|port| "tcp|#{port}|sg|#{ServiceHelpers.CalculateServiceSecurityGroupName(name, service_name)}"}
    }.flatten

end

.CalculateRdsZones(name, network, zones, db_servers) ⇒ Object



632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
# File 'lib/puppet_x/intechwifi/declare_environment_resources.rb', line 632

def self.CalculateRdsZones(name, network, zones, db_servers)
  # Get the zones needed for all database server declarations.
  zone_list = db_servers.keys.select{|s| db_servers[s].has_key?('zone') }.map{|s| db_servers[s]['zone']}

  # Add the default zone as well, if needed.
  zone_list << [
      'private',
      'nat',
      'public'
  ].select{ |zone|
    zones.has_key?(zone)
  }.first if db_servers.keys.select{|s| !db_servers[s].has_key?('zone') }.length > 0

  zone_list.flatten.uniq
end