Finish set up onos and desktop
diff --git a/desktop-setup.sh b/desktop-setup.sh
new file mode 100644
index 0000000..a338005
--- /dev/null
+++ b/desktop-setup.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+# desktop-setup.sh
+#  
+# Sets up a desktop environment for the ONOS tutorials.
+
+# Remove kernel boot options that will prevent the gui from running
+sudo sed -i s/text// /etc/default/grub
+sudo sed -i s/ipv6.disable=1// /etc/default/grub
+sudo update-grub
+
+sudo apt-get install -y xorg lxde systemd-shim
+
+#TODO: add backgrounds folder
+sudo mkdir -p /usr/share/backgrounds
+#TODO: change background
+# Remove wallpaper, change background color
+sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
+sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
+
+sudo sed -i 's/lang=1/lang=0/g' /etc/lxdm/default.conf
+sudo sed -i 's/bottom_pane=1/bottom_pane=0/g' /etc/lxdm/default.conf
+sudo sed -i 's/disable=0/disable=1/g' /etc/lxdm/default.conf
+
+# Allow VM to be rebooted from GUI
+echo "session required pam_systemd.so" | sudo tee --append /etc/pam.d/lxdm
+
+wget -O onos.png "https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=onos.png"
+sudo cp onos.png /usr/share/backgrounds/default.png
+
+# Change LXTerminal default colors
+sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' /usr/share/lxterminal/lxterminal.conf
+sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' /usr/share/lxterminal/lxterminal.conf
+
+# Disable screensaver
+sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
+cat > /home/mininet/.xsessionrc << EOF
+# disable screensaver
+xset s off
+# disable dpms (standby)
+xset -dpms
+EOF
\ No newline at end of file
diff --git a/onos-build-vm.py b/onos-build-vm.py
index 087c98c..888938b 100755
--- a/onos-build-vm.py
+++ b/onos-build-vm.py
@@ -49,11 +49,11 @@
     
     #vm.expect( prompt, timeout=1200 )
    
-    #url = 'https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=onos-setup-lxc.sh'
-    #vm.sendline( ' wget -O onos-setup-lxc.sh "%s" | bash' % url ) # space prefix is used to avoid entry in history
-    #vm.expect( prompt, timeout=20 )
-    #vm.sendline( 'bash onos-setup-lxc.sh' )
-    #vm.expect(prompt, timeout=3600)
+    url = 'https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=onos-setup-lxc.sh'
+    vm.sendline( ' wget -O onos-setup-lxc.sh "%s" | bash' % url ) # space prefix is used to avoid entry in history
+    vm.expect( prompt, timeout=20 )
+    vm.sendline( 'bash onos-setup-lxc.sh' )
+    vm.expect(prompt, timeout=3600)
     #vm.sendline('exit')
     #vm.expect(prompt, timeout=20) 
     
diff --git a/onos-setup-lxc.sh b/onos-setup-lxc.sh
index 415463c..0c72b63 100644
--- a/onos-setup-lxc.sh
+++ b/onos-setup-lxc.sh
@@ -4,6 +4,29 @@
 # This script sets up the VM ready to run ONOS and tutorials, including installing an LXC cluster
 # for ONOS to run in.
 
+function create_user {
+	local name=$1
+	local description=$2
+	
+	sudo /usr/sbin/useradd -c "$description" -d /home/$name -U -m -p $(openssl passwd -1 $name) -s /bin/bash $name
+	echo "$name ALL=(ALL) NOPASSWD:ALL" >> $name
+	sudo mv $name /etc/sudoers.d
+	sudo chown root:root /etc/sudoers.d/$name
+	sudo usermod -aG wireshark $name
+	
+	sudo mkdir /home/$name/.ssh
+	sudo chown $name:$name /home/$name/.ssh
+	sudo cp /home/mininet/.ssh/id_rsa /home/$name/.ssh/
+	sudo chown $name:$name /home/$name/.ssh/id_rsa
+	
+	sudo -u $name sh -c "echo \"export ONOS_ROOT=/home/mininet/onos\" >> /home/$name/.bashrc"
+	sudo -u $name sh -c "echo \". /home/mininet/onos/tools/dev/bash_profile\" >> /home/$name/.bashrc"
+	
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.11 ls
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.12 ls
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.13 ls
+}
+
 # -------------- Install ONOS ----------------
 
 USER=mininet
