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