Sha256: 98c16ac8bc0e5f6a0bf46fa8fd019f20de01b5b223d8e4521dfb4b75851600f0
Contents?: true
Size: 1.48 KB
Versions: 1
Compression:
Stored size: 1.48 KB
Contents
require 'singleton' require 'docker' module Percheron class Connection include Singleton # rubocop:disable Style/ClassVars def self.load!(config) @@config = config instance.setup! instance end # rubocop:enable Style/ClassVars def self.perform(klass, method, *args) instance.perform(klass, method, *args) end def perform(klass, method, *args) klass.public_send(method, *args) rescue => e $logger.debug '%s.%s(%s) - %s' % [ klass, method, args, e.inspect ] raise end def setup! set_url! set_options! end private def config @@config end def set_url! Docker.url = config.docker.host end def set_options! Excon.defaults[:ssl_verify_peer] = config.docker.ssl_verify_peer Docker.options = docker_options end def docker_options base_docker_options.merge(extra_docker_opts) end def base_docker_options { connect_timeout: config.docker.connect_timeout || 5, read_timeout: config.docker.read_timeout || 300 } end def extra_docker_opts return {} unless config.docker.cert_path { client_cert: cert_path_for('cert.pem'), client_key: cert_path_for('key.pem'), ssl_ca_file: cert_path_for('ca.pem') } end def cert_path_for(file) File.join(config.docker.cert_path, file) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
percheron-0.7.11 | lib/percheron/connection.rb |