Class: Kitchen::Provisioner::CincBase

Inherits:
Base
  • Object
show all
Defined in:
lib/kitchen/provisioner/cinc_base.rb

Overview

Common implementation details for Cinc-related provisioners.

Author:

  • Cinc Project

Direct Known Subclasses

CincApply, CincInfra, CincSolo

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) ⇒ CincBase

Reads the local Chef::Config object (if present). We do this because we want to start bringing Cinc config and Cinc Workstation config closer together. For example, we want to configure proxy settings in 1 location instead of 3 configuration files.

Parameters:

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

    initial provided configuration



141
142
143
144
145
146
147
148
149
150
# File 'lib/kitchen/provisioner/cinc_base.rb', line 141

def initialize(config = {})
  super(config)

  if defined?(ChefConfig::WorkstationConfigLoader)
    ChefConfig::WorkstationConfigLoader.new(config[:config_path]).load
  end
  # This exports any proxy config present in the config to
  # appropriate environment variables, which Test Kitchen respects
  ChefConfig::Config.export_proxies if defined?(ChefConfig::Config.export_proxies)
end

Instance Method Details

#create_sandboxObject



153
154
155
156
157
# File 'lib/kitchen/provisioner/cinc_base.rb', line 153

def create_sandbox
  super
  sanity_check_sandbox_options!
  Cinc::CommonSandbox.new(config, sandbox_path, instance).populate
end

#init_commandObject



160
161
162
163
164
165
166
167
168
169
170
171
172
173
# File 'lib/kitchen/provisioner/cinc_base.rb', line 160

def init_command
  dirs = %w{
    cookbooks data data_bags environments roles clients
    encrypted_data_bag_secret
  }.sort.map { |dir| remote_path_join(config[:root_path], dir) }

  vars = if powershell_shell?
           init_command_vars_for_powershell(dirs)
         else
           init_command_vars_for_bourne(dirs)
         end

  prefix_command(shell_code_from_file(vars, "cinc_base_init_command"))
end

#install_commandObject



176
177
178
179
180
181
# File 'lib/kitchen/provisioner/cinc_base.rb', line 176

def install_command
  return unless config[:product_name]
  return if config[:install_strategy] == "skip"

  prefix_command(install_script_contents)
end