+cat >./nginx.conf <<EOL
+server {
+ listen 80;
+ server_name dcae.simpledemo.onap.org;
+ root /www/healthcheck;
+
+ location /healthcheck {
+ try_files /services.yaml =404;
+ }
+ location /R1 {
+ proxy_pass http://${CONSULIP}:8500/v1/health/state/passing;
+ }
+ location /R2MIN{
+ try_files /r2mvp_healthy.yaml =404;
+ }
+ location /R2 {
+ try_files /r2_healthy.yaml =404;
+ }
+ location /R2PLUS {
+ try_files /r2plus_healthy.yaml =404;
+ }
+}
+EOL
+
+HEALTHPORT=8000
+docker run -d \
+--name dcae-health \
+-p ${HEALTHPORT}:80 \
+-v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf" \
+-v "/tmp/healthcheck:/www/healthcheck" \
+ nginx
+
+echo "Healthcheck API available at http://${MYFLOATIP}:${HEALTHPORT}/healthcheck"
+echo " http://${MYFLOATIP}:${HEALTHPORT}/R1"
+echo " http://${MYFLOATIP}:${HEALTHPORT}/R2MIN"
+echo " http://${MYFLOATIP}:${HEALTHPORT}/R2PLUS"
+
+# run forever for updating health status based on consul
+while :
+do
+ rm -rf /tmp/healthcheck/*
+ # all registered services
+ SERVICES=$(curl -s http://consul:8500/v1/agent/services |jq '. | to_entries[] | .value.Service')
+ # passing services
+ SERVICES=$(curl -s http://consul:8500/v1/health/state/passing | jq '.[] | .ServiceName')
+
+ # remove empty lines/entries
+ SERVICES=$(echo "$SERVICES" | sed '/^\s*\"\"\s*$/d' |sed '/^\s*$/d')
+
+ SERVICES_JSON=$(echo "$SERVICES" | sed 's/\"$/\",/g' | sed '$ s/.$//')
+
+
+ PLT_CONSUL=$(echo "$SERVICES" |grep consul)
+ PLT_CBS=$(echo "$SERVICES" |grep "config_binding_service")
+ MVP_PG_HOLMES=$(echo "$SERVICES" |grep "pgHolmes")
+ MVP_VES=$(echo "$SERVICES" |grep "mvp.*ves")
+ MVP_TCA=$(echo "$SERVICES" |grep "mvp.*tca")
+ MVP_HR=$(echo "$SERVICES" |grep "mvp.*holmes-rule")
+ MVP_HE=$(echo "$SERVICES" |grep "mvp.*holmes-engine")
+
+ PLT_CM=$(echo "$SERVICES" |grep "cloudify.*manager")
+ PLT_DH=$(echo "$SERVICES" |grep "deployment.*handler")
+ PLT_PH=$(echo "$SERVICES" |grep "policy.*handler")
+ PLT_SCH=$(echo "$SERVICES" |grep "service.*change.*handler")
+ PLT_INV=$(echo "$SERVICES" |grep "inventory")
+ PLT_PG_INVENTORY=$(echo "$SERVICES" |grep "pgInventory")
+
+ PLUS_MHB=$(echo "$SERVICES" |grep "heartbeat")
+ PLUS_PRH=$(echo "$SERVICES" |grep "prh")
+ PLUS_MPR=$(echo "$SERVICES" |grep "mapper")
+ PLUS_TRAP=$(echo "$SERVICES" |grep "snmptrap")
+
+ DATA="{\"healthy\" : \"$(date)\", \"healthy_services\": [${SERVICES_JSON}]}"
+ if [[ -n $PLT_CONSUL && -n $PLT_CBS && -n $MVP_PG_HOLMES && -n $MVP_VES && \
+ -n $MVP_TCA && -n $MVP_HR && -n $MVP_HE ]]; then
+ echo "${DATA}" > /tmp/healthcheck/r2mvp_healthy.yaml
+ echo "${DATA}" > /tmp/healthcheck/services.yaml
+ fi
+
+ if [[ -n $CONSUL && -n $CBS && -n $PLT_CM && -n $PLT_DH && \
+ -n $PLT_PH && -n $PLT_SCH && -n $PLT_INV && -n $PLT_PG_INVENTORY ]]; then
+ echo "${DATA}" > /tmp/healthcheck/r2_healthy.yaml
+
+ if [[ -n $PLUS_MHB && -n $PLUS_PRH && -n $PLUS_MPR && -n $PLUS_TRAP ]]; then
+ echo "${DATA}" > /tmp/healthcheck/r2plus_healthy.yaml
+ fi
+ fi
+
+ sleep 60
+done
+