Class: Train::Transports::Docker::Connection
- Inherits:
-
BaseConnection
- Object
- BaseConnection
- Train::Transports::Docker::Connection
- Defined in:
- lib/train/transports/docker.rb
Defined Under Namespace
Classes: OS
Instance Method Summary collapse
- #close ⇒ Object
- #file(path) ⇒ Object
-
#initialize(conf) ⇒ Connection
constructor
A new instance of Connection.
- #os ⇒ Object
- #run_command(cmd) ⇒ Object
- #uri ⇒ Object
Constructor Details
#initialize(conf) ⇒ Connection
Returns a new instance of Connection.
58 59 60 61 62 63 64 65 66 |
# File 'lib/train/transports/docker.rb', line 58 def initialize(conf) super(conf) @id = [:host] @container = ::Docker::Container.get(@id) || fail("Can't find Docker container #{@id}") @cmd_wrapper = nil @cmd_wrapper = CommandWrapper.load(self, @options) self end |
Instance Method Details
#close ⇒ Object
68 69 70 |
# File 'lib/train/transports/docker.rb', line 68 def close # nothing to do at the moment end |
#file(path) ⇒ Object
76 77 78 |
# File 'lib/train/transports/docker.rb', line 76 def file(path) @files[path] ||= LinuxFile.new(self, path) end |
#os ⇒ Object
72 73 74 |
# File 'lib/train/transports/docker.rb', line 72 def os @os ||= OS.new(self) end |
#run_command(cmd) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/train/transports/docker.rb', line 80 def run_command(cmd) cmd = @cmd_wrapper.run(cmd) unless @cmd_wrapper.nil? stdout, stderr, exit_status = @container.exec( [ '/bin/sh', '-c', cmd ]) CommandResult.new(stdout.join, stderr.join, exit_status) rescue ::Docker::Error::DockerError => _ raise rescue => _ # @TODO: differentiate any other error raise end |
#uri ⇒ Object
94 95 96 97 98 99 100 |
# File 'lib/train/transports/docker.rb', line 94 def uri if @container.nil? "docker://#{@id}" else "docker://#{@container.id}" end end |