Class: Chef::Provisioning::Transport
- Inherits:
-
Object
- Object
- Chef::Provisioning::Transport
- Defined in:
- lib/chef/provisioning/transport.rb,
lib/chef/provisioning/transport/ssh.rb,
lib/chef/provisioning/transport/winrm.rb
Defined Under Namespace
Constant Summary collapse
- DEFAULT_TIMEOUT =
15*60
Instance Method Summary collapse
- #available? ⇒ Boolean
-
#config ⇒ Object
Config hash, including :log_level and :logger as keys.
- #disconnect ⇒ Object
- #download_file(path, local_path) ⇒ Object
-
#execute(command, options = {}) ⇒ Object
Execute a program on the remote host.
- #make_url_available_to_remote(local_url) ⇒ Object
-
#read_file(path) ⇒ Object
TODO: make exceptions for these instead of just returning nil / silently failing.
- #upload_file(local_path, path) ⇒ Object
- #write_file(path, content) ⇒ Object
Instance Method Details
#available? ⇒ Boolean
53 54 55 |
# File 'lib/chef/provisioning/transport.rb', line 53 def available? raise "available? not overridden on #{self.class}" end |
#config ⇒ Object
Config hash, including :log_level and :logger as keys
58 59 60 |
# File 'lib/chef/provisioning/transport.rb', line 58 def config raise "config not overridden on #{self.class}" end |
#disconnect ⇒ Object
49 50 51 |
# File 'lib/chef/provisioning/transport.rb', line 49 def disconnect raise "disconnect not overridden on #{self.class}" end |
#download_file(path, local_path) ⇒ Object
37 38 39 |
# File 'lib/chef/provisioning/transport.rb', line 37 def download_file(path, local_path) IO.write(local_path, read_file(path)) end |
#execute(command, options = {}) ⇒ Object
Execute a program on the remote host.
Arguments
command: command to run. May be a shell-escaped string or a pre-split
array containing [PROGRAM, ARG1, ARG2, ...].
options: hash of options, including but not limited to:
:timeout => NUM_SECONDS - time to wait before program finishes
(throws an exception otherwise). Set to nil or 0 to
run with no timeout. Defaults to 15 minutes.
:stream => BOOLEAN - true to stream stdout and stderr to the console.
:stream => BLOCK - block to stream stdout and stderr to
(block.call(stdout_chunk, stderr_chunk))
:stream_stdout => FD - FD to stream stdout to (defaults to IO.stdout)
:stream_stderr => FD - FD to stream stderr to (defaults to IO.stderr)
:read_only => BOOLEAN - true if command is guaranteed not to
change system state (useful for Docker)
24 25 26 |
# File 'lib/chef/provisioning/transport.rb', line 24 def execute(command, = {}) raise "execute not overridden on #{self.class}" end |
#make_url_available_to_remote(local_url) ⇒ Object
45 46 47 |
# File 'lib/chef/provisioning/transport.rb', line 45 def make_url_available_to_remote(local_url) raise "make_url_available_to_remote not overridden on #{self.class}" end |
#read_file(path) ⇒ Object
TODO: make exceptions for these instead of just returning nil / silently failing
29 30 31 |
# File 'lib/chef/provisioning/transport.rb', line 29 def read_file(path) raise "read_file not overridden on #{self.class}" end |
#upload_file(local_path, path) ⇒ Object
41 42 43 |
# File 'lib/chef/provisioning/transport.rb', line 41 def upload_file(local_path, path) write_file(path, IO.read(local_path)) end |
#write_file(path, content) ⇒ Object
33 34 35 |
# File 'lib/chef/provisioning/transport.rb', line 33 def write_file(path, content) raise "write_file not overridden on #{self.class}" end |