Class: Kitchen::Transport::Ssh
- Defined in:
- lib/kitchen/transport/ssh.rb
Overview
A Transport which uses the SSH protocol to execute commands and transfer files.
Defined Under Namespace
Classes: Connection
Instance Attribute Summary
Attributes included from Configurable
Instance Method Summary collapse
-
#cleanup! ⇒ void
Closes the connection, if it is still active.
-
#connection(state, &block) ⇒ Connection
Creates a new Connection, configured by a merging of configuration and state data.
- #finalize_config!(instance) ⇒ Object
Methods inherited from Base
#doctor, #initialize, kitchen_transport_api_version
Methods included from Logging
#banner, #debug, #error, #fatal, #info, #warn
Methods included from Configurable
#[], #bourne_shell?, #calculate_path, #config_keys, #diagnose, #diagnose_plugin, included, #name, #powershell_shell?, #remote_path_join, #unix_os?, #verify_dependencies, #windows_os?
Constructor Details
This class inherits a constructor from Kitchen::Transport::Base
Instance Method Details
#cleanup! ⇒ void
This method returns an undefined value.
Closes the connection, if it is still active.
102 103 104 105 106 107 108 |
# File 'lib/kitchen/transport/ssh.rb', line 102 def cleanup! if @connection logger.debug("[SSH] shutting previous connection #{@connection}") @connection.close @connection = = nil end end |
#connection(state, &block) ⇒ Connection
Creates a new Connection, configured by a merging of configuration and state data. Depending on the implementation, the Connection could be saved or cached to speed up multiple calls, given the same state hash as input.
rubocop:disable Lint/UnusedMethodArgument
91 92 93 94 95 96 97 98 99 |
# File 'lib/kitchen/transport/ssh.rb', line 91 def connection(state, &block) = (config.to_hash.merge(state)) if @connection && == reuse_connection(&block) else create_new_connection(, &block) end end |
#finalize_config!(instance) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/kitchen/transport/ssh.rb', line 75 def finalize_config!(instance) super # zlib was never a valid value and breaks in net-ssh >= 2.10 # TODO: remove these backwards compatiable casts in 2.0 case config[:compression] when "zlib" config[:compression] = "[email protected]" when "none" config[:compression] = false end self end |