Sha256: 212f271bd565d49804e8777449d6455b2ad4dc1dad8436bc1ebb3295aff63247

Contents?: true

Size: 1016 Bytes

Versions: 6

Compression:

Stored size: 1016 Bytes

Contents

module Percheron
  class DockerConnection

    def initialize(config)
      @config = config
    end

    def setup!
      set_url!
      set_options!
    end

    private

      attr_reader :config

      def cert_path
        @cert_path ||= ENV['DOCKER_CERT_PATH'] ? File.expand_path(ENV['DOCKER_CERT_PATH']) : nil
      end

      def set_url!
        Docker.url = config.docker.host
      end

      def set_options!
        Docker.options = docker_options
      end

      def docker_options
        base_docker_options.merge(extra_docker_opts)
      end

      def base_docker_options
        {
          connect_timeout:  config.docker.timeout,
          scheme:          'https'
        }
      end

      def extra_docker_opts
        if cert_path
          {
            client_cert:  File.join(cert_path, 'cert.pem'),
            client_key:   File.join(cert_path, 'key.pem'),
            ssl_ca_file:  File.join(cert_path, 'ca.pem')
          }
        else
          {}
        end
      end

  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
percheron-0.3.1 lib/percheron/docker_connection.rb
percheron-0.3.0 lib/percheron/docker_connection.rb
percheron-0.2.4 lib/percheron/docker_connection.rb
percheron-0.2.3 lib/percheron/docker_connection.rb
percheron-0.2.2 lib/percheron/docker_connection.rb
percheron-0.2.1 lib/percheron/docker_connection.rb