summaryrefslogtreecommitdiffstats
path: root/doctor_tests/admin_tool/fenix
diff options
context:
space:
mode:
authorTomi Juvonen <tomi.juvonen@nokia.com>2018-12-21 12:43:57 +0200
committerTomi Juvonen <tomi.juvonen@nokia.com>2019-03-26 15:53:28 +0200
commit73605c5c34b97ab56306bfa9af0f5888f3c7e46d (patch)
tree7175ebaec5ed949d32ee62b7ac412729b366446e /doctor_tests/admin_tool/fenix
parent33293e9c23a21ad3228f46d2063f18c915eb2b79 (diff)
Support Fenix as admin tool
If ADMIN_TOOL_TYPE=fenix we run maintenance testing using Fenix instead of sample implementation. Testing will build Fenix Docker container from latest master and make configuration according to controller host. JIRA: DOCTOR-131 Change-Id: I84c566b7afc3c4e488aeed63b5cf5c75046d1427 Signed-off-by: Tomi Juvonen <tomi.juvonen@nokia.com>
Diffstat (limited to 'doctor_tests/admin_tool/fenix')
-rw-r--r--doctor_tests/admin_tool/fenix/Dockerfile33
-rwxr-xr-xdoctor_tests/admin_tool/fenix/run32
2 files changed, 65 insertions, 0 deletions
diff --git a/doctor_tests/admin_tool/fenix/Dockerfile b/doctor_tests/admin_tool/fenix/Dockerfile
new file mode 100644
index 00000000..90039b0d
--- /dev/null
+++ b/doctor_tests/admin_tool/fenix/Dockerfile
@@ -0,0 +1,33 @@
+FROM gliderlabs/alpine:3.5
+
+ARG BRANCH=master
+ARG OPENSTACK=master
+
+EXPOSE 12347
+
+RUN echo "Building Fenix container against OpenStack $OPENSTACK" && \
+ echo "Building Fenix with $BRANCH" && \
+ mkdir /etc/fenix && \
+ mkdir -p /var/tmp/fenix
+WORKDIR /var/tmp/fenix
+COPY fenix*.conf /etc/fenix/
+RUN apk --no-cache add ca-certificates && \
+ apk --no-cache add --update python3 sshpass py-pip git curl && \
+ apk --no-cache add --virtual .build-deps --update \
+ python-dev python3-dev build-base linux-headers libffi-dev \
+ openssl-dev libjpeg-turbo-dev && \
+ curl https://git.openstack.org/cgit/openstack/requirements/plain/upper-constraints.txt?h=$OPENSTACK > upper-constraints.txt && \
+ pip install --upgrade pip && \
+ pip install alembic aodhclient ast decorator \
+ eventlet flask Flask-RESTful importlib \
+ keystoneauth1 logging python-novaclient oslo.config oslo.db \
+ oslo.log oslo.messaging oslo.serialization oslo.service \
+ oslotest oslo.utils pbr pymysql setuptools six sqlalchemy \
+ wsgiref -cupper-constraints.txt && \
+ git clone https://git.openstack.org/openstack/fenix -b $BRANCH /fenix && \
+ rm -fr /var/tmp/fenix
+COPY run /fenix
+COPY overcloudrc /fenix
+WORKDIR /fenix
+RUN python setup.py install
+CMD ./run
diff --git a/doctor_tests/admin_tool/fenix/run b/doctor_tests/admin_tool/fenix/run
new file mode 100755
index 00000000..2a2e37cd
--- /dev/null
+++ b/doctor_tests/admin_tool/fenix/run
@@ -0,0 +1,32 @@
+#!/bin/sh
+. overcloudrc
+
+# Start the first process
+nohup python /fenix/fenix/cmd/engine.py > /var/log/fenix-engine.log&
+status=$?
+if [ $status -ne 0 ]; then
+ echo "Failed to start engine.py: $status"
+ exit $status
+fi
+
+# Start the second process
+nohup python /fenix/fenix/cmd/api.py > /var/log/fenix-api.log&
+status=$?
+if [ $status -ne 0 ]; then
+ echo "Failed to start api.py: $status"
+ exit $status
+fi
+
+echo "started Fenix: engine and api"
+while sleep 60; do
+ ps aux |grep "cmd/engine.py" |grep -q -v grep
+ PROCESS_1_STATUS=$?
+ ps aux |grep "cmd/api.py" |grep -q -v grep
+ PROCESS_2_STATUS=$?
+ # If the greps above find anything, they exit with 0 status
+ # If they are not both 0, then something is wrong
+ if [ $PROCESS_1_STATUS -ne 0 -o $PROCESS_2_STATUS -ne 0 ]; then
+ echo "One of the processes has already exited."
+ exit 1
+ fi
+done