Sha256: ecf7c5526a95b82c220f66a9675e58b9fb262a26c3c0494d50feefe1873781fb
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
require 'bosh/core/shell' module Bosh::Stemcell class StageRunner def initialize(options) @build_path = options.fetch(:build_path) @command_env = options.fetch(:command_env) @settings_file = options.fetch(:settings_file) @work_path = options.fetch(:work_path) end def configure_and_apply(stages) configure(stages) apply(stages) end def configure(stages) stages.each do |stage| stage_config_script = File.join(build_path, 'stages', stage.to_s, 'config.sh') puts "=== Configuring '#{stage}' stage ===" if File.exists?(stage_config_script) && File.executable?(stage_config_script) run_sudo_with_command_env("#{stage_config_script} #{settings_file}") end end end def apply(stages) stages.each do |stage| FileUtils.mkdir_p(work_path) puts "=== Applying '#{stage}' stage ===" puts "== Started #{Time.now.strftime('%a %b %e %H:%M:%S %Z %Y')} ==" stage_apply_script = File.join(build_path, 'stages', stage.to_s, 'apply.sh') run_sudo_with_command_env("#{stage_apply_script} #{work_path}") end end private attr_reader :stages, :build_path, :command_env, :settings_file, :work_path def run_sudo_with_command_env(command) shell = Bosh::Core::Shell.new shell.run("sudo #{command_env} #{command} 2>&1") end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
bosh-stemcell-1.2200.0 | lib/bosh/stemcell/stage_runner.rb |