in lib/taste_tester/host.rb [338:429]
def config
scheme = TasteTester::Config.use_ssl ? 'https' : 'http'
if TasteTester::Config.use_ssh_tunnels
url = "#{scheme}://localhost:#{@tunnel.port}"
else
url = +"#{scheme}://#{@server.host}"
url << ":#{TasteTester::State.port}" if TasteTester::State.port
end
ttconfig = <<~ENDOFSCRIPT
if Process.euid != 0
puts 'Please run chef as root!'
Process.exit!
end
log_level :info
log_location STDOUT
ssl_verify_mode :verify_none
ohai.plugin_path << File.join('#{TasteTester::Config.chef_config_path}', 'ohai_plugins')
ENDOFSCRIPT
if TasteTester::Config.bundle
ttconfig += <<~ENDOFSCRIPT
taste_tester_dest = File.join(Dir.tmpdir, 'taste-tester')
puts 'INFO: Downloading bundle from #{url}...'
FileUtils.rmtree(taste_tester_dest)
FileUtils.mkpath(taste_tester_dest)
FileUtils.touch(File.join(taste_tester_dest, 'chefignore'))
uri = URI.parse('#{url}/file_store/tt.tgz')
Net::HTTP.start(
uri.host,
uri.port,
:use_ssl =>
:verify_mode => OpenSSL::SSL::VERIFY_NONE,
) do |http|
http.request_get(uri) do |response|
stream = Zlib::GzipReader.new(StringIO.new(response.body))
Gem::Package::TarReader.new(stream).each do |e|
dest = File.join(taste_tester_dest, e.full_name)
FileUtils.mkpath(File.dirname(dest))
if e.symlink?
File.symlink(e.header.linkname, dest)
else
File.open(dest, 'wb+') do |f|
f.write(e.read)
end
end
end
end
end
puts 'INFO: Download complete'
solo true
local_mode true
ENDOFSCRIPT
else
ttconfig += <<~ENDOFSCRIPT
chef_server_url '#{url}'
ENDOFSCRIPT
end
extra = TasteTester::Hooks.test_remote_client_rb_extra_code(@name)
if extra
ttconfig += <<~ENDOFSCRIPT
ENDOFSCRIPT
end
ttconfig += <<~ENDOFSCRIPT
puts 'INFO: Running on #{@name} in taste-tester by #{@user}'
ENDOFSCRIPT
if TasteTester::Config.bundle
ttconfig += <<~ENDOFSCRIPT
chef_repo_path taste_tester_dest
ENDOFSCRIPT
end
ttconfig
end