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.

Author:

Direct Known Subclasses

Dummy, Exec

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



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

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



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

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



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

def cache_directory; end

#create(state) ⇒ Object

Creates an instance.

Parameters:

  • state (Hash)

    mutable instance and driver state

Raises:



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

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:



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

def destroy(state); end

#doctor(state) ⇒ Object

Check system and configuration for common errors.

Parameters:

  • state (Hash)

    mutable instance and driver state



69
70
71
# File 'lib/kitchen/driver/base.rb', line 69

def doctor(state)
  false
end

#package(state) ⇒ Object

Package an instance.

Parameters:

  • state (Hash)

    mutable instance and driver state

Raises:



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

def package(state); end