Class: Kitchen::Driver::Base

Inherits:
Plugin::Base show all
Includes:
Configurable, Logging, ShellOut
Defined in:
lib/kitchen/driver/base.rb

Overview

Base class for a driver.

Direct Known Subclasses

Dummy, Exec, Proxy

Instance Attribute Summary

Attributes included from Configurable

#instance

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ShellOut

#run_command

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?

Methods inherited from Plugin::Base

no_parallel_for

Constructor Details

#initialize(config = {}) ⇒ Base

Creates a new Driver object using the provided configuration data which will be merged with any default configuration.

Parameters:

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

    provided driver configuration



34
35
36
# File 'lib/kitchen/driver/base.rb', line 34

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

Class Method Details

.kitchen_driver_api_version(version) ⇒ Object

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

Sets the API version for this driver

Examples:

setting an API version


module Kitchen
  module Driver
    class NewDriver < Kitchen::Driver::Base

      kitchen_driver_api_version 2

    end
  end
end

Parameters:

  • version (Integer, String)

    a version number



85
86
87
# File 'lib/kitchen/driver/base.rb', line 85

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

Instance Method Details

#cache_directoryObject

Cache directory that a driver could implement to inform the provisioner that it can leverage it internally



93
# File 'lib/kitchen/driver/base.rb', line 93

def cache_directory; end

#create(state) ⇒ Object

Creates an instance.

Parameters:

  • state (Hash)

    mutable instance and driver state

Raises:



42
43
44
# File 'lib/kitchen/driver/base.rb', line 42

def create(state) # rubocop:disable Lint/UnusedMethodArgument
  pre_create_command
end

#destroy(state) ⇒ Object

Destroys an instance.

Parameters:

  • state (Hash)

    mutable instance and driver state

Raises:



50
# File 'lib/kitchen/driver/base.rb', line 50

def destroy(state); end

#doctor(state) ⇒ Object

Check system and configuration for common errors.

Parameters:

  • state (Hash)

    mutable instance and driver state



62
63
64
# File 'lib/kitchen/driver/base.rb', line 62

def doctor(state)
  false
end

#package(state) ⇒ Object

Package an instance.

Parameters:

  • state (Hash)

    mutable instance and driver state

Raises:



56
# File 'lib/kitchen/driver/base.rb', line 56

def package(state); end