def apply
@applied_status = :failed
enable_copy
if Dir.exists?(@dest_dir)
backup_dir = "#{::Utils.puppet_info[:environment_path]}.bak"
backup = File.join(backup_dir, "simp.#{@start_time.strftime('%Y%m%dT%H%M%S')}")
debug( "Backing up #{@dest_dir} to #{backup}" )
FileUtils.mkdir_p(backup_dir)
group_id = File.stat(::Utils.puppet_info[:environment_path]).gid
File.chown(nil, group_id, backup_dir)
FileUtils.mv(@dest_dir, backup)
end
simp_env_dir = File.join(@source_dir, 'environments', 'simp')
debug( "Copying SIMP environment installed at #{simp_env_dir} to \n" +
" #{File.dirname(@dest_dir)}" )
cmd = "#{@copy_script} --rpm_dir=#{simp_env_dir} --rpm_section='post' --rpm_status=1" +
" --target_dir='.'"
return unless show_wait_spinner {
execute(cmd)
}
modules_dir = File.join(@source_dir, 'modules')
debug( "Copying SIMP modules installed at #{modules_dir} to \n #{File.dirname(@dest_dir)}" )
module_list = Dir.glob(File.join(modules_dir, '*'))
module_list.sort.each do |module_dir|
debug( "Copying SIMP module #{File.basename(module_dir)} to \n #{File.dirname(@dest_dir)}")
cmd = "#{@copy_script} --rpm_dir=#{module_dir} --rpm_section='post' --rpm_status=1"
return unless show_wait_spinner {
execute(cmd)
}
end
@applied_status = :succeeded
end