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
#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.
95 96 97 98 99 100 101 |
# File 'lib/kitchen/transport/ssh.rb', line 95 def cleanup! if @connection logger.debug("[SSH] shutting previous connection #{@connection}") @connection.close @connection = @connection_options = 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
84 85 86 87 88 89 90 91 92 |
# File 'lib/kitchen/transport/ssh.rb', line 84 def connection(state, &block) = (config.to_hash.merge(state)) if @connection && @connection_options == reuse_connection(&block) else create_new_connection(, &block) end end |
#finalize_config!(instance) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/kitchen/transport/ssh.rb', line 68 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 |