aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKien Nguyen <kiennt65@viettel.com.vn>2018-11-07 09:09:04 +0700
committerGaëtan Trellu <gaetan.trellu@incloudus.com>2019-08-14 12:32:51 -0400
commitfbac54c5f5e4db06b26b7f57b1e30da7761bf826 (patch)
tree39e1f70e731679a01d1153755a5ffc3722504fc3
parentb599f78dd726751b1e6d47a61430590fabd3f2e9 (diff)
downloadkolla-ansible-fbac54c5f5e4db06b26b7f57b1e30da7761bf826.tar.gz
kolla-ansible-fbac54c5f5e4db06b26b7f57b1e30da7761bf826.zip
Testing Masakari role in gate
Add Masakari testing into the Gate. Change-Id: I52df33f963e7d2ae4059887df3d24d9e6642134e Depends-On: https://review.opendev.org/#/c/615469/ Depends-On: https://review.opendev.org/#/c/615715 Implements: blueprint ansible-masakari Co-Authored-By: Gaëtan Trellu <gaetan.trellu@incloudus.com>
-rw-r--r--tests/run.yml7
-rw-r--r--tests/templates/globals-default.j24
-rw-r--r--tests/templates/inventory.j210
-rwxr-xr-xtests/test-masakari.sh62
-rwxr-xr-xtools/setup_gate.sh6
-rw-r--r--zuul.d/jobs.yaml20
-rw-r--r--zuul.d/project.yaml10
7 files changed, 119 insertions, 0 deletions
diff --git a/tests/run.yml b/tests/run.yml
index c24044ac7..a147617db 100644
--- a/tests/run.yml
+++ b/tests/run.yml
@@ -222,6 +222,13 @@
chdir: "{{ kolla_ansible_src_dir }}"
when: scenario == "ironic"
+ - name: Run test-masakari.sh script
+ script:
+ cmd: test-masakari.sh
+ executable: /bin/bash
+ chdir: "{{ kolla_ansible_src_dir }}"
+ when: scenario == "masakari"
+
- name: Run reconfigure.sh script
script:
cmd: reconfigure.sh
diff --git a/tests/templates/globals-default.j2 b/tests/templates/globals-default.j2
index c61a08e70..c016e3098 100644
--- a/tests/templates/globals-default.j2
+++ b/tests/templates/globals-default.j2
@@ -83,3 +83,7 @@ enable_barbican: "yes"
enable_ironic: "yes"
ironic_dnsmasq_dhcp_range: "10.42.0.2,10.42.0.254"
{% endif %}
+
+{% if scenario == "masakari" %}
+enable_masakari: "yes"
+{% endif %}
diff --git a/tests/templates/inventory.j2 b/tests/templates/inventory.j2
index 105159203..8b5633b28 100644
--- a/tests/templates/inventory.j2
+++ b/tests/templates/inventory.j2
@@ -381,6 +381,16 @@ network
[manila-data:children]
manila
+# Masakari
+[masakari-api:children]
+control
+
+[masakari-engine:children]
+control
+
+[masakari-monitors:children]
+compute
+
# Swift
[swift-proxy-server:children]
swift
diff --git a/tests/test-masakari.sh b/tests/test-masakari.sh
new file mode 100755
index 000000000..4601a2b58
--- /dev/null
+++ b/tests/test-masakari.sh
@@ -0,0 +1,62 @@
+#!/bin/bash
+
+set -o xtrace
+set -o errexit
+set -o pipefail
+
+# Enable unbuffered output for Ansible in Jenkins.
+export PYTHONUNBUFFERED=1
+
+function test_masakari_logged {
+
+ # Source OpenStack credentials
+ . /etc/kolla/admin-openrc.sh
+
+ # Activate virtualenv to access Masakari client
+ . ~/openstackclient-venv/bin/activate
+
+ # NOTE:(gtrellu) Masakari client/API has a bug which generate a mismatch
+ # between what the client send and what the API should received.
+ CLIENT_OPTS="--os-ha-api-version 1.0"
+
+ # Get the first Nova compute
+ if ! HYPERVISOR=$(openstack hypervisor list -f value -c 'Hypervisor Hostname' | head -n1); then
+ echo "Unable to get Nova hypervisor list"
+ return 1
+ fi
+
+ # Create Masakari segment
+ if ! openstack $CLIENT_OPTS segment create test_segment auto COMPUTE; then
+ echo "Unable to create Masakari segment"
+ return 1
+ fi
+
+ # Add Nova compute to Masakari segment
+ if ! openstack $CLIENT_OPTS segment host create $HYPERVISOR COMPUTE SSH test_segment; then
+ echo "Unable to add Nova hypervisor to Masakari segment"
+ return 1
+ fi
+
+ # Delete Masakari segment
+ if ! openstack $CLIENT_OPTS segment delete test_segment; then
+ echo "Unable to delete Masakari segment"
+ return 1
+ fi
+
+ # Exit virtualenv
+ deactivate
+}
+
+function test_masakari {
+ echo "Testing Masakari"
+ test_masakari_logged > /tmp/logs/ansible/test-masakari 2>&1
+ result=$?
+ if [[ $result != 0 ]]; then
+ echo "Testing Masakari failed. See ansible/test-masakari for details"
+ else
+ echo "Successfully tested Masakari. See ansible/test-masakari for details"
+ fi
+ return $result
+}
+
+test_masakari
diff --git a/tools/setup_gate.sh b/tools/setup_gate.sh
index e5da68d98..758214094 100755
--- a/tools/setup_gate.sh
+++ b/tools/setup_gate.sh
@@ -19,6 +19,9 @@ function setup_openstack_clients {
if [[ $ACTION == ironic ]]; then
~/openstackclient-venv/bin/pip install python-ironicclient
fi
+ if [[ $ACTION == masakari ]]; then
+ ~/openstackclient-venv/bin/pip install python-masakariclient
+ fi
}
function setup_config {
@@ -58,6 +61,9 @@ EOF
if [[ $ACTION == "ironic" ]]; then
GATE_IMAGES+=",dnsmasq,ironic,iscsid"
fi
+ if [[ $ACTION == "masakari" ]]; then
+ GATE_IMAGES+=",masakari"
+ fi
cat <<EOF | sudo tee /etc/kolla/kolla-build.conf
[DEFAULT]
diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml
index e83d12889..113cf2719 100644
--- a/zuul.d/jobs.yaml
+++ b/zuul.d/jobs.yaml
@@ -203,3 +203,23 @@
vars:
base_distro: ubuntu
install_type: binary
+
+- job:
+ name: kolla-ansible-ubuntu-source-masakari
+ parent: kolla-ansible-base
+ nodeset: kolla-ansible-bionic
+ voting: false
+ vars:
+ base_distro: ubuntu
+ install_type: source
+ scenario: masakari
+
+- job:
+ name: kolla-ansible-centos-source-masakari
+ parent: kolla-ansible-base
+ nodeset: kolla-ansible-centos
+ voting: false
+ vars:
+ base_distro: centos
+ install_type: source
+ scenario: masakari
diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml
index a176b3be9..c0648870b 100644
--- a/zuul.d/project.yaml
+++ b/zuul.d/project.yaml
@@ -30,6 +30,14 @@
files:
- ^ansible/roles/(barbican|heat|mistral|redis|tacker)/
- ^tests/test-scenario-nfv.sh
+ - kolla-ansible-ubuntu-source-masakari:
+ files:
+ - ^ansible/roles/masakari/
+ - ^tests/test-masakari.sh
+ - kolla-ansible-centos-source-masakari:
+ files:
+ - ^ansible/roles/masakari/
+ - ^tests/test-masakari.sh
- kolla-ansible-centos-source-ironic
- kolla-ansible-centos-binary-ironic
- kolla-ansible-ubuntu-source-ironic
@@ -50,6 +58,8 @@
jobs:
- kolla-ansible-bifrost-centos-source
- kolla-ansible-ubuntu-source-zun
+ - kolla-ansible-ubuntu-source-masakari
+ - kolla-ansible-centos-source-masakari
- kolla-ansible-centos-source-scenario-nfv
- kolla-ansible-ubuntu-source-cinder-lvm
- kolla-ansible-centos-source-cinder-lvm