X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=boot%2Fdcae2_vm_init.sh;h=17ab00345fde16162b22e8581c183482ab5bd746;hb=3e4c0d93034e07a93d881ef13db3e5f2e2f9f3ba;hp=a79b9c190f8c4acb63130e3671207f3a43359eba;hpb=74cb51c88f99f9128d43f4645c6f2aa86163d43b;p=demo.git diff --git a/boot/dcae2_vm_init.sh b/boot/dcae2_vm_init.sh old mode 100644 new mode 100755 index a79b9c19..17ab0034 --- a/boot/dcae2_vm_init.sh +++ b/boot/dcae2_vm_init.sh @@ -1,7 +1,7 @@ #!/bin/bash ############################################################################# # -# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2017-2018 AT&T Intellectual Property. All rights reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -17,573 +17,226 @@ ############################################################################# -# prepare a curl command -# parameters: URL METHOD CURLOPTIONS EXTRA_HEADERS_AS_A_STRING AUTH_AS_USER:PASS DATA -assemble_curl_command() -{ - local URL="$1" - local METHOD="$2" - local CURLOPTIONS="$3" - local EXTRA_HEADERS="$4" - local AUTH="$5" - local DATA="$6" - local CMD='' - if [ ! -z "$METHOD" ]; then - CMD="curl $CURLOPTIONS $METHOD" - else - CMD="curl $CURLOPTIONS -X GET" - fi - if [ ! -z "$EXTRA_HEADERS" ]; then - CMD="$CMD $EXTRA_HEADERS" - fi - if [ ! -z "$AUTH" ]; then - CMD="$CMD $AUTH" - fi - if [ ! -z "$DATA" ]; then - CMD="$CMD $DATA" - fi - CMD="$CMD $URL" - echo "$CMD" -} - - -# Make a rest API call -# parameters: URL METHOD expected_response_code EXTRA_HEADERS_AS_A_STRING AUTH_AS_USER:PASS DATA -call_api_for_response_code() -{ - local CURLOPTIONS='-kIso /dev/null -w "%{http_code}"' - read -r CMDF <<-END -$(assemble_curl_command "$1" "$2" "$CURLOPTIONS" "$4" "$5" "$6") -END - eval "$CMDF"; -} -call_api_for_response_body() -{ - local CURLOPTIONS='-ksb' - read -r CMDF <<-END -$(assemble_curl_command "$1" "$2" "$CURLOPTIONS" "$4" "$5" "$6") -END - eval "$CMDF" -} -call_api_for_response_header() -{ - local CURLOPTIONS='-ks -o /dev/null -D -' - read -r CMDF <<-END -$(assemble_curl_command "$1" "$2" "$CURLOPTIONS" "$4" "$5" "$6") -END - eval "$CMDF" -} -call_api_for_verbose() -{ - local CURLOPTIONS='-kIv' - read -r CMDF <<-END -$(assemble_curl_command "$1" "$2" "$CURLOPTIONS" "$4" "$5" "$6") -END - eval "$CMDF" - #local TFILE=$(mktemp /tmp/curlcmd.XXXXXXXXX) - #echo $CMD > $TFILE - #eval $(cat $TFILE) - #rm -f $TFILE -} - - -# Wait till a web service API return specified response code -# parameters: URL METHOD EXPECTED_RESP_CODE EXTRA_HEADERS_AS_A_STRING AUTH_AS_USER:PASS DATA -wait_for_api() -{ - local RESP="$3" - local ACTUALRESP - ACTUALRESP=$(call_api_for_response_code "$1" "$2" "$3" "$4" "$5" "$6") - while [ "$ACTUALRESP" != "$RESP" ]; do - echo "RESP CODE $ACTUALRESP, not as expected RESP CODE $RESP @ $(date)." - sleep 30 - ACTUALRESP=$(call_api_for_response_code "$1" "$2" "$3" "$4" "$5" "$6") - done - echo "RESP CODE $ACTUALRESP, matches with expected RESP CODE $RESP." -} - -# Wait till a TCP port is open -# parameters: HOST PORT -wait_for_tcp_port() -{ - local DEST="$1" - local PORT="$2" - while ! nc -z -w 1 "$DEST" "$PORT"; do - sleep 4 - echo '.' - done -} - - - - -wait_for_aai_ready() -{ - # wait till A&AI up and ready - local AAIHOST - AAIHOST=$(cat /opt/config/aai1_ip_addr.txt) - local AAIURL="https://$AAIHOST:8443/aai/v11/examples/cloud-regions" - local AAIMETHOD='-X GET' - local AAIRESP='200' - local AAIHEADERS='-H "X-FromAppId: AAI-Temp-Tool" -H "X-TransactionId: AAI-Temp-Tool" -H "Real-Time: true" -H "Content-Type: application/json" -H "Accept: application/json"' - local AAIAUTH='-u AAI:AAI' - local AAIDATA='' - echo "===> Waiting for A&AI to get ready for getting $AAIRESP from $AAIURL @ $(date)" - wait_for_api "$AAIURL" "$AAIMETHOD" "$AAIRESP" "$AAIHEADERS" "$AAIAUTH" "$AAIDATA" - echo "===> A&AI ready @ $(date)" -} - - - -wait_for_multicloud_ready() -{ - # wait till MultiCloud up and ready - local MCHOST - MCHOST=$(cat /opt/config/openo_ip_addr.txt) - local MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" - local MCMETHOD='-X GET' - local MCRESP='200' - local MCHEADERS='-H "Real-Time: true" -H "Content-Type: application/json" -H "Accept: application/json"' - local MCAUTH='' - local MCDATA='' - echo "===> Waiting for MultiCloud to get ready for getting $MCRESP from $MCURL @ $(date)" - wait_for_api "$MCURL" "$MCMETHOD" "$MCRESP" "$MCHEADERS" "$MCAUTH" "$MCDATA" - echo "===> MultiCloud ready @ $(date)" -} - -register_multicloud_pod25dns_with_aai() -{ - # Register MultiCloud with A&AI - local CLOUD_OWNER='pod25dns' - local CLOUD_VERSION='titanium_cloud' - local CLOUD_REGION - local CLOUD_ENV - local CLOUD_IDENTITY_URL - local DNSAAS_SERVICE_URL - local DNSAAS_USERNAME='demo' - local DNSAAS_PASSWORD='onapdemo' - - CLOUD_REGION="$(cat /opt/config/dnsaas_region.txt)" - CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" - MCIP="$(cat /opt/config/openo_ip_addr.txt)" - CLOUD_IDENTITY_URL="http://${MCIP}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION}/identity/v2.0" - - local RESPCODE - DNSAAS_SERVICE_URL="$(cat /opt/config/dnsaas_keystone_url.txt)" - # a tenant of the same name must be set up on the Deisgnate providing OpenStack - DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" - cat >"/tmp/${CLOUD_OWNER}_${CLOUD_REGION}.json" <"/tmp/${CLOUD_OWNER}_${CLOUD_REGION}.json" < Register DNS zone $ZONENAME under $DNSAAS_TENANT_NAME" - - - ### Get Token - local TOKEN - - MCURL="${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" - echo "=====> Getting token from $MCURL" - #TOKEN=$(call_api_for_response_header "$MCURL" "$MCMETHOD" "$MCRESP" "$MCHEADERS" "$MCAUTH" "$MCDATA" | grep 'X-Subject-Token' | sed "s/^.*: //") - TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MCURL}" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") - echo "Received Keystone token $TOKEN from $MCURL" - if [ -z "$TOKEN" ]; then - echo "Faile to acquire token for creating DNS zone. Exit" - exit 1 - fi - - local PROJECTID - PROJECTID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"project_id":"\([a-zA-Z0-9-]*\)",.*$/\1/') - if [ ! -z "$PROJECTID" ]; then - ### query the zone with zone id - echo "!!!!!!> zone $ZONENAME already registered by project $PROJECTID" - else - ### create a zone - echo "=====> No zone of same name $ZONENAME found, creating new zone " - curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X POST -d "{ \"name\": \"$ZONENAME\", \"email\": \"lji@research.att.com\"}" "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" - fi - - ### list zones - echo "=====> Zone listing" - curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones" | python -m json.tool - - ### query the zone with zone name - #echo "=====> Querying zone $ZONENAME" - #curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" - - ### export ZONE id - #local ZONEID - #ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') - echo "=====> After creation, zone $ZONENAME ID is $ZONEID" - - ### query the zone with zone id - #echo "=====> Querying zone $ZONENAME by ID $ZONEID" - #curl -sv -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones/${ZONEID}" -} - - -delete_dns_zone() -{ - local CLOUD_OWNER='pod25' - local CLOUD_REGION - local CLOUD_VERSION='titanium_cloud' - local CLOUD_ENV - local DCAE_ZONE - local DNSAAS_TENANT_NAME - local MCHOST - local MCURL - local MCMETHOD='-X GET' - local MCRESP='200' - local MCHEADERS='-H "Real-Time: true" -H "Content-Type: application/json" -H "Accept: application/json"' - local MCAUTH='' - local MCDATA='' - local MULTICLOUD_PLUGIN_ENDPOINT - - CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" - CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" - DCAE_ZONE="$(cat /opt/config/dcae_zone.txt)" - DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" - MCHOST=$(cat /opt/config/openo_ip_addr.txt) - MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" - - local DCAE_DOMAIN - local ZONENAME - DCAE_DOMAIN="$(cat /opt/config/dcae_domain.txt)" - ZONENAME="${DCAE_ZONE}.${DCAE_DOMAIN}." - - MCDATA='"{\"auth\":{\"tenantName\": \"'${DNSAAS_TENANT_NAME}'\"}}"' - MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} - - ### Get Token - local TOKEN - TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") - - local ZONEID - ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') - - curl -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X DELETE "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones/${ZONEID}" -} - -list_dns_zone() -{ - local CLOUD_OWNER='pod25' - local CLOUD_REGION - local CLOUD_VERSION='titanium_cloud' - local CLOUD_ENV - local DCAE_ZONE - local DNSAAS_TENANT_NAME - local MCHOST - local MCURL - local MCMETHOD='-X GET' - local MCRESP='200' - local MCHEADERS='-H "Real-Time: true" -H "Content-Type: application/json" -H "Accept: application/json"' - local MCAUTH='' - local MCDATA='' - local MULTICLOUD_PLUGIN_ENDPOINT - - CLOUD_REGION="$(cat /opt/config/openstack_region.txt)" - CLOUD_ENV="$(cat /opt/config/cloud_env.txt)" - DCAE_ZONE="$(cat /opt/config/dcae_zone.txt)" - DNSAAS_TENANT_NAME="$(cat /opt/config/dnsaas_tenant_name.txt)" - MCHOST=$(cat /opt/config/openo_ip_addr.txt) - MCURL="http://$MCHOST:9005/api/multicloud-titanium_cloud/v0/swagger.json" - - MCDATA='"{\"auth\":{\"tenantName\": \"'${DNSAAS_TENANT_NAME}'\"}}"' - MULTICLOUD_PLUGIN_ENDPOINT=http://${MCHOST}/api/multicloud-titanium_cloud/v0/${CLOUD_OWNER}_${CLOUD_REGION} - - ### Get Token - local TOKEN - TOKEN=$(curl -v -s -H "Content-Type: application/json" -X POST -d "{\"auth\":{\"tenantName\": \"${DNSAAS_TENANT_NAME}\"}}" "${MULTICLOUD_PLUGIN_ENDPOINT}/identity/v3/auth/tokens" 2>&1 | grep X-Subject-Token | sed "s/^.*: //") - - local DCAE_DOMAIN - local ZONENAME - DCAE_DOMAIN="$(cat /opt/config/dcae_domain.txt)" - ZONENAME="${DCAE_ZONE}.${DCAE_DOMAIN}." - local ZONEID - ZONEID=$(curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones?name=${ZONENAME}" |sed 's/^.*"id":"\([a-zA-Z0-9-]*\)",.*$/\1/') - - curl -v -s -H "Content-Type: application/json" -H "X-Auth-Token: $TOKEN" -X GET "${MULTICLOUD_PLUGIN_ENDPOINT}/dns-delegate/v2/zones/${ZONEID}/recordsets" -} +################################## start of vm_init ##################################### +set -ex +URL_ROOT='nexus.onap.org/service/local/repositories/raw/content' +REPO_BLUEPRINTS='org.onap.dcaegen2.platform.blueprints' +REPO_DEPLOYMENTS='org.onap.dcaegen2.deployments' +if [ -e /opt/config/dcae_deployment_profile.txt ]; then + DEPLOYMENT_PROFILE=$(cat /opt/config/dcae_deployment_profile.txt) +fi +DEPLOYMENT_PROFILE=${DEPLOYMENT_PROFILE:-R3} NEXUS_USER=$(cat /opt/config/nexus_username.txt) NEXUS_PASSWORD=$(cat /opt/config/nexus_password.txt) NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt) DOCKER_VERSION=$(cat /opt/config/docker_version.txt) -# use rand_str as zone -ZONE=$(cat /opt/config/rand_str.txt) + MYFLOATIP=$(cat /opt/config/dcae_float_ip.txt) MYLOCALIP=$(cat /opt/config/dcae_ip_addr.txt) +HTTP_PROXY=$(cat /opt/config/http_proxy.txt) +HTTPS_PROXY=$(cat /opt/config/https_proxy.txt) -# start docker image pulling while we are waiting for A&AI to come online -docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" -docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" && docker pull nginx & - -######################################### -# Wait for then register with A&AI -######################################## - -DNSAAS_PROXYED=$(tr '[:upper:]' '[:lower:]' < /opt/config/dnsaas_config_enabled.txt) -if [ "$DNSAAS_PROXYED" == 'true' ]; then - echo "Using proxyed DNSaaS service, performing additional registration and configuration" - wait_for_aai_ready - - register_multicloud_pod25_with_aai - register_multicloud_pod25dns_with_aai - - verify_multicloud_registration - - wait_for_multicloud_ready - register_dns_zone "$ZONE" - echo "Registration and configuration for proxying DNSaaS completed." -else - echo "Using proxyed DNSaaS service, performing additional registration and configuration" +if [ $HTTP_PROXY != "no_proxy" ] +then + export http_proxy=$HTTP_PROXY + export https_proxy=$HTTPS_PROXY fi +# clean up old network configuration in docker engine +set +e +if [ -n "$(docker ps -q -a)" ]; then + docker stop $(docker ps -q -a) + docker update --restart=no $(docker ps -a -q) + systemctl restart docker + docker rm $(docker ps -q -a) + if [ -n "$(docker network ls | grep 'config_default')" ]; then + docker network rm config_default + fi +fi +set -e +docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" +if [[ $DEPLOYMENT_PROFILE == R1* || $DEPLOYMENT_PROFILE == R2* ]]; then + echo "R1 and R2 deployment profiles are not supported in Casablanca Heat deployment" +elif [[ $DEPLOYMENT_PROFILE == R3* ]]; then + RELEASE_TAG='R3' + + set +e + rm -rf /opt/app/inputs-templates + mkdir -p /opt/app/inputs-templates + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/docker-compose-1.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/docker-compose-2.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/docker-compose-3.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/docker-compose-4.yaml + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/register.sh + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/setup.sh + wget -P /opt/app/inputs-templates https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/heat/teardown.sh + + pip install --upgrade jinja2 + wget https://${URL_ROOT}/${REPO_DEPLOYMENTS}/${RELEASE_TAG}/scripts/detemplate-bpinputs.py \ + && \ + (python detemplate-bpinputs.py /opt/config /opt/app/inputs-templates /opt/app/config; \ + rm detemplate-bpinputs.py) + + if [ -e /opt/app/config/register.sh ]; then + chmod +x /opt/app/config/register.sh + fi + if [ -e /opt/app/config/setup.sh ]; then + chmod +x /opt/app/config/setup.sh + fi + if [ -e /opt/app/config/build-plugins.sh ]; then + chmod +x /opt/app/config/build-plugins.sh + fi + set -e + + cd /opt/app/config + # deploy essentials + /opt/docker/docker-compose -f docker-compose-1.yaml up -d + + # wait for essentials to become ready + echo "Waiting for Consul to come up ready" + while ! nc -z localhost 8500; do sleep 1; done + echo "Waiting for Postgres DB to come up ready" + while ! nc -z localhost 5432; do sleep 1; done + echo "Waiting for CBS to come up ready" + while ! nc -z localhost 10000; do sleep 1; done + echo "All dependencies are up, proceed to the next phase" + sleep 30 + + echo "Setup CloudifyManager and Registrator" + ./setup.sh + sleep 10 + + export http_proxy="" + export https_proxy="" + + ./register.sh + + echo "Bring up DCAE MIN service components for R2 use cases" + /opt/docker/docker-compose -f docker-compose-2.yaml up -d + + if [[ "$DEPLOYMENT_PROFILE" == "R3" || "$DEPLOYMENT_PROFILE" == "R3PLUS" ]]; then + echo "Bring up DCAE platform components" + /opt/docker/docker-compose -f docker-compose-3.yaml up -d + + if [[ "$DEPLOYMENT_PROFILE" == "R3PLUS" ]]; then + echo "Bring up additional (plus) DCAE service components" + /opt/docker/docker-compose -f docker-compose-4.yaml up -d + fi + fi -######################################### -# Start DCAE Bootstrap container -######################################### - -chmod 777 /opt/app/config -rm -f /opt/config/runtime.ip.consul -rm -f /opt/config/runtime.ip.cm - - -#docker login -u "$NEXUS_USER" -p "$NEXUS_PASSWORD" "$NEXUS_DOCKER_REPO" -#docker pull "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" -#docker run -d --name boot -v /opt/app/config:/opt/app/installer/config -e "LOCATION=$ZONE" "$NEXUS_DOCKER_REPO/onap/org.onap.dcaegen2.deployments.bootstrap:$DOCKER_VERSION" - - -# waiting for bootstrap to complete then starting nginx for proxying healthcheck calls -echo "Waiting for Consul to become accessible" -while [ ! -f /opt/app/config/runtime.ip.consul ]; do echo "."; sleep 30; done - - - -# start proxy for consul's health check -CONSULIP=$(head -1 /opt/app/config/runtime.ip.consul | sed 's/[[:space:]]//g') -echo "Consul is available at $CONSULIP" + # start proxy for consul's health check + CONSULIP=$(cat /opt/config/dcae_ip_addr.txt) + echo "Consul is available at $CONSULIP" +fi cat >./nginx.conf <>> $SERVICES" + 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" ]]; then + echo "${DATA}" > /tmp/healthcheck/r3mvp_healthy.yaml + echo "${DATA}" > /tmp/healthcheck/services.yaml + echo ">>>>>> enough services satisfying R3MIN service deployment" + else + echo ">>>>>> not enough services satisfying R3MIN service deployment" + fi + + if [[ -n "$PLT_CONSUL" && -n "$PLT_CBS" && -n "$PLT_CM" && -n "$PLT_DH" && \ + -n "$PLT_PH" && -n "$PLT_SCH" && -n "$PLT_INV" && -n "$PLT_PG_INVENTORY" ]]; then + echo ">>>>>> enough services satisfying R3 platform deployment" + echo "${DATA}" > /tmp/healthcheck/r3_healthy.yaml + + if [[ -n "$PLUS_MHB" && -n "$PLUS_PRH" && -n "$PLUS_MPR" && -n "$PLUS_TRAP" && -n "$MVP_HR" && -n "$MVP_HE" ]]; then + echo ">>>>>> enough services satisfying R3PLUS deployment" + echo "${DATA}" > /tmp/healthcheck/r3plus_healthy.yaml + else + echo ">>>>>> not enough services satisfying R3PLUS service deployment" + fi + else + echo ">>>>>> not enough services satisfying R3 platform or R3PLUS service deployment" + fi + + sleep 60 +done +