Class: Kitchen::Transport::Base

Inherits:
Object
  • Object
show all
Includes:
Configurable, Logging
Defined in:
lib/kitchen/transport/base.rb

Overview

Base class for a transport.

Author:

Direct Known Subclasses

Dummy, Ssh, Winrm

Defined Under Namespace

Classes: Connection

Instance Attribute Summary

Attributes included from Configurable

#instance

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Logging

#banner, #debug, #error, #fatal, #info, #warn

Methods included from Configurable

#[], #bourne_shell?, #calculate_path, #config_keys, #diagnose, #diagnose_plugin, #finalize_config!, included, #name, #powershell_shell?, #remote_path_join, #unix_os?, #verify_dependencies, #windows_os?

Constructor Details

#initialize(config = {}) ⇒ Base

Create a new transport by providing a configuration hash.

Parameters:

  • config (Hash) (defaults to: {})

    initial provided configuration



52
53
54
# File 'lib/kitchen/transport/base.rb', line 52

def initialize(config = {})
  init_config(config)
end

Class Method Details

.kitchen_transport_api_version(version) ⇒ Object

Sets the API version for this transport. If the transport does not set this value, then nil will be used and reported.

Sets the API version for this transport

Examples:

setting an API version


module Kitchen
  module Transport
    class NewTransport < Kitchen::Transport::Base

      kitchen_transport_api_version 2

    end
  end
end

Parameters:

  • version (Integer, String)

    a version number



210
211
212
# File 'lib/kitchen/transport/base.rb', line 210

def self.kitchen_transport_api_version(version)
  @api_version = version
end

Instance Method Details

#cleanup!void

This method returns an undefined value.

Closes the connection, if it is still active.



72
73
74
# File 'lib/kitchen/transport/base.rb', line 72

def cleanup!
  # This method may be left unimplemented if that is applicable
end

#connection(state) ⇒ 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

Parameters:

  • state (Hash)

    mutable instance state

Returns:

  • (Connection)

    a connection for this transport

Raises:



65
66
67
# File 'lib/kitchen/transport/base.rb', line 65

def connection(state)
  raise ClientError, "#{self.class}#connection must be implemented"
end