#!/bin/bash
#
# Copyright 2014 Red Hat, Inc.
#
# NAME
#     lab-processes - grading script for RH124 processes lab
#
# SYNOPSIS
#     lab-processes {setup|grade}
#
#        setup - perform configuration adjustments to the system
#        grade - perform evaluation steps to the system
#
#     This script only works on serverX.example.com.
#
# DESCRIPTION
#     This script, based on singular argument, either does setup or
#     grading for the processes lab.
#
# CHANGELOG
#   * Mon Mar 17 2014 Philip Sweany <psweany@gmail.com>
#   - original code

# Initialize and set some variables
MYHOST=""
CMD=""
DEBUG='true'
RUN_AS_ROOT='true'

# Source library of functions
source /usr/local/bin/labtool.shlib
trap on_exit EXIT

# Additional functions for this shell script
function print_usage {
  local problem_name=$(basename $0 | sed -e 's/^lab-//')
  cat << EOF
This script controls the setup and grading of this lab.
Usage: lab ${problem_name} COMMAND
       lab ${problem_name} -h|--help
COMMAND is one of:
    setup - perform any setup steps for this lab on this machine
    grade - perform any grading steps and report on this machine
EOF
}

function lab_setup {
    VMNAME=$1
    case $VMNAME in
        desktop)
            print_FAIL && echo "The setup script needs to be run on server"
            ;;
        server)
	    if [[ ! -x /usr/local/bin/elephant ]] ; then
	      base64 -d > /usr/local/bin/elephant <<EOF
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
AAAAAAAAAAAUAAAAAAAAAAF6UgABeBABGwwHCJABAAAkAAAAHAAAACj9//9gAAAAAA4QRg4YSg8L
dwiAAD8aOyozJCIAAAAAHAAAAEQAAABQ/v//ZwAAAABBDhCGAkMNBgJiDAcIAABEAAAAZAAAAKD+
//9lAAAAAEIOEI8CRQ4YjgNFDiCNBEUOKIwFSA4whgZIDjiDB00OQGwOOEEOMEEOKEIOIEIOGEIO
EEIOCAAUAAAArAAAAMj+//8CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAkAVAAAAAAABwBUAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAwAAAAAAAAA
UARAAAAAAAANAAAAAAAAAKQGQAAAAAAAGQAAAAAAAAAQDmAAAAAAABsAAAAAAAAACAAAAAAAAAAa
AAAAAAAAABgOYAAAAAAAHAAAAAAAAAAIAAAAAAAAAPX+/28AAAAAmAJAAAAAAAAFAAAAAAAAAEgD
QAAAAAAABgAAAAAAAAC4AkAAAAAAAAoAAAAAAAAASgAAAAAAAAALAAAAAAAAABgAAAAAAAAAFQAA
AAAAAAAAAAAAAAAAAAMAAAAAAAAAABBgAAAAAAACAAAAAAAAAHgAAAAAAAAAFAAAAAAAAAAHAAAA
AAAAABcAAAAAAAAA2ANAAAAAAAAHAAAAAAAAAMADQAAAAAAACAAAAAAAAAAYAAAAAAAAAAkAAAAA
AAAAGAAAAAAAAAD+//9vAAAAAKADQAAAAAAA////bwAAAAABAAAAAAAAAPD//28AAAAAkgNAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgOYAAAAAAA
AAAAAAAAAAAAAAAAAAAAAIYEQAAAAAAAlgRAAAAAAACmBEAAAAAAALYEQAAAAAAAxgRAAAAAAAAA
AAAAR0NDOiAoR05VKSA0LjguMiAyMDE0MDEyMCAoUmVkIEhhdCA0LjguMi0xMikAR0NDOiAoR05V
KSA0LjguMiAyMDE0MDEyMCAoUmVkIEhhdCA0LjguMi0xMykAAC5zeW10YWIALnN0cnRhYgAuc2hz
dHJ0YWIALmludGVycAAubm90ZS5BQkktdGFnAC5ub3RlLmdudS5idWlsZC1pZAAuZ251Lmhhc2gA
LmR5bnN5bQAuZHluc3RyAC5nbnUudmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsYS5keW4ALnJl
bGEucGx0AC5pbml0AC50ZXh0AC5maW5pAC5yb2RhdGEALmVoX2ZyYW1lX2hkcgAuZWhfZnJhbWUA
LmluaXRfYXJyYXkALmZpbmlfYXJyYXkALmpjcgAuZHluYW1pYwAuZ290AC5nb3QucGx0AC5kYXRh
AC5ic3MALmNvbW1lbnQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAAEAAAACAAAAAAAAADgCQAAAAAAAOAIAAAAAAAAc
AAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACMAAAAHAAAAAgAAAAAAAABUAkAAAAAAAFQC
AAAAAAAAIAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAxAAAABwAAAAIAAAAAAAAAdAJA
AAAAAAB0AgAAAAAAACQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAPb//28CAAAA
AAAAAJgCQAAAAAAAmAIAAAAAAAAcAAAAAAAAAAUAAAAAAAAACAAAAAAAAAAAAAAAAAAAAE4AAAAL
AAAAAgAAAAAAAAC4AkAAAAAAALgCAAAAAAAAkAAAAAAAAAAGAAAAAQAAAAgAAAAAAAAAGAAAAAAA
AABWAAAAAwAAAAIAAAAAAAAASANAAAAAAABIAwAAAAAAAEoAAAAAAAAAAAAAAAAAAAABAAAAAAAA
AAAAAAAAAAAAXgAAAP///28CAAAAAAAAAJIDQAAAAAAAkgMAAAAAAAAMAAAAAAAAAAUAAAAAAAAA
AgAAAAAAAAACAAAAAAAAAGsAAAD+//9vAgAAAAAAAACgA0AAAAAAAKADAAAAAAAAIAAAAAAAAAAG
AAAAAQAAAAgAAAAAAAAAAAAAAAAAAAB6AAAABAAAAAIAAAAAAAAAwANAAAAAAADAAwAAAAAAABgA
AAAAAAAABQAAAAAAAAAIAAAAAAAAABgAAAAAAAAAhAAAAAQAAAACAAAAAAAAANgDQAAAAAAA2AMA
AAAAAAB4AAAAAAAAAAUAAAAMAAAACAAAAAAAAAAYAAAAAAAAAI4AAAABAAAABgAAAAAAAABQBEAA
AAAAAFAEAAAAAAAAGgAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAACJAAAAAQAAAAYAAAAA
AAAAcARAAAAAAABwBAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAlAAAAAEA
AAAGAAAAAAAAANAEQAAAAAAA0AQAAAAAAADUAQAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAA
AJoAAAABAAAABgAAAAAAAACkBkAAAAAAAKQGAAAAAAAACQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA
AAAAAAAAAACgAAAAAQAAAAIAAAAAAAAAsAZAAAAAAACwBgAAAAAAABAAAAAAAAAAAAAAAAAAAAAI
AAAAAAAAAAAAAAAAAAAAqAAAAAEAAAACAAAAAAAAAMAGQAAAAAAAwAYAAAAAAAA0AAAAAAAAAAAA
AAAAAAAABAAAAAAAAAAAAAAAAAAAALYAAAABAAAAAgAAAAAAAAD4BkAAAAAAAPgGAAAAAAAA9AAA
AAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAADAAAAADgAAAAMAAAAAAAAAEA5gAAAAAAAQDgAA
AAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAzAAAAA8AAAADAAAAAAAAABgOYAAA
AAAAGA4AAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAANgAAAABAAAAAwAAAAAA
AAAgDmAAAAAAACAOAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAADdAAAABgAA
AAMAAAAAAAAAKA5gAAAAAAAoDgAAAAAAANABAAAAAAAABgAAAAAAAAAIAAAAAAAAABAAAAAAAAAA
5gAAAAEAAAADAAAAAAAAAPgPYAAAAAAA+A8AAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAI
AAAAAAAAAOsAAAABAAAAAwAAAAAAAAAAEGAAAAAAAAAQAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAgA
AAAAAAAACAAAAAAAAAD0AAAAAQAAAAMAAAAAAAAAQBBgAAAAAABAEAAAAAAAAAQAAAAAAAAAAAAA
AAAAAAAEAAAAAAAAAAAAAAAAAAAA+gAAAAgAAAADAAAAAAAAAEQQYAAAAAAARBAAAAAAAAAEAAAA
AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAP8AAAABAAAAMAAAAAAAAAAAAAAAAAAAAEQQAAAA
AAAAWgAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAARAAAAAwAAAAAAAAAAAAAAAAAAAAAA
AACeEAAAAAAAAAgBAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAAAA
AAAAAAAAAAAAKBkAAAAAAABIBgAAAAAAAB0AAAAtAAAACAAAAAAAAAAYAAAAAAAAAAkAAAADAAAA
AAAAAAAAAAAAAAAAAAAAAHAfAAAAAAAAYQIAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwABADgCQAAAAAAAAAAAAAAAAAAAAAAAAwACAFQC
QAAAAAAAAAAAAAAAAAAAAAAAAwADAHQCQAAAAAAAAAAAAAAAAAAAAAAAAwAEAJgCQAAAAAAAAAAA
AAAAAAAAAAAAAwAFALgCQAAAAAAAAAAAAAAAAAAAAAAAAwAGAEgDQAAAAAAAAAAAAAAAAAAAAAAA
AwAHAJIDQAAAAAAAAAAAAAAAAAAAAAAAAwAIAKADQAAAAAAAAAAAAAAAAAAAAAAAAwAJAMADQAAA
AAAAAAAAAAAAAAAAAAAAAwAKANgDQAAAAAAAAAAAAAAAAAAAAAAAAwALAFAEQAAAAAAAAAAAAAAA
AAAAAAAAAwAMAHAEQAAAAAAAAAAAAAAAAAAAAAAAAwANANAEQAAAAAAAAAAAAAAAAAAAAAAAAwAO
AKQGQAAAAAAAAAAAAAAAAAAAAAAAAwAPALAGQAAAAAAAAAAAAAAAAAAAAAAAAwAQAMAGQAAAAAAA
AAAAAAAAAAAAAAAAAwARAPgGQAAAAAAAAAAAAAAAAAAAAAAAAwASABAOYAAAAAAAAAAAAAAAAAAA
AAAAAwATABgOYAAAAAAAAAAAAAAAAAAAAAAAAwAUACAOYAAAAAAAAAAAAAAAAAAAAAAAAwAVACgO
YAAAAAAAAAAAAAAAAAAAAAAAAwAWAPgPYAAAAAAAAAAAAAAAAAAAAAAAAwAXAAAQYAAAAAAAAAAA
AAAAAAAAAAAAAwAYAEAQYAAAAAAAAAAAAAAAAAAAAAAAAwAZAEQQYAAAAAAAAAAAAAAAAAAAAAAA
AwAaAAAAAAAAAAAAAAAAAAAAAAABAAAABADx/wAAAAAAAAAAAAAAAAAAAAAMAAAAAQAUACAOYAAA
AAAAAAAAAAAAAAAZAAAAAgANAAAFQAAAAAAAAAAAAAAAAAAuAAAAAgANADAFQAAAAAAAAAAAAAAA
AABBAAAAAgANAHAFQAAAAAAAAAAAAAAAAABXAAAAAQAZAEQQYAAAAAAAAQAAAAAAAABmAAAAAQAT
ABgOYAAAAAAAAAAAAAAAAACNAAAAAgANAJAFQAAAAAAAAAAAAAAAAACZAAAAAQASABAOYAAAAAAA
AAAAAAAAAAC4AAAABADx/wAAAAAAAAAAAAAAAAAAAAABAAAABADx/wAAAAAAAAAAAAAAAAAAAADD
AAAAAQARAOgHQAAAAAAAAAAAAAAAAADRAAAAAQAUACAOYAAAAAAAAAAAAAAAAAAAAAAABADx/wAA
AAAAAAAAAAAAAAAAAADdAAAAAAASABgOYAAAAAAAAAAAAAAAAADuAAAAAQAVACgOYAAAAAAAAAAA
AAAAAAD3AAAAAAASABAOYAAAAAAAAAAAAAAAAAAKAQAAAQAXAAAQYAAAAAAAAAAAAAAAAAAgAQAA
EgANAKAGQAAAAAAAAgAAAAAAAAAwAQAAIAAAAAAAAAAAAAAAAAAAAAAAAABMAQAAIAAYAEAQYAAA
AAAAAAAAAAAAAABXAQAAEAAYAEQQYAAAAAAAAAAAAAAAAABeAQAAEgAOAKQGQAAAAAAAAAAAAAAA
AABkAQAAEgAAAAAAAAAAAAAAAAAAAAAAAACDAQAAEAAYAEAQYAAAAAAAAAAAAAAAAACQAQAAIAAA
AAAAAAAAAAAAAAAAAAAAAACfAQAAEQIPALgGQAAAAAAAAAAAAAAAAACsAQAAEQAPALAGQAAAAAAA
BAAAAAAAAAC7AQAAEgANADAGQAAAAAAAZQAAAAAAAADLAQAAEgAAAAAAAAAAAAAAAAAAAAAAAADf
AQAAEAAZAEgQYAAAAAAAAAAAAAAAAADkAQAAEgANANAEQAAAAAAAAAAAAAAAAADrAQAAEAAZAEQQ
YAAAAAAAAAAAAAAAAAD3AQAAEgANAMAFQAAAAAAAZwAAAAAAAAD8AQAAIAAAAAAAAAAAAAAAAAAA
AAAAAAAQAgAAEQIYAEgQYAAAAAAAAAAAAAAAAAAcAgAAIAAAAAAAAAAAAAAAAAAAAAAAAAA2AgAA
EgAAAAAAAAAAAAAAAAAAAAAAAABJAgAAEgALAFAEQAAAAAAAAAAAAAAAAABPAgAAEgAAAAAAAAAA
AAAAAAAAAAAAAAAAY3J0c3R1ZmYuYwBfX0pDUl9MSVNUX18AZGVyZWdpc3Rlcl90bV9jbG9uZXMA
cmVnaXN0ZXJfdG1fY2xvbmVzAF9fZG9fZ2xvYmFsX2R0b3JzX2F1eABjb21wbGV0ZWQuNjMzMwBf
X2RvX2dsb2JhbF9kdG9yc19hdXhfZmluaV9hcnJheV9lbnRyeQBmcmFtZV9kdW1teQBfX2ZyYW1l
X2R1bW15X2luaXRfYXJyYXlfZW50cnkAZWxlcGhhbnQuYwBfX0ZSQU1FX0VORF9fAF9fSkNSX0VO
RF9fAF9faW5pdF9hcnJheV9lbmQAX0RZTkFNSUMAX19pbml0X2FycmF5X3N0YXJ0AF9HTE9CQUxf
T0ZGU0VUX1RBQkxFXwBfX2xpYmNfY3N1X2ZpbmkAX0lUTV9kZXJlZ2lzdGVyVE1DbG9uZVRhYmxl
AGRhdGFfc3RhcnQAX2VkYXRhAF9maW5pAF9fbGliY19zdGFydF9tYWluQEBHTElCQ18yLjIuNQBf
X2RhdGFfc3RhcnQAX19nbW9uX3N0YXJ0X18AX19kc29faGFuZGxlAF9JT19zdGRpbl91c2VkAF9f
bGliY19jc3VfaW5pdABtYWxsb2NAQEdMSUJDXzIuMi41AF9lbmQAX3N0YXJ0AF9fYnNzX3N0YXJ0
AG1haW4AX0p2X1JlZ2lzdGVyQ2xhc3NlcwBfX1RNQ19FTkRfXwBfSVRNX3JlZ2lzdGVyVE1DbG9u
ZVRhYmxlAHNsZWVwQEBHTElCQ18yLjIuNQBfaW5pdABmb3JrQEBHTElCQ18yLjIuNQA=
EOF
	      chmod 755 /usr/local/bin/elephant
	    fi
	    if [[ ! -x /usr/local/bin/hippo ]] ; then
	      base64 -d > /usr/local/bin/hippo <<EOF
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
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAVAAAAAAADgBEAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAwAAAAAAAAA
4ANAAAAAAAANAAAAAAAAANQFQAAAAAAAGQAAAAAAAAAQDmAAAAAAABsAAAAAAAAACAAAAAAAAAAa
AAAAAAAAABgOYAAAAAAAHAAAAAAAAAAIAAAAAAAAAPX+/28AAAAAmAJAAAAAAAAFAAAAAAAAABgD
QAAAAAAABgAAAAAAAAC4AkAAAAAAAAoAAAAAAAAAPQAAAAAAAAALAAAAAAAAABgAAAAAAAAAFQAA
AAAAAAAAAAAAAAAAAAMAAAAAAAAAABBgAAAAAAACAAAAAAAAAEgAAAAAAAAAFAAAAAAAAAAHAAAA
AAAAABcAAAAAAAAAmANAAAAAAAAHAAAAAAAAAIADQAAAAAAACAAAAAAAAAAYAAAAAAAAAAkAAAAA
AAAAGAAAAAAAAAD+//9vAAAAAGADQAAAAAAA////bwAAAAABAAAAAAAAAPD//28AAAAAVgNAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgOYAAAAAAA
AAAAAAAAAAAAAAAAAAAAABYEQAAAAAAAJgRAAAAAAAA2BEAAAAAAAAAAAABHQ0M6IChHTlUpIDQu
OC4yIDIwMTQwMTIwIChSZWQgSGF0IDQuOC4yLTEyKQBHQ0M6IChHTlUpIDQuOC4yIDIwMTQwMTIw
IChSZWQgSGF0IDQuOC4yLTEzKQAALnN5bXRhYgAuc3RydGFiAC5zaHN0cnRhYgAuaW50ZXJwAC5u
b3RlLkFCSS10YWcALm5vdGUuZ251LmJ1aWxkLWlkAC5nbnUuaGFzaAAuZHluc3ltAC5keW5zdHIA
LmdudS52ZXJzaW9uAC5nbnUudmVyc2lvbl9yAC5yZWxhLmR5bgAucmVsYS5wbHQALmluaXQALnRl
eHQALmZpbmkALnJvZGF0YQAuZWhfZnJhbWVfaGRyAC5laF9mcmFtZQAuaW5pdF9hcnJheQAuZmlu
aV9hcnJheQAuamNyAC5keW5hbWljAC5nb3QALmdvdC5wbHQALmRhdGEALmJzcwAuY29tbWVudAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAbAAAAAQAAAAIAAAAAAAAAOAJAAAAAAAA4AgAAAAAAABwAAAAAAAAAAAAAAAAAAAAB
AAAAAAAAAAAAAAAAAAAAIwAAAAcAAAACAAAAAAAAAFQCQAAAAAAAVAIAAAAAAAAgAAAAAAAAAAAA
AAAAAAAABAAAAAAAAAAAAAAAAAAAADEAAAAHAAAAAgAAAAAAAAB0AkAAAAAAAHQCAAAAAAAAJAAA
AAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAA9v//bwIAAAAAAAAAmAJAAAAAAACYAgAA
AAAAABwAAAAAAAAABQAAAAAAAAAIAAAAAAAAAAAAAAAAAAAATgAAAAsAAAACAAAAAAAAALgCQAAA
AAAAuAIAAAAAAABgAAAAAAAAAAYAAAABAAAACAAAAAAAAAAYAAAAAAAAAFYAAAADAAAAAgAAAAAA
AAAYA0AAAAAAABgDAAAAAAAAPQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABeAAAA////
bwIAAAAAAAAAVgNAAAAAAABWAwAAAAAAAAgAAAAAAAAABQAAAAAAAAACAAAAAAAAAAIAAAAAAAAA
awAAAP7//28CAAAAAAAAAGADQAAAAAAAYAMAAAAAAAAgAAAAAAAAAAYAAAABAAAACAAAAAAAAAAA
AAAAAAAAAHoAAAAEAAAAAgAAAAAAAACAA0AAAAAAAIADAAAAAAAAGAAAAAAAAAAFAAAAAAAAAAgA
AAAAAAAAGAAAAAAAAACEAAAABAAAAAIAAAAAAAAAmANAAAAAAACYAwAAAAAAAEgAAAAAAAAABQAA
AAwAAAAIAAAAAAAAABgAAAAAAAAAjgAAAAEAAAAGAAAAAAAAAOADQAAAAAAA4AMAAAAAAAAaAAAA
AAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAIkAAAABAAAABgAAAAAAAAAABEAAAAAAAAAEAAAA
AAAAQAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAACUAAAAAQAAAAYAAAAAAAAAQARAAAAA
AABABAAAAAAAAJQBAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAmgAAAAEAAAAGAAAAAAAA
ANQFQAAAAAAA1AUAAAAAAAAJAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAKAAAAABAAAA
AgAAAAAAAADgBUAAAAAAAOAFAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAACo
AAAAAQAAAAIAAAAAAAAA8AVAAAAAAADwBQAAAAAAADQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAA
AAAAAAAAtgAAAAEAAAACAAAAAAAAACgGQAAAAAAAKAYAAAAAAAD0AAAAAAAAAAAAAAAAAAAACAAA
AAAAAAAAAAAAAAAAAMAAAAAOAAAAAwAAAAAAAAAQDmAAAAAAABAOAAAAAAAACAAAAAAAAAAAAAAA
AAAAAAgAAAAAAAAAAAAAAAAAAADMAAAADwAAAAMAAAAAAAAAGA5gAAAAAAAYDgAAAAAAAAgAAAAA
AAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAA2AAAAAEAAAADAAAAAAAAACAOYAAAAAAAIA4AAAAA
AAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAAN0AAAAGAAAAAwAAAAAAAAAoDmAAAAAA
ACgOAAAAAAAA0AEAAAAAAAAGAAAAAAAAAAgAAAAAAAAAEAAAAAAAAADmAAAAAQAAAAMAAAAAAAAA
+A9gAAAAAAD4DwAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAA6wAAAAEAAAAD
AAAAAAAAAAAQYAAAAAAAABAAAAAAAAAwAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAPQA
AAABAAAAAwAAAAAAAAAwEGAAAAAAADAQAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAA
AAAAAAD6AAAACAAAAAMAAAAAAAAANBBgAAAAAAA0EAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAA
AAAAAAAAAAAAAAAA/wAAAAEAAAAwAAAAAAAAAAAAAAAAAAAANBAAAAAAAABaAAAAAAAAAAAAAAAA
AAAAAQAAAAAAAAABAAAAAAAAABEAAAADAAAAAAAAAAAAAAAAAAAAAAAAAI4QAAAAAAAACAEAAAAA
AAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAYGQAAAAAA
ABgGAAAAAAAAHQAAAC0AAAAIAAAAAAAAABgAAAAAAAAACQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAA
MB8AAAAAAAA3AgAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAADAAEAOAJAAAAAAAAAAAAAAAAAAAAAAAADAAIAVAJAAAAAAAAAAAAAAAAAAAAA
AAADAAMAdAJAAAAAAAAAAAAAAAAAAAAAAAADAAQAmAJAAAAAAAAAAAAAAAAAAAAAAAADAAUAuAJA
AAAAAAAAAAAAAAAAAAAAAAADAAYAGANAAAAAAAAAAAAAAAAAAAAAAAADAAcAVgNAAAAAAAAAAAAA
AAAAAAAAAAADAAgAYANAAAAAAAAAAAAAAAAAAAAAAAADAAkAgANAAAAAAAAAAAAAAAAAAAAAAAAD
AAoAmANAAAAAAAAAAAAAAAAAAAAAAAADAAsA4ANAAAAAAAAAAAAAAAAAAAAAAAADAAwAAARAAAAA
AAAAAAAAAAAAAAAAAAADAA0AQARAAAAAAAAAAAAAAAAAAAAAAAADAA4A1AVAAAAAAAAAAAAAAAAA
AAAAAAADAA8A4AVAAAAAAAAAAAAAAAAAAAAAAAADABAA8AVAAAAAAAAAAAAAAAAAAAAAAAADABEA
KAZAAAAAAAAAAAAAAAAAAAAAAAADABIAEA5gAAAAAAAAAAAAAAAAAAAAAAADABMAGA5gAAAAAAAA
AAAAAAAAAAAAAAADABQAIA5gAAAAAAAAAAAAAAAAAAAAAAADABUAKA5gAAAAAAAAAAAAAAAAAAAA
AAADABYA+A9gAAAAAAAAAAAAAAAAAAAAAAADABcAABBgAAAAAAAAAAAAAAAAAAAAAAADABgAMBBg
AAAAAAAAAAAAAAAAAAAAAAADABkANBBgAAAAAAAAAAAAAAAAAAAAAAADABoAAAAAAAAAAAAAAAAA
AAAAAAEAAAAEAPH/AAAAAAAAAAAAAAAAAAAAAAwAAAABABQAIA5gAAAAAAAAAAAAAAAAABkAAAAC
AA0AcARAAAAAAAAAAAAAAAAAAC4AAAACAA0AoARAAAAAAAAAAAAAAAAAAEEAAAACAA0A4ARAAAAA
AAAAAAAAAAAAAFcAAAABABkANBBgAAAAAAABAAAAAAAAAGYAAAABABMAGA5gAAAAAAAAAAAAAAAA
AI0AAAACAA0AAAVAAAAAAAAAAAAAAAAAAJkAAAABABIAEA5gAAAAAAAAAAAAAAAAALgAAAAEAPH/
AAAAAAAAAAAAAAAAAAAAAAEAAAAEAPH/AAAAAAAAAAAAAAAAAAAAAMAAAAABABEAGAdAAAAAAAAA
AAAAAAAAAM4AAAABABQAIA5gAAAAAAAAAAAAAAAAAAAAAAAEAPH/AAAAAAAAAAAAAAAAAAAAANoA
AAAAABIAGA5gAAAAAAAAAAAAAAAAAOsAAAABABUAKA5gAAAAAAAAAAAAAAAAAPQAAAAAABIAEA5g
AAAAAAAAAAAAAAAAAAcBAAABABcAABBgAAAAAAAAAAAAAAAAAB0BAAASAA0A0AVAAAAAAAACAAAA
AAAAAC0BAAAgAAAAAAAAAAAAAAAAAAAAAAAAAEkBAAAgABgAMBBgAAAAAAAAAAAAAAAAAFQBAAAQ
ABgANBBgAAAAAAAAAAAAAAAAAFsBAAASAA4A1AVAAAAAAAAAAAAAAAAAAGEBAAASAAAAAAAAAAAA
AAAAAAAAAAAAAIABAAAQABgAMBBgAAAAAAAAAAAAAAAAAI0BAAAgAAAAAAAAAAAAAAAAAAAAAAAA
AJwBAAARAg8A6AVAAAAAAAAAAAAAAAAAAKkBAAARAA8A4AVAAAAAAAAEAAAAAAAAALgBAAASAA0A
YAVAAAAAAABlAAAAAAAAAMgBAAAQABkAOBBgAAAAAAAAAAAAAAAAAM0BAAASAA0AQARAAAAAAAAA
AAAAAAAAANQBAAAQABkANBBgAAAAAAAAAAAAAAAAAOABAAASAA0AMAVAAAAAAAAlAAAAAAAAAOUB
AAAgAAAAAAAAAAAAAAAAAAAAAAAAAPkBAAARAhgAOBBgAAAAAAAAAAAAAAAAAAUCAAAgAAAAAAAA
AAAAAAAAAAAAAAAAAB8CAAASAAsA4ANAAAAAAAAAAAAAAAAAACUCAAASAAAAAAAAAAAAAAAAAAAA
AAAAAABjcnRzdHVmZi5jAF9fSkNSX0xJU1RfXwBkZXJlZ2lzdGVyX3RtX2Nsb25lcwByZWdpc3Rl
cl90bV9jbG9uZXMAX19kb19nbG9iYWxfZHRvcnNfYXV4AGNvbXBsZXRlZC42MzMzAF9fZG9fZ2xv
YmFsX2R0b3JzX2F1eF9maW5pX2FycmF5X2VudHJ5AGZyYW1lX2R1bW15AF9fZnJhbWVfZHVtbXlf
aW5pdF9hcnJheV9lbnRyeQBoaXBwby5jAF9fRlJBTUVfRU5EX18AX19KQ1JfRU5EX18AX19pbml0
X2FycmF5X2VuZABfRFlOQU1JQwBfX2luaXRfYXJyYXlfc3RhcnQAX0dMT0JBTF9PRkZTRVRfVEFC
TEVfAF9fbGliY19jc3VfZmluaQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAZGF0YV9zdGFy
dABfZWRhdGEAX2ZpbmkAX19saWJjX3N0YXJ0X21haW5AQEdMSUJDXzIuMi41AF9fZGF0YV9zdGFy
dABfX2dtb25fc3RhcnRfXwBfX2Rzb19oYW5kbGUAX0lPX3N0ZGluX3VzZWQAX19saWJjX2NzdV9p
bml0AF9lbmQAX3N0YXJ0AF9fYnNzX3N0YXJ0AG1haW4AX0p2X1JlZ2lzdGVyQ2xhc3NlcwBfX1RN
Q19FTkRfXwBfSVRNX3JlZ2lzdGVyVE1DbG9uZVRhYmxlAF9pbml0AGZvcmtAQEdMSUJDXzIuMi41
AA==
EOF
	      chmod 755 /usr/local/bin/hippo
	    fi

            # Kill processes if they exist from previous attempts.
            # Multiple process101 processes were started in the last practice;
            # also ensure they are killed to avoid resource contention here. 
            killall -q elephant hippo process101

            # Start multiple hippo and elephant processes, but no process101
