From 3d7a0c6f55d5d4db33ff5ecb25466423e5d36b2d Mon Sep 17 00:00:00 2001
From: Sam Yaple <sam@yaple.net>
Date: Wed, 4 Nov 2015 04:58:22 +0000
Subject: [PATCH] Restrucutre gate scripts

So we can respect DRY and share as much code as possible I have broken
out the common code between the aio and multinode gate scripts.

Additionally, this lays the ground work for removing our policy on
root-everywhere by using sudo. Once we get the non-root stuff worked
out we can gate as non-root user.

Change-Id: I781c597ab10f2296b95f51ae27e0fa617ffe0a66
Partially-Implements: blueprint multinode-gate
---
 tests/{deploy_kolla.sh => deploy_aio.sh} | 11 +--------
 tests/setup_deploy.sh                    | 31 ++++++++++++++++++++++++
 tox.ini                                  |  9 ++++---
 3 files changed, 38 insertions(+), 13 deletions(-)
 rename tests/{deploy_kolla.sh => deploy_aio.sh} (75%)
 create mode 100755 tests/setup_deploy.sh

diff --git a/tests/deploy_kolla.sh b/tests/deploy_aio.sh
similarity index 75%
rename from tests/deploy_kolla.sh
rename to tests/deploy_aio.sh
index a5e5b2892b..2d76aca8d0 100755
--- a/tests/deploy_kolla.sh
+++ b/tests/deploy_aio.sh
@@ -12,16 +12,7 @@ function print_failure {
     exit 1
 }
 
-# Setup ssh key as required
-ssh-keygen -f kolla-ssh -N ""
-cat kolla-ssh.pub | tee /root/.ssh/authorized_keys
-
-# Install Ansible and docker-py
-pip install "ansible<2" docker-py
-pip freeze | egrep "docker|ansible"
-
-# Setup configs
-cp -a etc/kolla /etc/
+# Populate globals.yml
 cat << EOF > /etc/kolla/globals.yml
 ---
 kolla_base_distro: "$1"
diff --git a/tests/setup_deploy.sh b/tests/setup_deploy.sh
new file mode 100755
index 0000000000..366bbf5a86
--- /dev/null
+++ b/tests/setup_deploy.sh
@@ -0,0 +1,31 @@
+#!/bin/bash
+
+set -o xtrace
+set -o errexit
+
+export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+
+function create_keys {
+    # Setup ssh key as required
+    sudo -H ssh-keygen -f /root/.ssh/id_rsa -N ""
+    sudo -H cat /root/.ssh/id_rsa.pub | sudo -H tee /root/.ssh/authorized_keys
+}
+
+function install_deps {
+    # Install Ansible and docker-py
+    sudo -H pip install "ansible<2" docker-py
+    pip freeze | egrep "docker|ansible"
+}
+
+function copy_configs {
+    # Copy configs
+    sudo cp -a etc/kolla /etc/
+}
+
+create_keys
+install_deps
+copy_configs
+
+# Link the logs directory into root
+mkdir -p logs
+sudo ln -s $(pwd)/logs /root/logs
diff --git a/tox.ini b/tox.ini
index 1b693d2479..c3b60663eb 100644
--- a/tox.ini
+++ b/tox.ini
@@ -70,7 +70,8 @@ commands =
    find . -type f -name "*.pyc" -delete
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.DeployTestCentosBinary
-   sudo tests/deploy_kolla.sh centos binary
+   bash tests/setup_deploy.sh
+   sudo tests/deploy_aio.sh centos binary
 
 [testenv:deploy-images-centos-source]
 whitelist_externals = find
@@ -80,7 +81,8 @@ commands =
    find . -type f -name "*.pyc" -delete
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.DeployTestCentosSource
-   sudo tests/deploy_kolla.sh centos source
+   bash tests/setup_deploy.sh
+   sudo tests/deploy_aio.sh centos source
 
 [testenv:deploy-images-ubuntu-source]
 whitelist_externals = find
@@ -90,7 +92,8 @@ commands =
    find . -type f -name "*.pyc" -delete
    bash -c "if [ ! -d .testrepository ]; then testr init; fi"
    sudo -g docker testr run test_build.DeployTestUbuntuSource
-   sudo tests/deploy_kolla.sh ubuntu source
+   bash tests/setup_deploy.sh
+   sudo tests/deploy_aio.sh ubuntu source
 
 [testenv:functional]
 whitelist_externals = find