From 0ec7edffa71d595f66020b21f14645ea8cbb8986 Mon Sep 17 00:00:00 2001
From: Mark Goddard <mark@stackhpc.com>
Date: Fri, 13 Apr 2018 15:52:43 +0100
Subject: [PATCH] Test nova server (VM) boot in overcloud job

We use the demo script from kolla ansible, init-runonce, to create
resources in the control plane to make it ready for booting a VM. We
then create a nova server, and wait for it to become active. We do not
currently test that the VM boots successfully by accessing it via SSH.

Change-Id: I61be554366565decd9f4ff7805a3969aa37da4b9
---
 dev/functions                           | 21 +++++++++++++++++++++
 dev/overcloud-test.sh                   | 16 ++++++++++++++++
 playbooks/kayobe-overcloud-base/run.yml |  5 +++++
 3 files changed, 42 insertions(+)
 create mode 100755 dev/overcloud-test.sh

diff --git a/dev/functions b/dev/functions
index f5264c50..2a8e2ebc 100644
--- a/dev/functions
+++ b/dev/functions
@@ -215,3 +215,24 @@ function overcloud_deploy {
 
     echo "Control plane deployment complete"
 }
+
+function overcloud_test {
+    # Perform a simple smoke test against the cloud.
+    echo "Performing a simple smoke test"
+
+    environment_setup
+
+    pip install python-openstackclient
+
+    echo "Running kolla-ansible init-runonce"
+    source "${KOLLA_CONFIG_PATH:-/etc/kolla}/admin-openrc.sh"
+    ${KOLLA_VENV_PATH:-$HOME/kolla-venv}/share/kolla-ansible/init-runonce
+
+    echo "Creating a VM"
+    openstack server create --wait --image cirros --flavor m1.tiny --key-name mykey --network demo-net demo1
+    openstack server show demo1
+    # TODO(mgoddard): Test SSH connectivity to the VM.
+
+    echo "Deleting the VM"
+    openstack server delete --wait demo1
+}
diff --git a/dev/overcloud-test.sh b/dev/overcloud-test.sh
new file mode 100755
index 00000000..b27e2fab
--- /dev/null
+++ b/dev/overcloud-test.sh
@@ -0,0 +1,16 @@
+#!/bin/bash
+
+set -eu
+set -o pipefail
+
+PARENT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+
+source "${PARENT}/functions"
+
+
+function main {
+    config_init
+    overcloud_test
+}
+
+main
diff --git a/playbooks/kayobe-overcloud-base/run.yml b/playbooks/kayobe-overcloud-base/run.yml
index 3d09ea50..a5f1a442 100644
--- a/playbooks/kayobe-overcloud-base/run.yml
+++ b/playbooks/kayobe-overcloud-base/run.yml
@@ -8,3 +8,8 @@
       shell:
         cmd: dev/overcloud-deploy.sh > {{ logs_dir }}/ansible/overcloud-deploy
         chdir: "{{ kayobe_src_dir }}"
+
+    - name: Perform testing of the overcloud
+      shell:
+        cmd: dev/overcloud-test.sh > {{ logs_dir }}/ansible/overcloud-test
+        chdir: "{{ kayobe_src_dir }}"
-- 
GitLab