Sha256: cbe39747298db00d9e42535310881d81d062478f13e79f7a7a91929a8a4d2338

Contents?: true

Size: 1.21 KB

Versions: 1

Compression:

Stored size: 1.21 KB

Contents

module AwsClient
  class RdsWrapper < AwsClient::Wrapper

    def instance_by_database_name(database_name, is_master = true)
      selector = is_master ? :last : :first  ## hacky - we need a much better way of targetting rds instances.
      return all_instances.select{|db_instance| db_instance.db_name == database_name }.send(selector)
    end

    def instance_data_by_vpc_id(vpc_id)
      return all_instances.select{|instance| instance.db_subnet_group.vpc_id = vpc_id }
    end

    def instance_endpoint(instance)
      return "UNDEFINED" if instance.nil?
      return instance.endpoint.address
    end

    def instance_endpoint_for_named_database(database_name, is_master = true)
      instance = instance_by_database_name(database_name, is_master)
      return instance_endpoint(instance)
    end

    def all_instances
      @all_instances ||= get_all_instances.collect{|raw_instance| raw_instance.db_instances.flatten }.flatten
    end

    def get_all_instances
      all_instances = []
      pages = client.describe_db_instances
      all_instances << pages.data
      while pages.next_page?
        pages = pages.next_page
        @all_instances << pages.data
      end
      return all_instances    
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
aws_client-0.1.1 lib/rds_wrapper.rb