#            elephant &
            elephant &
#            hippo &
            hippo &

            echo "done!"
            ;;
        *)
            # Should never get here, but what the hey....
            print_FAIL && echo "The setup script needs to be run on server"
            ;;
    esac

}

function lab_grade {
    local fail_printed
    VMNAME=$1
    case $VMNAME in
        desktop)
            print_FAIL && echo "The grade script needs to be run on server"
            ;;
        server)
            echo -n "Checking for terminated processes... "

            # "elephant" should not be running
            if ps -C elephant &>/dev/null
            then
              print_FAIL
	      fail_printed=true
              echo 'A "memory hogging" process is still running.'
            fi
            # "hippo" should not be running
            if ps -C hippo &>/dev/null
            then
              [[ -z "${fail_printed}" ]] && print_FAIL
              echo 'A "cpu hogging" process is still running.'
            else
              [[ -z "${fail_printed}" ]] && print_PASS
            fi
	    return 0
            ;;
        *)
            # Should never get here, but what the hey....
            print_FAIL && echo "The grade script needs to be run on server"
            ;;
    esac
}

# Main area

# Check if to be run as root (must do this first)
if [[ "${RUN_AS_ROOT}" == 'true' ]] && [[ "${EUID}" -gt "0" ]] ; then
  if [[ -x /usr/bin/sudo ]] ; then
    ${SUDO:-sudo} $0 "$@"
    exit
  else
    # Fail out if not running as root
    check_root
  fi
fi

# Process command line
# Parse input
case $1 in
    setup|grade)
        CMD=$1
        ;;
    -h|--help)
        print_usage
        exit 0
        ;;
    *)
        echo Bad option $1
        print_usage
        exit 1
        ;;
esac
# Validation
[ -z "$CMD" ] && debug "Missing command" && print_usage && exit 1

# Get local system information
get_X

# Branch based on short (without number) hostname
case $MYHOST in
    desktop|server)
        lab_$CMD $MYHOST
        ;;
    *)
        debug "Bad or missing hostname - $MYHOST"
        debug "This command needs to be run on desktop or server"
        exit 3
        ;;
esac

