#!/bin/bash # $1 is the IP address of the buscontroller # $2 is the IP address of the DRPS # $3 is the IP address of the MRC # $4 is the protocol (defaults to http) PROTO=${4:-http} if [ "$PROTO" = "http" ] then PORT=8080 CURLOPT="-v" MRPORT=3904 DRPORT=8080 else PORT=8443 CURLOPT="-v -k" MRPORT=3905 DRPORT=8443 fi # INITIALIZE: dmaap object JSON=/tmp/$$.dmaap cat << EOF > $JSON { "version": "1", "topicNsRoot": "org.onap.dmaap", "drProvUrl": "${PROTO}://dmaap-dr-prov:${DRPORT}", "dmaapName": "onapCSIT", "bridgeAdminTopic": "MM_AGENT_PROV" } EOF echo "Initializing /dmaap endpoint" curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dmaap # INITIALIZE: dcaeLocation object JSON=/tmp/$$.loc cat << EOF > $JSON { "dcaeLocationName": "csit-sanfrancisco", "dcaeLayer": "central-cloud", "clli": "CSIT12345", "zone": "zoneA" } EOF echo "Initializing /dcaeLocations endpoint" curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/dcaeLocations # INITIALIZE: MR object in 1 site # since MR is currently deployed via docker-compose, its IP doesn't seem # to be routable from DBCL. Fortunately, the MR port is mapped from the docker bridge IP address. # Found this article for how to deterine the docker bridge IP so using it as a workaround. # https://stackoverflow.com/questions/22944631/how-to-get-the-ip-address-of-the-docker-host-from-inside-a-docker-container # Used the following snippet found buried in a comment to an answer and then modified for only 1 value. DOCKER_HOST=$(ip -4 addr show docker0 | grep -Po 'inet \K[\d.]+' | head -1 ) # Perhaps there is a better way... JSON=/tmp/$$.mrc cat << EOF > $JSON { "dcaeLocationName": "csit-sanfrancisco", "fqdn": "$DOCKER_HOST", "topicProtocol" : "http", "topicPort": "${MRPORT}" } EOF echo "Initializing /mr_clusters endpoint" curl ${CURLOPT} -X POST -d @${JSON} -H "Content-Type: application/json" ${PROTO}://$1:${PORT}/webapi/mr_clusters