class Skalera::Services::Postgres

Constants

SERVICE_NAME

Public Class Methods

instance(database) click to toggle source
# File lib/skalera/services/postgres.rb, line 8
def self.instance(database)
  if ENV['SKALERA_DB_URL']
    url = ENV['SKALERA_DB_URL']
  else
    postgres_config = Diplomat::Service.get(SERVICE_NAME)

    uri = URI('postgres:/')
    uri.host = postgres_config.Address
    uri.port = postgres_config.ServicePort
    uri.user = key('user')
    uri.password = key('password')
    uri.path = "/#{database}"
    url = uri.to_s
  end

  db = ::Sequel.connect(url)
  at_exit { db.disconnect }
  db
rescue Diplomat::KeyNotFound
  STDERR.puts "ERROR: service not found: #{SERVICE_NAME}"
end
key(key) click to toggle source
# File lib/skalera/services/postgres.rb, line 30
def self.key(key)
  Diplomat.get("postgres/#{key}")
end