# File lib/simp/cli/config/items/action/set_site_scenario_action.rb, line 18
    def apply
      @applied_status = :failed

      simp_scenario = get_item('cli::simp::scenario').value
      site_pp = File.join(@simp_environment_path, 'manifests', 'site.pp')
      if File.exists?(site_pp)
        backup_file = "#{site_pp}.#{@start_time.strftime('%Y%m%dT%H%M%S')}"
        debug( "Backing up #{site_pp} to #{backup_file}" )
        FileUtils.cp(site_pp, backup_file)
        group_id = File.stat(site_pp).gid
        File.chown(nil, group_id, backup_file)

        debug( "Updating $simp_scenario in #{site_pp}" )
        simp_scenario_line_found = false
        lines = IO.readlines(site_pp)
        File.open(site_pp, "w") do |f|
          lines.each do |line|
            line.chomp!
            if line =~ /^\$simp_scenario\s*=/
              simp_scenario_line_found = true
              f.puts "$simp_scenario = '#{simp_scenario}'"
            else
              f.puts line
            end
          end
        end
        if simp_scenario_line_found
          @applied_status = :succeeded
        else
          error( "\nERROR: $simp_scenario not found in #{site_pp}", [:RED] )
        end
      else
        error( "\nERROR: #{site_pp} not found", [:RED] )
      end
    end