New P4 dev and tutorial VM with Ubuntu 18.04

Change-Id: Iacf2ca8f8467dc91e696ace5ed30412f7869110a
(cherry picked from commit 2b8bcbcd3d0e3e66ee2bc681f0f1dfbb0e2a218f)
diff --git a/tools/dev/p4vm/root-bootstrap.sh b/tools/dev/p4vm/root-bootstrap.sh
index b997a6a..d34c43e 100755
--- a/tools/dev/p4vm/root-bootstrap.sh
+++ b/tools/dev/p4vm/root-bootstrap.sh
@@ -1,55 +1,47 @@
-#!/bin/bash
+#!/usr/bin/env bash
+
 set -xe
 
-ONOS_BRANCH_DEV="master"
-ONOS_BRANCH_TUTORIAL="onos-1.14"
-BAZEL_VER="0.22.0"
-
-# There is a known issue with some kernel versions that affects PTF tests:
-# https://github.com/jafingerhut/p4-guide/tree/master/linux-veth-bug
-KERNEL_VER="4.15.0-46-generic"
-
 VM_TYPE=${1:-dev}
 
-if [[ ${VM_TYPE} = "tutorial" ]]
-then
-    ONOS_BRANCH=${ONOS_BRANCH_TUTORIAL}
-else
-    ONOS_BRANCH=${ONOS_BRANCH_DEV}
-fi
+BAZEL_VER="0.24.1"
+CORRETTO_URL="https://d3pxv6yz143wms.cloudfront.net/8.212.04.2/java-1.8.0-amazon-corretto-jdk_8.212.04-2_amd64.deb"
+
+# Disable automatic updates
+systemctl stop apt-daily.timer
+systemctl disable apt-daily.timer
+systemctl disable apt-daily.service
+systemctl stop apt-daily-upgrade.timer
+systemctl disable apt-daily-upgrade.timer
+systemctl disable apt-daily-upgrade.service
+
+# Remove Ubuntu user
+sudo userdel -r -f ubuntu
 
 # Create user sdn
 useradd -m -d /home/sdn -s /bin/bash sdn
+usermod -aG sudo sdn
+usermod -aG vboxsf sdn
 echo "sdn:rocks" | chpasswd
 echo "sdn ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/99_sdn
 chmod 440 /etc/sudoers.d/99_sdn
-usermod -aG vboxsf sdn
 update-locale LC_ALL="en_US.UTF-8"
 
-if [[ ${VM_TYPE} = "tutorial" ]]
-then
-    su sdn <<'EOF'
-cd /home/sdn
-bash /vagrant/tutorial-bootstrap.sh
-EOF
-fi
-
-# Java 8
-apt-get install software-properties-common -y
-add-apt-repository ppa:webupd8team/java -y
+# Update and upgrade.
 apt-get update
-
 DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
 
-echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
+wget -O corretto.deb ${CORRETTO_URL}
+
 apt-get -y --no-install-recommends install \
+    java-common \
+    ./corretto.deb \
+    maven \
     avahi-daemon \
     bridge-utils \
     git \
     git-review \
     htop \
-    oracle-java8-installer \
-    oracle-java8-set-default \
     python2.7 \
     python2.7-dev \
     valgrind \
@@ -57,6 +49,9 @@
     tcpdump \
     vlan \
     ntp \
+    wget \
+    curl \
+    net-tools \
     vim nano emacs \
     arping \
     gawk \
@@ -66,30 +61,32 @@
     automake \
     autoconf \
     libtool \
-    linux-image-${KERNEL_VER} \
     isc-dhcp-server
 
-DEBIAN_FRONTEND=noninteractive apt-get -yq install wireshark
+rm -f corretto.deb
 
-# Install Bazel
-BAZEL_SH="bazel-${BAZEL_VER}-installer-linux-x86_64.sh"
-wget https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VER}/${BAZEL_SH}
-chmod +x ${BAZEL_SH}
-./${BAZEL_SH}
-rm -f ${BAZEL_SH}
+rm -f /usr/bin/python
+ln -s `which python2.7` /usr/bin/python
 
 # Install pip and some python deps (others are defined in install-p4-tools.sh)
 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
 python2.7 get-pip.py --force-reinstall
 rm -f get-pip.py
-pip install ipaddress
+pip2.7 install ipaddress
+
+if [[ ${VM_TYPE} = "dev" ]]
+then
+    # Install Bazel
+    BAZEL_SH="bazel-${BAZEL_VER}-installer-linux-x86_64.sh"
+    wget https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VER}/${BAZEL_SH}
+    chmod +x ${BAZEL_SH}
+    ./${BAZEL_SH}
+    rm -f ${BAZEL_SH}
+fi
 
 tee -a /etc/ssh/sshd_config <<EOF
 
 UseDNS no
 EOF
 
-su sdn <<'EOF'
-cd /home/sdn
-bash /vagrant/user-bootstrap.sh ${ONOS_BRANCH}
-EOF
+sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
\ No newline at end of file