Class: Docker::Connection
- Inherits:
-
Object
- Object
- Docker::Connection
- Includes:
- Error
- Defined in:
- lib/docker/connection.rb
Overview
This class represents a Connection to a Docker server. The Connection is immutable in that once the url and options is set they cannot be changed.
Instance Attribute Summary collapse
-
#options ⇒ Object
readonly
Returns the value of attribute options.
-
#url ⇒ Object
readonly
Returns the value of attribute url.
Instance Method Summary collapse
-
#initialize(url, opts) ⇒ Connection
constructor
Create a new Connection.
-
#request(*args, &block) ⇒ Object
Send a request to the server with the ‘.
- #to_s ⇒ Object
Constructor Details
#initialize(url, opts) ⇒ Connection
Create a new Connection. This method takes a url (String) and options (Hash). These are passed to Excon, so any options valid for Excon.new can be passed here.
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/docker/connection.rb', line 11 def initialize(url, opts) case when !url.is_a?(String) raise ArgumentError, "Expected a String, got: '#{url}'" when !opts.is_a?(Hash) raise ArgumentError, "Expected a Hash, got: '#{opts}'" else uri = URI.parse(url) if uri.scheme == "unix" @url, @options = 'unix:///', {:socket => uri.path}.merge(opts) else @url, @options = url, opts end end end |
Instance Attribute Details
#options ⇒ Object (readonly)
Returns the value of attribute options.
6 7 8 |
# File 'lib/docker/connection.rb', line 6 def @options end |
#url ⇒ Object (readonly)
Returns the value of attribute url.
6 7 8 |
# File 'lib/docker/connection.rb', line 6 def url @url end |
Instance Method Details
#request(*args, &block) ⇒ Object
Send a request to the server with the ‘
35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/docker/connection.rb', line 35 def request(*args, &block) request = compile_request_params(*args, &block) if Docker.logger Docker.logger.debug( [request[:method], request[:path], request[:query], request[:body]] ) end resource.request(request).body rescue Excon::Errors::BadRequest => ex raise ClientError, ex. rescue Excon::Errors::Unauthorized => ex raise UnauthorizedError, ex. rescue Excon::Errors::NotFound => ex raise NotFoundError, ex. rescue Excon::Errors::InternalServerError => ex raise ServerError, ex. rescue Excon::Errors::Timeout => ex raise TimeoutError, ex. end |
#to_s ⇒ Object
60 61 62 |
# File 'lib/docker/connection.rb', line 60 def to_s "Docker::Connection { :url => #{url}, :options => #{} }" end |