add Docker platform for integration tests
refs #5108
Change-Id: I2855a5d87e4dbca6af02049e0cf423b7c893b2d0
diff --git a/docker_helpers/prepare_template.sh b/docker_helpers/prepare_template.sh
new file mode 100755
index 0000000..38e815d
--- /dev/null
+++ b/docker_helpers/prepare_template.sh
@@ -0,0 +1,27 @@
+#!/bin/bash
+# Set up common image to build other nodes from
+
+# Install necessary packages
+apt-get update -qq
+apt-get install -qq iproute2 openssh-server psmisc python-minimal sudo
+
+# Set up integ user and SSH
+adduser --disabled-password --gecos "" integ
+echo "integ ALL=(ALL:ALL) NOPASSWD:ALL" >/etc/sudoers.d/integ
+mkdir -p /home/integ/.ssh
+cp /integ/temp/sshkey /home/integ/.ssh/id_rsa
+cp /integ/temp/sshkey.pub /home/integ/.ssh/id_rsa.pub
+cat /home/integ/.ssh/id_rsa.pub >> /home/integ/.ssh/authorized_keys
+chown -R integ:integ /home/integ/.ssh
+chmod -R 700 /home/integ/.ssh
+
+# Copy integ folder and build+install packages
+cp -R /integ /home/integ/integration-tests
+chown -R integ:integ /home/integ/integration-tests
+cd /home/integ/integration-tests && sudo -u integ ./install_apps.py install_all 2>&1 | tee install.log
+chown integ:integ install.log
+rm -rf prepare
+cd install_helpers/tools && sudo -u integ make clean
+
+# Clean up
+sudo apt-get clean
diff --git a/docker_helpers/run_tests.sh b/docker_helpers/run_tests.sh
new file mode 100755
index 0000000..5620da5
--- /dev/null
+++ b/docker_helpers/run_tests.sh
@@ -0,0 +1,4 @@
+#!/bin/bash
+# Runs integration tests
+
+cd /home/integ/integration-tests && ./run_tests.py test_all 2>&1 | tee run.log
diff --git a/docker_helpers/setup_A.sh b/docker_helpers/setup_A.sh
new file mode 100755
index 0000000..c5e84dd
--- /dev/null
+++ b/docker_helpers/setup_A.sh
@@ -0,0 +1,11 @@
+#!/bin/bash
+# Configuration steps specific to docker instances of node A
+
+cat > /home/integ/.ssh/config <<EOF
+Host 192.168.*.*
+ StrictHostKeyChecking no
+EOF
+chown integ:integ /home/integ/.ssh/config
+
+ip route add 192.168.3.0/24 via 192.168.2.3
+ip -6 route add fd03::/64 via fd02::3
diff --git a/docker_helpers/setup_D.sh b/docker_helpers/setup_D.sh
new file mode 100755
index 0000000..d188bfc
--- /dev/null
+++ b/docker_helpers/setup_D.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Configuration steps specific to docker instances of node D
+
+ip route add 192.168.2.0/24 via 192.168.3.2
+ip -6 route add fd02::/64 via fd03::2
diff --git a/docker_helpers/setup_common.sh b/docker_helpers/setup_common.sh
new file mode 100755
index 0000000..6bdb142
--- /dev/null
+++ b/docker_helpers/setup_common.sh
@@ -0,0 +1,7 @@
+#!/bin/bash
+# Configuration steps common to all non-router nodes
+
+cp -R /integ ~/integration-tests
+cd ~/integration-tests && ./install_apps.py install_all 2>&1 | tee install.log
+rm -rf prepare
+cd install_helpers/tools && make clean
diff --git a/docker_helpers/setup_router.sh b/docker_helpers/setup_router.sh
new file mode 100755
index 0000000..c629594
--- /dev/null
+++ b/docker_helpers/setup_router.sh
@@ -0,0 +1,5 @@
+#!/bin/bash
+# Configuration steps specific to docker instances of router
+
+sysctl net.ipv4.ip_forward=1
+sysctl net.ipv6.conf.all.forwarding=1