Module: Kitchen

Defined in:
lib/kitchen.rb,
lib/kitchen/cli.rb,
lib/kitchen/ssh.rb,
lib/kitchen/util.rb,
lib/kitchen/color.rb,
lib/kitchen/suite.rb,
lib/kitchen/busser.rb,
lib/kitchen/config.rb,
lib/kitchen/driver.rb,
lib/kitchen/errors.rb,
lib/kitchen/logger.rb,
lib/kitchen/command.rb,
lib/kitchen/logging.rb,
lib/kitchen/version.rb,
lib/kitchen/instance.rb,
lib/kitchen/platform.rb,
lib/kitchen/lazy_hash.rb,
lib/kitchen/shell_out.rb,
lib/kitchen/collection.rb,
lib/kitchen/diagnostic.rb,
lib/kitchen/rake_tasks.rb,
lib/kitchen/state_file.rb,
lib/kitchen/thor_tasks.rb,
lib/kitchen/data_munger.rb,
lib/kitchen/driver/base.rb,
lib/kitchen/loader/yaml.rb,
lib/kitchen/provisioner.rb,
lib/kitchen/command/list.rb,
lib/kitchen/command/sink.rb,
lib/kitchen/command/test.rb,
lib/kitchen/driver/dummy.rb,
lib/kitchen/driver/proxy.rb,
lib/kitchen/command/login.rb,
lib/kitchen/login_command.rb,
lib/kitchen/command/action.rb,
lib/kitchen/generator/init.rb,
lib/kitchen/command/console.rb,
lib/kitchen/driver/ssh_base.rb,
lib/kitchen/command/diagnose.rb,
lib/kitchen/metadata_chopper.rb,
lib/kitchen/provisioner/base.rb,
lib/kitchen/provisioner/dummy.rb,
lib/kitchen/provisioner/shell.rb,
lib/kitchen/provisioner/chef_base.rb,
lib/kitchen/provisioner/chef_solo.rb,
lib/kitchen/provisioner/chef_zero.rb,
lib/kitchen/command/driver_discover.rb,
lib/kitchen/generator/driver_create.rb,
lib/kitchen/provisioner/chef/berkshelf.rb,
lib/kitchen/provisioner/chef/librarian.rb

Overview

Author:: Fletcher Nichol ([email protected])

Copyright (C) 2012, Fletcher Nichol

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Defined Under Namespace

Modules: Color, Command, Driver, Error, Generator, Loader, Logging, Provisioner, ShellOut, Util Classes: ActionFailed, Busser, CLI, ClientError, Collection, Config, DataMunger, Diagnostic, Instance, InstanceFailure, LazyHash, Logger, LoginCommand, MetadataChopper, Platform, RakeTasks, SSH, SSHFailed, StandardError, StateFile, StateFileLoadError, Suite, ThorTasks, TransientFailure, UserError

Constant Summary collapse

DEFAULT_LOG_LEVEL =

Default log level verbosity

:info
DEFAULT_TEST_DIR =
"test/integration".freeze
DEFAULT_LOG_DIR =
".kitchen/logs".freeze
VERSION =
"1.2.1"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.crashesObject

Returns the value of attribute crashes.



56
57
58
# File 'lib/kitchen.rb', line 56

def crashes
  @crashes
end

.loggerObject

Returns the value of attribute logger.



55
56
57
# File 'lib/kitchen.rb', line 55

def logger
  @logger
end

.mutexObject

Returns the value of attribute mutex.



57
58
59
# File 'lib/kitchen.rb', line 57

def mutex
  @mutex
end

Class Method Details

.crashes?Boolean

Returns:

  • (Boolean)


66
67
68
# File 'lib/kitchen.rb', line 66

def crashes?
  ! crashes.empty?
end

.default_file_loggerObject



74
75
76
77
# File 'lib/kitchen.rb', line 74

def default_file_logger
  logfile = File.expand_path(File.join(".kitchen", "logs", "kitchen.log"))
  Logger.new(:stdout => STDOUT, :logdev => logfile, :level => env_log)
end

.default_loggerObject



70
71
72
# File 'lib/kitchen.rb', line 70

def default_logger
  Logger.new(:stdout => STDOUT, :level => env_log)
end

.source_rootPathname

Returns the root path of the Kitchen gem source code.

Returns:

  • (Pathname)

    root path of gem



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

def source_root
  @source_root ||= Pathname.new(File.expand_path('../../', __FILE__))
end

.with_friendly_errorsObject



80
81
82
83
84
85
86
87
88
89
90
91
92
# File 'lib/kitchen/errors.rb', line 80

def self.with_friendly_errors
  yield
rescue Kitchen::InstanceFailure => e
  Kitchen.mutex.synchronize do
    handle_instance_failure(e)
  end
  exit 10
rescue Kitchen::Error => e
  Kitchen.mutex.synchronize do
    handle_error(e)
  end
  exit 20
end