Packet/optical tutorial
Change-Id: I066704381e039ce9f392c2764feb6c451d3702aa
diff --git a/onos-setup.sh b/onos-setup.sh
index 66a3b77..2e29ba7 100644
--- a/onos-setup.sh
+++ b/onos-setup.sh
@@ -1,7 +1,7 @@
#!/bin/bash
# vm-setup.sh
#
-# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
+# This script installs ONOS dependencies and installs a desktop environment on a Mininet VM.
USER=tutorial1
@@ -38,6 +38,7 @@
onos $OC1 "feature:install onos-app-fwd"
onos $OC1 "feature:install onos-app-ifwd"
onos $OC1 "feature:install onos-app-sdnip"
+onos $OC1 "feature:install onos-app-optical"
# Sleep a little to let the features load up
sleep 20
diff --git a/opt-setup.sh b/opt-setup.sh
new file mode 100644
index 0000000..fe6b138
--- /dev/null
+++ b/opt-setup.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+# vm-setup.sh
+#
+# This script installs ONOS dependencies for packet/optical use case.
+
+
+export CURRENT_USER=opt
+export USER_HOME=/home/${CURRENT_USER}
+
+# -------------- Setup keys -------------------
+
+mkdir -p ~/.ssh
+ssh-keygen -t dsa -P "" -f .ssh/id_dsa
+cp .ssh/id_dsa.pub .ssh/authorized_keys
+
+# -------------- Setup Desktop ---------------
+
+DESKTOP=${USER_HOME}/Desktop
+
+mkdir -p ${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
+
+# TODO: make large too!
+cat > "${DESKTOP}/Packet-Optical Mininet Small" << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Packet/Optical Mininet Small
+Name[en_US]=Packet/Optical Mininet Small
+Icon=konsole
+Exec=/usr/bin/lxterminal -e 'sudo /opt/onos/tools/test/topos/opticalTest.py'
+Comment[en_US]=
+EOF
+
+cat > "${DESKTOP}/Packet-Optical Mininet Large" << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=Packet/Optical Mininet Large
+Name[en_US]=Packet/Optical Mininet Large
+Icon=konsole
+Exec=/usr/bin/lxterminal -e 'sudo /opt/onos/tools/test/topos/opticalTestBig.py'
+Comment[en_US]=
+EOF
+
+cat > ${DESKTOP}/Tutorial << EOF
+[Desktop Entry]
+Encoding=UTF-8
+Type=Application
+Name=SDN-IP Tutorial
+Name[en_US]=SDN-IP Tutorial
+Icon=internet-web-browser
+Exec=/usr/bin/chromium-browser https://wiki.onosproject.org/display/ONOS/Packet+Optical+Tutorial
+Comment[en_US]=
+EOF
+
+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
+
+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
+
+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
+
diff --git a/vm-setup.sh b/vm-setup.sh
index 741150c..331ecd1 100644
--- a/vm-setup.sh
+++ b/vm-setup.sh
@@ -1,21 +1,24 @@
#!/bin/bash
# vm-setup.sh
#
-# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
+# This script installs ONOS dependencies and installs a desktop environment on a Mininet VM.
export CURRENT_USER=tutorial1
export SDN_IP_USER=sdnip
export DIST_USER=distributed
+export OPT_USER=optical
export USER_HOME=/home/${CURRENT_USER}
URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=tutorial1-setup.sh'
SDNIP_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=sdnip-setup.sh'
DIST_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=dist-setup.sh'
+OPT_URL='https://gerrit.onosproject.org/gitweb?p=onos-vm.git;a=blob_plain;hb=refs/heads/onos-tutorial;f=opt-setup.sh'
sudo /usr/sbin/useradd -c "Basic ONOS Tutorial" -d /home/${CURRENT_USER} -U -m -p $(openssl passwd -1 ${CURRENT_USER}) -s /bin/bash ${CURRENT_USER}
sudo /usr/sbin/useradd -c "Basic SDN-IP Tutorial" -d /home/${SDN_IP_USER} -U -m -p $(openssl passwd -1 ${SDN_IP_USER}) -s /bin/bash ${SDN_IP_USER}
sudo /usr/sbin/useradd -c "Distributed Tutorial" -d /home/${DIST_USER} -U -m -p $(openssl passwd -1 ${DIST_USER}) -s /bin/bash ${DIST_USER}
+sudo /usr/sbin/useradd -c "Optical Tutorial" -d /home/${OPT_USER} -U -m -p $(openssl passwd -1 ${OPT_USER}) -s /bin/bash ${OPT_USER}
echo "${CURRENT_USER} ALL=(ALL) NOPASSWD:ALL" >> tutorial1
@@ -31,9 +34,13 @@
sudo cp dist /etc/sudoers.d
sudo chown root:root /etc/sudoers.d/dist
+echo "${OPT_USER} ALL=(ALL) NOPASSWD:ALL" >> opt
+sudo cp opt /etc/sudoers.d
+sudo chown root:root /etc/sudoers.d/opt
+
sudo apt-get update
-sudo apt-get install -y git openjdk-8-jdk maven unzip quagga docker.io curl
+sudo apt-get install -y git openjdk-8-jdk maven unzip quagga docker.io curl erlang make
sudo update-alternatives --set java /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java
sudo update-alternatives --set javac /usr/lib/jvm/java-8-openjdk-amd64/bin/javac
@@ -56,3 +63,7 @@
wget -O dist-setup.sh $DIST_URL
sudo -u ${DIST_USER} -H sh -c 'cp dist-setup.sh ~/ && cd ~/ && sh dist-setup.sh'
+
+wget -O opt-setup.sh $OPT_URL
+
+sudo -u ${OPT_USER} -H sh -c 'cp opt-setup.sh ~/ && cd ~/ && sh opt-setup.sh'