@@ -13,10 +36,12 @@
 
 cd ~
 git clone https://gerrit.onosproject.org/onos
-cd onos && git checkout 1.1.0 && cd -
+cd onos && git checkout onos-1.1 && cd -
 
-#echo "export ONOS_ROOT=${USER_HOME}/onos" >> ~/.bashrc
-#echo ". ~/onos/tools/dev/bash_profile" >> ~/.bashrc
+mkdir -p ~/Downloads
+
+echo "export ONOS_ROOT=${USER_HOME}/onos" >> ~/.bashrc
+echo ". ~/onos/tools/dev/bash_profile" >> ~/.bashrc
 
 export ONOS_ROOT=${USER_HOME}/onos
 . ~/onos/tools/dev/bash_profile
@@ -27,7 +52,7 @@
 export JAVA_HOME=""
 cd $ONOS_ROOT && mvn clean install && mvn dependency:go-offline && cd -
 
-cat << EOF >> onos/tools/test/cells/tutorial
+cat << EOF >> onos/tools/test/cells/3node
 export ONOS_NIC=10.0.3.*
 export OC1="10.0.3.11"
 export OC2="10.0.3.12"
@@ -37,7 +62,15 @@
 export ONOS_USER="sdn"
 EOF
 
-cell tutorial
+cat << EOF >> onos/tools/test/cells/1node
+export ONOS_NIC=10.0.3.*
+export OC1="10.0.3.11"
+export OCI="${OC1}"
+export ONOS_FEATURES="webconsole,onos-rest,onos-gui,onos-api,onos-core,onos-cli,onos-openflow"
+export ONOS_USER="sdn"
+EOF
+
+cell 3node
 
 onos-package
 onos-group install -f
@@ -46,7 +79,52 @@
 onos-wait-for-start $OC3
 
 sleep 20
-onos 1 "nodes"
+onos-service --cell status
+
+# ------------- Set up desktop environment -------------
+
+# Remove kernel boot options that will prevent the gui from running
+sudo sed -i s/text// /etc/default/grub
+sudo sed -i s/ipv6.disable=1// /etc/default/grub
+sudo update-grub
+
+sudo apt-get install -y xorg lxde systemd-shim
+
+#TODO: add backgrounds folder
+sudo mkdir -p /usr/share/backgrounds
+#TODO: change background
+# Remove wallpaper, change background color
+sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
+sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
+
+sudo sed -i 's/lang=1/lang=0/g' /etc/lxdm/default.conf
+sudo sed -i 's/bottom_pane=1/bottom_pane=0/g' /etc/lxdm/default.conf
+sudo sed -i 's/disable=0/disable=1/g' /etc/lxdm/default.conf
+
+# Allow VM to be rebooted from GUI
+echo "session required pam_systemd.so" | sudo tee --append /etc/pam.d/lxdm
+
+wget -O onos.png "https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=onos.png"
+sudo cp onos.png /usr/share/backgrounds/default.png
+
+# Change LXTerminal default colors
+sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' /usr/share/lxterminal/lxterminal.conf
+sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' /usr/share/lxterminal/lxterminal.conf
+
+# Disable screensaver
+sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
+cat > /home/mininet/.xsessionrc << EOF
+# disable screensaver
+xset s off
+# disable dpms (standby)
+xset -dpms
+EOF
+
+# ------------- Set up each tutorial -------------
+
+create_user tutorial1 "Basic ONOS Tutorial"
+wget -O tutorial1-setup-lxc.sh $URL
+sudo -u ${CURRENT_USER} -H sh -c 'cp tutorial1-setup-lxc.sh ~/ && cd ~/ && sh tutorial1-setup-lxc.sh'
 
 # ------------- Zero Unused Blocks -------------
 #TODO investigate zerofree
