check_run_level_script

in cookbooks/aws-parallelcluster-test/libraries/helpers.rb [167:193]


def check_run_level_script(script_name, levels_on, levels_off)
  bash "check run level script #{script_name}" do
    cwd Chef::Config[:file_cache_path]
    code <<-TEST
      set -x
      set -o pipefail

      for level in 
        ls /etc/rc$level.d/ | egrep '^S[0-9]+#{script_name}$' > /dev/null
        [[ $? == 0 ]] || missing_levels_on="$missing_levels_on $level"
      done

      for level in 
        ls /etc/rc$level.d/ | egrep '^K[0-9]+#{script_name}$' > /dev/null
        [[ $? == 0 ]] || missing_levels_off="$missing_levels_off $level"
      done

      if [[ ! -z $missing_levels_on || ! -z $missing_levels_off ]]; then
        >&2 echo "Misconfigured run level script #{script_name}"
        >&2 echo "Expected levels on are (#{levels_on.join(' ')}). Missing levels on are ($missing_levels_on)"
        >&2 echo "Expected levels off are (#{levels_off.join(' ')}). Missing levels off are ($missing_levels_off)"
        exit 1
      fi
    TEST
  end
end