From f48ec302ddde2c328ba840209ee4cf842b719509 Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Mon, 14 Dec 2020 11:08:22 -0600 Subject: [PATCH 1/2] add starter status page --- Workbench/docker-compose.yml | 2 -- Workbench/scripts/gethealth.py | 24 +++++++++++++++++++++++ Workbench/scripts/setupcron.sh | 10 ++++++++++ Workbench/scripts/update-health-status.sh | 5 +++++ Workbench/webproxy/Dockerfile | 4 ++++ 5 files changed, 43 insertions(+), 2 deletions(-) create mode 100644 Workbench/scripts/gethealth.py create mode 100644 Workbench/scripts/setupcron.sh create mode 100644 Workbench/scripts/update-health-status.sh diff --git a/Workbench/docker-compose.yml b/Workbench/docker-compose.yml index ad63daa..86c3568 100644 --- a/Workbench/docker-compose.yml +++ b/Workbench/docker-compose.yml @@ -293,7 +293,6 @@ services: wordpress_server: build: ./wordpress_server/ - container_name: wordpress_server networks: - net depends_on: @@ -320,7 +319,6 @@ services: wordpress_data: build: ./wordpress_data/ - container_name: wordpress_data networks: - net volumes: diff --git a/Workbench/scripts/gethealth.py b/Workbench/scripts/gethealth.py new file mode 100644 index 0000000..715f8ef --- /dev/null +++ b/Workbench/scripts/gethealth.py @@ -0,0 +1,24 @@ +#!/bin/python + +containers = ["idp", "grouper_ui", "grouper_ws", "grouper_daemon", "grouper_data", "comanage", "comanage-cron", "comanage_data", "midpoint_server", "midpoint_data", "webproxy", "wordpress_server", "wordpress_data", "mq", "directory", "sources"] + +print("") +for container in containers: + from subprocess import Popen, PIPE + dcmd = "docker ps -f name=workbench_" + container + "_1 --format '{{ .Status }} '" + pipe = Popen(dcmd, shell=True, stdout=PIPE) + healthstatus = 'unknown' + for line in pipe.stdout: + if ('(' in line): + healthstatus=line.split('(')[1].split(')')[0].strip() + if (healthstatus == "healthy"): + healthstatus='' + healthstatus + '' + elif (healthstatus == "unhealthy"): + healthstatus='' + healthstatus + '' + else: + healthstatus='' + healthstatus + '' + else: + healthstatus='unspecified' + + print("") +print("
ContainerHealth Status
" + container + "" + healthstatus + "
") diff --git a/Workbench/scripts/setupcron.sh b/Workbench/scripts/setupcron.sh new file mode 100644 index 0000000..db74136 --- /dev/null +++ b/Workbench/scripts/setupcron.sh @@ -0,0 +1,10 @@ +#!/bin/bash +CRONFILE=/csp-tap/InCommonTAP-Examples/Workbench/scripts/csp-cron + +#build crontab file +echo "#update CSP container status" > ${CRONFILE} +echo "*/5 * * * * /csp-tap/InCommonTAP-Examples/Workbench/scripts/update-health-status.sh" >> ${CRONFILE} +chmod 644 ${CRONFILE} + +#install crontab +crontab ${CRONFILE} diff --git a/Workbench/scripts/update-health-status.sh b/Workbench/scripts/update-health-status.sh new file mode 100644 index 0000000..c981f42 --- /dev/null +++ b/Workbench/scripts/update-health-status.sh @@ -0,0 +1,5 @@ +#!/bin/bash + +/csp-tap/InCommonTAP-Examples/Workbench/scripts/gethealth.py > /csp-tap/InCommonTAP-Examples/Workbench/scripts/gethealth-output.txt + +docker cp /csp-tap/InCommonTAP-Examples/Workbench/scripts/gethealth-output.txt workbench_webproxy_1:/var/www/html/status/index.html \ No newline at end of file diff --git a/Workbench/webproxy/Dockerfile b/Workbench/webproxy/Dockerfile index 46ec76f..a4ffac3 100644 --- a/Workbench/webproxy/Dockerfile +++ b/Workbench/webproxy/Dockerfile @@ -3,17 +3,21 @@ FROM tier/shibboleth_sp:latest ARG CSPHOSTNAME=localhost ENV CSPHOSTNAME=$CSPHOSTNAME +RUN yum -y install cronie + #COPY container_files/httpd/httpd.conf /etc/httpd/conf/ COPY container_files/httpd/proxy.conf /etc/httpd/conf.d/ COPY container_files/httpd/shib.conf /etc/httpd/conf.d/ COPY container_files/httpd/ssl.conf /etc/httpd/conf.d/ COPY container_files/httpd/index.html /var/www/html/ +COPY container_files/httpd/index.php /var/www/html/ COPY container_files/httpd/csp_logo.jpg /var/www/html/ COPY container_files/httpd/server-chain.crt /etc/pki/tls/certs/server-chain.crt COPY container_files/httpd/.htpasswd /etc/httpd/ COPY container_files/httpd/localhost.crt /etc/pki/tls/certs/localhost.crt COPY container_files/httpd/localhost.key /etc/pki/tls/private/localhost.key RUN chmod 600 /etc/pki/tls/certs/localhost.crt && chmod 600 /etc/pki/tls/private/localhost.key +RUN mkdir -p /var/www/html/status COPY container_files/shibboleth/ /etc/shibboleth/ COPY container_files/system/setservername.sh /usr/local/bin/ From 36284a842100402bbbffce6a49c5553a5ed71ccd Mon Sep 17 00:00:00 2001 From: Paul Caskey Date: Mon, 14 Dec 2020 11:26:30 -0600 Subject: [PATCH 2/2] bugfix --- Workbench/scripts/setupcron.sh | 2 +- Workbench/webproxy/Dockerfile | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/Workbench/scripts/setupcron.sh b/Workbench/scripts/setupcron.sh index db74136..afd1f5c 100644 --- a/Workbench/scripts/setupcron.sh +++ b/Workbench/scripts/setupcron.sh @@ -3,7 +3,7 @@ CRONFILE=/csp-tap/InCommonTAP-Examples/Workbench/scripts/csp-cron #build crontab file echo "#update CSP container status" > ${CRONFILE} -echo "*/5 * * * * /csp-tap/InCommonTAP-Examples/Workbench/scripts/update-health-status.sh" >> ${CRONFILE} +echo "*/3 * * * * /csp-tap/InCommonTAP-Examples/Workbench/scripts/update-health-status.sh" >> ${CRONFILE} chmod 644 ${CRONFILE} #install crontab diff --git a/Workbench/webproxy/Dockerfile b/Workbench/webproxy/Dockerfile index a4ffac3..e548133 100644 --- a/Workbench/webproxy/Dockerfile +++ b/Workbench/webproxy/Dockerfile @@ -10,7 +10,6 @@ COPY container_files/httpd/proxy.conf /etc/httpd/conf.d/ COPY container_files/httpd/shib.conf /etc/httpd/conf.d/ COPY container_files/httpd/ssl.conf /etc/httpd/conf.d/ COPY container_files/httpd/index.html /var/www/html/ -COPY container_files/httpd/index.php /var/www/html/ COPY container_files/httpd/csp_logo.jpg /var/www/html/ COPY container_files/httpd/server-chain.crt /etc/pki/tls/certs/server-chain.crt COPY container_files/httpd/.htpasswd /etc/httpd/