Imporve dcae2 init scripts
[demo.git] / boot / dcae2_vm_init.sh
index b071dff..ac6713d 100755 (executable)
@@ -487,7 +487,7 @@ register_dns_zone_designate()
     API_ENDPOINT="${DESIGNATE_URL}/v2/zones"
     echo "===> Register DNS zone $ZONE_NAME at Designate API endpoint ${API_ENDPOINT}"
    
-    RESP=$(curl -v -s -H $HEADER_TOKEN $API_ENDPOINT)
+    RESP=$(curl -v -s -H "$HEADER_TOKEN" "$API_ENDPOINT")
     ZONE_ID=$(echo $RESP |jq -r --arg ZONE_NAME "$ZONE_NAME" '.zones[] |select(.name==$ZONE_NAME) |.id')
     if [ -z "$ZONE_ID" ]; then
         echo "======> Zone ${ZONE_NAME} does not exist.  Create"
@@ -597,7 +597,13 @@ list_dns_zone()
 
 
 
-
+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:-R1}
 
 NEXUS_USER=$(cat /opt/config/nexus_username.txt)
 NEXUS_PASSWORD=$(cat /opt/config/nexus_password.txt)
@@ -610,14 +616,18 @@ MYLOCALIP=$(cat /opt/config/dcae_ip_addr.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
+
+if [ "$DEPLOYMENT_PROFILE" == "R1" ]; then
+  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
 
@@ -629,40 +639,35 @@ if [ "$DNSAAS_PROXYED" == 'true' ]; then
     wait_for_multicloud_ready
     register_dns_zone_proxied_designate "$ZONE" 
     echo "Registration and configuration for proxying DNSaaS completed."
-else
+  else
     echo "Using Designate DNSaaS service, performing additional registration and configuration"
     register_dns_zone_designate "$ZONE" 
-fi
-
-
-
+  fi
 
+  #########################################
+  # Start DCAE Bootstrap container
+  #########################################
 
-#########################################
-# Start DCAE Bootstrap container
-#########################################
+  chmod 777 /opt/app/config
+  rm -f /opt/config/runtime.ip.consul
+  rm -f /opt/config/runtime.ip.cm
 
-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"
 
-#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
 
-# 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=$(head -1 /opt/app/config/runtime.ip.consul | sed 's/[[:space:]]//g')
-echo "Consul is available at $CONSULIP" 
-
-cat >./nginx.conf <<EOL
+  cat >./nginx.conf <<EOL
 server {
     listen 80;
     server_name dcae.simpledemo.onap.org;
@@ -671,6 +676,67 @@ server {
     }
 }
 EOL
-docker run --name dcae-proxy -p 8080:80 -v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf" -d nginx
-echo "Healthcheck API available at http://${MYFLOATIP}:8080/healthcheck"
-echo "                          or http://${MYLOCALIP}:8080/healthcheck"
+  docker run --name dcae-proxy -p 8080:80 -v "$(pwd)/nginx.conf:/etc/nginx/conf.d/default.conf" -d nginx
+  echo "Healthcheck API available at http://${MYFLOATIP}:8080/healthcheck"
+  echo "                          or http://${MYLOCALIP}:8080/healthcheck"
+
+fi
+
+
+if [ "$DEPLOYMENT_PROFILE" == "R2MVP" ]; then
+  cd /opt/app/config
+  /opt/docker/docker-compose -f docker-compose-1.yaml up -d
+  echo "Waiting for Consul to come up ready"
+  while ! nc -z localhost 8500; do sleep 1; done
+  echo "Waiting for 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 5
+
+  NAME='config_binding_service'
+  PORT='10000'
+  ID=$(sudo docker ps |grep "$NAME" |cut -b1-12)
+  while [ -z "$ID" ]; do echo "Waiting for $NAME container to be deployed"; sleep 1; ID=$(sudo docker ps |grep "$NAME" |cut -b1-12); done
+  REG='{"ID": "'"$NAME"'0", "Name": "'"$NAME"'", "Address": "'"$NAME"'", "Port": '"$PORT"'}'
+  curl -v -X PUT -H "Content-Type: application/json" --data "${REG}" http://localhost:8500/v1/agent/service/register
+
+  sleep 5
+  echo "Now bring up DCAE service components"
+  /opt/docker/docker-compose -f docker-compose-2.yaml up -d
+
+  
+  NAME='ves'
+  PORT='8080'
+  echo "Registering for $NAME:$PORT"
+  ID=$(sudo docker ps |grep "$NAME" |cut -b1-12)
+  while [ -z "$ID" ]; do echo "Waiting for $NAME container to be deployed"; sleep 1; ID=$(sudo docker ps |grep "$NAME" |cut -b1-12); done
+  REG='{"ID": "'"$NAME"'", "Name": "'"$NAME"'", "Address": "'"$NAME"'", "Port": '"$PORT"'}'
+  curl -v -X PUT -H "Content-Type: application/json" --data "${REG}" http://localhost:8500/v1/agent/service/register
+
+  NAME='tca'
+  PORT='11011'
+  echo "Registering for $NAME:$PORT"
+  ID=$(sudo docker ps |grep "$NAME" |cut -b1-12)
+  while [ -z "$ID" ]; do echo "Waiting for $NAME container to be deployed"; sleep 1; ID=$(sudo docker ps |grep "$NAME" |cut -b1-12); done
+  REG='{"ID": "'"$NAME"'", "Name": "'"$NAME"'", "Address": "'"$NAME"'", "Port": '"$PORT"'}'
+  curl -v -X PUT -H "Content-Type: application/json" --data "${REG}" http://localhost:8500/v1/agent/service/register
+
+  NAME='hr'
+  PORT='9101'
+  echo "Registering for $NAME:$PORT"
+  ID=$(sudo docker ps |grep "$NAME" |cut -b1-12)
+  while [ -z "$ID" ]; do echo "Waiting for $NAME container to be deployed"; sleep 1; ID=$(sudo docker ps |grep "$NAME" |cut -b1-12); done
+  REG='{"ID": "'"$NAME"'", "Name": "'"$NAME"'", "Address": "'"$NAME"'", "Port": '"$PORT"'}'
+  curl -v -X PUT -H "Content-Type: application/json" --data "${REG}" http://localhost:8500/v1/agent/service/register
+
+  NAME='he'
+  PORT='9102'
+  echo "Registering for $NAME:$PORT"
+  ID=$(sudo docker ps |grep "$NAME" |cut -b1-12)
+  while [ -z "$ID" ]; do echo "Waiting for $NAME container to be deployed"; sleep 1; ID=$(sudo docker ps |grep "$NAME" |cut -b1-12); done
+  REG='{"ID": "'"$NAME"'", "Name": "'"$NAME"'", "Address": "'"$NAME"'", "Port": '"$PORT"'}'
+  curl -v -X PUT -H "Content-Type: application/json" --data "${REG}" http://localhost:8500/v1/agent/service/register
+fi
+