module AwsClient class RdsWrapper < AwsClient::Wrapper def instance_by_database_name(database_name) return all_instances.select{|db_instance| db_instance.db_name == database_name }.first ## HACK. This needs fixing asap. 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) instance = instance_by_database_name(database_name) 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