diff --git a/tutorial1-setup-lxc.sh b/tutorial1-setup-lxc.sh
new file mode 100644
index 0000000..f0cc671
--- /dev/null
+++ b/tutorial1-setup-lxc.sh
@@ -0,0 +1,120 @@
+#!/bin/bash
+
+function create_user {
+	local name=$1
+	local description=$2
+	
+	sudo /usr/sbin/useradd -c "$description" -d /home/$name -U -m -p $(openssl passwd -1 $name) -s /bin/bash $name
+	echo "$name ALL=(ALL) NOPASSWD:ALL" >> $name
+	sudo mv $name /etc/sudoers.d
+	sudo chown root:root /etc/sudoers.d/$name
+	sudo usermod -aG wireshark $name
+	
+	sudo mkdir /home/$name/.ssh
+	sudo chown $name:$name /home/$name/.ssh
+	sudo cp /home/mininet/.ssh/id_rsa /home/$name/.ssh/
+	sudo chown $name:$name /home/$name/.ssh/id_rsa
+	
+	sudo -u $name sh -c "echo \"export ONOS_ROOT=/home/mininet/onos\" >> /home/$name/.bashrc"
+	sudo -u $name sh -c "echo \". /home/mininet/onos/tools/dev/bash_profile\" >> /home/$name/.bashrc"
+	
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.11 ls
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.12 ls
+	sudo -u $name ssh -o "StrictHostKeyChecking no" sdn@10.0.3.13 ls
+}
+
+export USER=tutorial1
+
+#create_user $USER "Basic ONOS Tutorial"
+
+#sudo su - $USER
+
+DESKTOP=/home/${USER}/Desktop
+
+mkdir -p ${DESKTOP}
+#sudo chown -R $USER:$USER $DESKTOP
+
+cat > ${DESKTOP}/ONOS << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=ONOS
+Name[en_US]=ONOS
+Icon=konsole
+Exec=/usr/bin/lxterminal -e '/opt/onos/apache-karaf-3.0.2/bin/client -u karaf'
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/ONOS
+
+cat > ${DESKTOP}/Mininet << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Mininet
+Name[en_US]=Mininet
+Icon=konsole
+Exec=/usr/bin/lxterminal -e 'sudo mn --custom /home/mininet/onos/tools/test/topos/tower.py --topo tower --controller remote --mac'
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/Mininet
+
+cat > ${DESKTOP}/Tutorial << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=ONOS Tutorial
+Name[en_US]=ONOS Tutorial
+Icon=internet-web-browser
+Exec=/usr/bin/chromium-browser https://wiki.onosproject.org/display/ONOS/Basic+ONOS+Tutorial
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/Tutorial
+
+cat > ${DESKTOP}/GUI << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=ONOS GUI
+Name[en_US]=ONOS GUI
+Icon=internet-web-browser
+Exec=/usr/bin/chromium-browser http://localhost:8181/onos/ui/index.html#topo
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/GUI
+
+cat > ${DESKTOP}/Wireshark << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Wireshark
+Name[en_US]=Wireshark
+Icon=wireshark
+Exec=/usr/bin/wireshark
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/Wireshark
+
+cat > ${DESKTOP}/Reset << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Reset
+Name[en_US]=Reset
+Icon=konsole
+Exec=/usr/bin/lxterminal -t 'Resetting; please wait' -e 'sudo service onos restart'
+Comment[en_US]=
+EOF
+#sudo chown $USER:$USER ${DESKTOP}/Reset
+
+#sudo chown -R $USER:$USER $DESKTOP
+
+
+# Make sure the 3 node cluster is not running
+#cell 3node
+#onos-service --cell stop
+
+#cell 1node
+#onos-group install -f
+
+#exit
+