cd /opt
git clone -b $GERRIT_BRANCH --single-branch $CODE_REPO
chmod +x /opt/authz/auth/auth-cass/docker/dinstall.sh
+chmod +x /opt/authz/auth/auth-cass/docker/backup/backup.sh
+chmod +x /opt/authz/auth/docker/dbuild.sh
chmod +x /opt/authz/auth/docker/drun.sh
-chmod +x /opt/authz/auth/docker/d.props
+chmod +x /opt/authz/auth/docker/dstart.sh
+chmod +x /opt/authz/auth/docker/dstop.sh
+# d.props is not a startable shell
+# chmod +x /opt/authz/auth/docker/d.props
#Update maven settings
cat > /usr/share/maven/conf/settings.xml << EOF
fi
cd /opt
-./aaf_vm_init.sh
\ No newline at end of file
+./aaf_vm_init.sh
NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
+HOSTNAME=`hostname`
+FQDN=aaf.api.simpledemo.onap.org
+HOST_IP=$(cat /opt/config/dns_ip_addr.txt)
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
cd /opt/authz
git pull
+if [ "`docker container ls | grep aaf_cass`" = "" ]; then
+ # Cassandra Install
+ cd /opt/authz/auth/auth-cass/docker
+ # Phase 1
+ ./dinstall.sh
+ echo "Waiting for Cassandra to startup"
+ sleep 15
+ # Phase 2
+ if [ "`docker container ls | grep aaf_cass`" = "" ]; then
+ echo "Error on Cassandra install"
+ exit
+ else
+ ./dinstall.sh
+ fi
+fi
+
+CASS_IP=`docker inspect aaf_cass | grep '"IPAddress' | head -1 | cut -d '"' -f 4`
+CASS_HOST="cass.aaf.osaaf.org:"$CASS_IP
+
sed -i "s/DOCKER_REPOSITORY=.*/DOCKER_REPOSITORY="$NEXUS_DOCKER_REPO"/g" /opt/authz/auth/docker/d.props
-sed -i "s/VERSION=.*/VERSION="$DOCKER_IMAGE_VERSION"/g" /opt/authz/auth/docker/d.props
+#sed -i "s/VERSION=.*/VERSION="$DOCKER_IMAGE_VERSION"/g" /opt/authz/auth/docker/d.props
+sed -i "s/HOSTNAME=.*/HOSTNAME="$HOSTNAME"/g" /opt/authz/auth/docker/d.props
+sed -i "s/HOST_IP=.*/HOST_IP="$HOST_IP"/g" /opt/authz/auth/docker/d.props
+sed -i "s/CASS_HOST=.*/CASS_HOST="$CASS_HOST"/g" /opt/authz/auth/docker/d.props
-cd /opt/authz/auth/auth-cass/docker
-./dinstall.sh
+if [ ! -e "/opt/app/osaaf/etc" ]; then
+ # Nothing installed, install sample
+ mkdir -p /opt/app/osaaf/logs
+ cd /opt/app/osaaf/logs
+ mkdir fs cm gui hello locate oauth service
+ cd /opt
+ cp -Rf /opt/authz/auth/sample/* /opt/app/osaaf
+fi
+# Set Location information
+# Need new Deployment system properties
+CADI_LATITUDE=37.781
+CADI_LONGITUDE=-122.261
-sleep 2
+CADI_TRUST_MASKS="${HOST_IP%\.[0-9]*}\\/24,${CASS_IP%\.[0-9]*}\\/24"
+sed -i "s/cadi_latitude=.*/cadi_latitude="$CADI_LATITUDE"/g" /opt/app/osaaf/local/org.osaaf.location.props
+sed -i "s/cadi_longitude=.*/cadi_longitude="$CADI_LONGITUDE"/g" /opt/app/osaaf/local/org.osaaf.location.props
+sed -i "s/cadi_registration_hostname=.*/cadi_registration_hostname="$FQDN"/g" /opt/app/osaaf/local/org.osaaf.location.props
+sed -i "s/cadi_trust_masks=.*/cadi_trust_masks="$CADI_TRUST_MASKS"/g" /opt/app/osaaf/local/org.osaaf.location.props
cd /opt/authz/auth/docker
+./dbuild.sh
+sleep 5
./drun.sh
\ No newline at end of file
docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$DGBUILDER_IMAGE_VERSION
docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$DGBUILDER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest
+docker pull $NEXUS_DOCKER_REPO/onap/appc-cdt-image:$DOCKER_IMAGE_VERSION
+docker tag $NEXUS_DOCKER_REPO/onap/appc-cdt-image:$DOCKER_IMAGE_VERSION onap/appc-cdt-image:latest
+
/opt/docker/docker-compose up -d
+++ /dev/null
-
-#############################################################################
-#
-# Copyright © 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.
-# You may obtain a copy of the License at
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#############################################################################
-
-#!/bin/sh
-### BEGIN INIT INFO
-# Provides:
-# Required-Start: $remote_fs $syslog
-# Required-Stop: $remote_fs $syslog
-# Default-Start: 2 3 4 5
-# Default-Stop: 0 1 6
-# Short-Description: Start daemon at boot time
-# Description: Enable service provided by daemon.
-### END INIT INFO
-
-dir="/opt"
-cmd="./dbcl_vm_init.sh"
-user="root"
-
-name=`basename $0`
-pid_file="/var/run/$name.pid"
-stdout_log="/var/log/$name.log"
-stderr_log="/var/log/$name.err"
-
-get_pid() {
- cat "$pid_file"
-}
-
-is_running() {
- [ -f "$pid_file" ] && ps `get_pid` > /dev/null 2>&1
-}
-
-case "$1" in
- start)
- if is_running; then
- echo "Already started"
- else
- echo "Starting $name"
- cd "$dir"
- if [ -z "$user" ]; then
- sudo $cmd >> "$stdout_log" 2>> "$stderr_log" &
- else
- sudo -u "$user" $cmd >> "$stdout_log" 2>> "$stderr_log" &
- fi
- echo $! > "$pid_file"
- if ! is_running; then
- echo "Unable to start, see $stdout_log and $stderr_log"
- exit 1
- fi
- fi
- ;;
- stop)
- if is_running; then
- echo -n "Stopping $name.."
- kill `get_pid`
- for i in {1..10}
- do
- if ! is_running; then
- break
- fi
-
- echo -n "."
- sleep 1
- done
- echo
-
- if is_running; then
- echo "Not stopped; may still be shutting down or shutdown may have failed"
- exit 1
- else
- echo "Stopped"
- if [ -f "$pid_file" ]; then
- rm "$pid_file"
- fi
- fi
- else
- echo "Not running"
- fi
- ;;
- restart)
- $0 stop
- if is_running; then
- echo "Unable to stop, will not attempt to start"
- exit 1
- fi
- $0 start
- ;;
- status)
- if is_running; then
- echo "Running"
- else
- echo "Stopped"
- exit 1
- fi
- ;;
- *)
- echo "Usage: $0 {start|stop|restart|status}"
- exit 1
- ;;
-esac
-
-exit 0
NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
-DOCKER_IMAGE_VERSION=$(cat /opt/config/uui_docker.txt)
+DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
# Refresh images
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
TMP_CFG=/tmp/docker-dmaap-buscontroller.conf
cat >> $TMP_CFG <<!EOF
-DMAAPBC_INT_HTTPS_PORT=0
+DMAAPBC_INT_HTTPS_PORT=8443
DMAAPBC_PG_ENABLED=false
DMAAPBC_INSTANCE_NAME=ONAP-CSIT
DMAAPBC_AAF_URL=https://aaf.api.simpledemo.onap.org:8095/proxy/
# Insert docker run instructions here
docker run -i -t -d --name dmaap-buscontroller -p 8080:8080 -p 8443:8443 -v $TMP_CFG:/opt/app/config/conf $NEXUS_DOCKER_REPO/onap/dmaap/buscontroller:$DOCKER_IMAGE_VERSION
+sleep 15
+
DBCL_FQDN=dbc.api.simpledemo.onap.org
DRPS_FQDN=drprov.simpledemo.onap.org
MR_FQDN=mr.api.simpledemo.onap.org
# b) scripts for bus controller (dbcl)
curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/dbcl_vm_init.sh -o /opt/dbcl_vm_init.sh
-curl -k $NEXUS_REPO/org.onap.demo/boot/$ARTIFACTS_VERSION/dbcl_serv.sh -o /opt/dbcl_serv.sh
chmod +x /opt/dbcl_vm_init.sh
-chmod +x /opt/dbcl_serv.sh
-mv /opt/dbcl_serv.sh /etc/init.d
-update-rc.d dbcl_serv.sh defaults
# Download and install docker-engine and docker-compose
echo "deb https://apt.dockerproject.org/repo ubuntu-trusty main" | sudo tee /etc/apt/sources.list.d/docker.list
# Clone Gerrit repository and run docker containers
cd /opt
-git clone -b $GERRIT_BRANCH --single-branch $CODE_REPO dcae-startup-vm-message-router
+git clone -b $GERRIT_BRANCH --single-branch $CODE_REPO /opt/startup-vm-message-router
./mr_vm_init.sh
NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
-DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt)
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-cd /opt/dcae-startup-vm-message-router
+cd /opt/startup-vm-message-router/demo
sed -i 's|wget .*|wget -q \"http://archive.apache.org/dist/kafka/${KAFKA_VERSION}/kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz\" \\|g' deploy.sh
-bash deploy.sh &
+bash deploy.sh &>/dev/null &disown
-bash dbcl_vm_init.sh &
+cd /opt
+bash dbcl_vm_init.sh &>/dev/null &disown
echo "nameserver "$DNS_IP_ADDR >> /etc/resolvconf/resolv.conf.d/head
resolvconf -u
+# Clone Gerrit repository
+cd /opt
+git clone -b $GERRIT_BRANCH --single-branch $CODE_REPO optf-has
+
# Rename network interface in openstack Ubuntu 16.04 images. Then, reboot the VM to pick up changes
if [[ $CLOUD_ENV != "rackspace" ]]
then
reboot
fi
-# Clone Gerrit repository and run docker containers
-cd /opt
-git clone -b $GERRIT_BRANCH --single-branch $CODE_REPO optf-has
+# Run docker containers
./oof_vm_init.sh
\ No newline at end of file
#!/bin/bash
+CERT=/opt/optf-has/aai_cert.cer
+KEY=/opt/optf-has/aai_key.key
+BUNDLE=/opt/optf-has/aai_bundle.pem
+
NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt)
NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt)
NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt)
COND_CONF=/opt/optf-has/conductor.conf
LOG_CONF=/opt/optf-has/log.conf
-#THE FOLLOWING LINE IS A PLACEHOLDER
-AAI_cert=/opt/optf-has/aai_cert.cer
+#!!! THE FOLLOWING LINE IS A PLACEHOLDER !!!
+AAI_cert=/usr/local/bin/aai_cert.cer
IMAGE_NAME="$NEXUS_DOCKER_REPO/onap/optf-has"
# pull images from repo
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
+docker pull $NEXUS_DOCKER_REPO/onap/optf-osdf:$DOCKER_IMAGE_VERSION
docker pull ${ZK_IMG}
docker pull ${TOMCAT_IMG}
docker pull ${CASS_IMG}
docker pull ${MUSIC_IMG}
docker pull $NEXUS_DOCKER_REPO/onap/optf-has:$DOCKER_IMAGE_VERSION
+
+#run optf-osdf
+
+OSDF_IMAGE_NAME="$NEXUS_DOCKER_REPO/onap/optf-osdf"
+OSDF_CONFIG=/opt/optf-osdf/config/osdf_config.yaml
+
+mkdir -p /opt/optf-osdf/config
+
+cat > $OSDF_CONFIG<<NEWFILE
+
+# Credentials for SO
+soUsername: "" # SO username for call back.
+soPassword: "" # SO password for call back.
+
+# Credentials for Conductor
+conductorUrl: https://localhost:8091/v1/plans/
+conductorUsername: admin1
+conductorPassword: plan.15
+conductorPingWaitTime: 60 # seconds to wait before calling the conductor retry URL
+conductorMaxRetries: 30 # if we don't get something in 30 minutes, give up
+
+# Policy Platform -- requires ClientAuth, Authorization, and Environment
+policyPlatformUrl: http://policy.api.simpledemo.onap.org:8081/pdp/api/getConfig # Policy Dev platform URL
+policyPlatformEnv: TEST # Environment for policy platform
+policyPlatformUsername: testpdp # Policy platform username.
+policyPlatformPassword: alpha123 # Policy platform password.
+policyClientUsername: python # For use with ClientAuth
+policyClientPassword: test # For use with ClientAuth
+
+# Credentials for DMaaP
+messageReaderHosts: NA
+messageReaderTopic: NA
+messageReaderAafUserId: NA
+messageReaderAafPassword: NA
+
+# Credentials for SDC
+sdcUrl: NA
+sdcUsername: NA
+sdcPassword: NA
+sdcONAPInstanceID: NA
+
+# Credentials for the OOF placement service - Generic
+osdfPlacementUsername: test
+osdfPlacementPassword: testpwd
+
+# Credentials for the OOF placement service - SO
+osdfPlacementSOUsername: so_test
+osdfPlacementSOPassword: so_testpwd
+
+# Credentials for the OOF CM scheduling service - Generic
+osdfCMSchedulerUsername: test1
+osdfCMSchedulerPassword: testpwd1
+
+NEWFILE
+
+docker run -d --name osdf -v $OSDF_CONFIG:/optf/config/osdf_config.yaml -p 8698:8699 ${OSDF_IMAGE_NAME}:latest
+
# install MUSIC
# create directory for music properties and logs
mkdir -p /opt/optf-has/music/properties
mkdir -p /opt/optf-has/music/logs
# add music.properties file
-cat >> /opt/optf-has/music/properties/music.properties << NEWFILE
+cat > /opt/optf-has/music/properties/music.properties<<NEWFILE
my.id=0
all.ids=0
my.public.ip=localhost
# Connect tomcat to host bridge network so that its port can be seen.
docker network connect bridge music-tomcat;
+sleep 6;
+echo "Running onboarding curl command"
+curl -X POST \
+ http://localhost:8080/MUSIC/rest/v2/admin/onboardAppWithMusic \
+ -H 'Cache-Control: no-cache' \
+ -H 'Content-Type: application/json' \
+ -H 'Postman-Token: 7d2839f4-b032-487a-8998-4d1b27a932d7' \
+ -d '{
+"appname": "conductor",
+"userId" : "conductor",
+"isAAF" : false,
+"password" : "c0nduct0r"
+}
+'
+echo "Onboarding curl complete"
# Get MUSIC url
MUSIC_URL=$(docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-tomcat)
+#MUSIC_URL=localhost
# Set A&AI and MUSIC url inside OOF-HAS conductor.conf
sed -i "138 s%.*%server_url = https://aai.api.simpledemo.onap.org:8443/aai%" $COND_CONF
sed -i "141 s%.*%server_url_version = v13%" $COND_CONF
-sed -i "250 s%.*%server_url = $MUSIC_URL:8080/MUSIC/rest/v2%" $COND_CONF
+sed -i "250 s%.*%server_url = http://$MUSIC_URL:8080/MUSIC/rest/v2%" $COND_CONF
+sed -i "277 s%.*%replication_factor = 1%" $COND_CONF
# Set A&AI authentication file locations inside OOF-HAS conductor.conf
sed -i "153 s%.*%certificate_authority_bundle_file = $AAI_cert%" $COND_CONF
+
+echo "Values to data component"
+echo $CERT
+echo $KEY
+echo $BUNDLE
+
# run optf-has
docker run -d --name controller -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-controller --config-file=/usr/local/bin/conductor.conf
+
docker run -d --name api -p "8091:8091" -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-api --port=8091 -- --config-file=/usr/local/bin/conductor.conf
+
docker run -d --name solver -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-solver --config-file=/usr/local/bin/conductor.conf
+
docker run -d --name reservation -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf ${IMAGE_NAME}:latest python /usr/local/bin/conductor-reservation --config-file=/usr/local/bin/conductor.conf
-docker run -d --name data -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf -v $CERT:/usr/local/bin/aai_cert.cer -v $KEY:/usr/local/bin/aai_key.key -v $BUNDLE:/usr/local/bin/bundle.pem ${IMAGE_NAME}:latest python /usr/local/bin/conductor-data --config-file=/usr/local/bin/conductor.conf
\ No newline at end of file
+
+docker run -d --name data -v $COND_CONF:/usr/local/bin/conductor.conf -v $LOG_CONF:/usr/local/bin/log.conf -v $CERT:/usr/local/bin/aai_cert.cer -v $KEY:/usr/local/bin/aai_key.key -v $BUNDLE:/usr/local/bin/bundle.pem ${IMAGE_NAME}:latest python /usr/local/bin/conductor-data --config-file=/usr/local/bin/conductor.conf
+
+sleep 10
+
+echo "Inserting healthcheck plan"
+
+curl -X POST \
+ http://localhost:8080/MUSIC/rest/v2/keyspaces/conductor/tables/plans/rows/ \
+ -H 'Cache-Control: no-cache' \
+ -H 'Content-Type: application/json' \
+ -H 'Postman-Token: 502781e8-d588-475d-b181-c2e26625ac95' \
+ -H 'X-minorVersion: 3' \
+ -H 'X-patchVersion: 0' \
+ -H 'ns: conductor' \
+ -H 'password: c0nduct0r' \
+ -H 'userId: conductor' \
+ -d '{
+ "consistencyInfo": {
+ "type": "eventual"
+ },
+ "values": {
+ "id" : "healthcheck",
+ "created": 1479482603641,
+ "message": "",
+ "name": "foo",
+ "recommend_max": 1,
+ "solution": "{\"healthcheck\": \" healthcheck\"}",
+ "status": "solved",
+ "template": "{\"healthcheck\": \"healthcheck\"}",
+ "timeout": 3600,
+ "translation": "{\"healthcheck\": \" healthcheck\"}",
+ "updated": 1484324150629
+ }
+}
+'
+
+echo "Healthcheck plan inserted"
\ No newline at end of file
docker pull $NEXUS_DOCKER_REPO/onap/policy-drools:$DOCKER_IMAGE_VERSION
docker tag $NEXUS_DOCKER_REPO/onap/policy-drools:$DOCKER_IMAGE_VERSION onap/policy-drools:latest
-docker pull $NEXUS_DOCKER_REPO/onap/policy-nexus:$DOCKER_IMAGE_VERSION
-docker tag $NEXUS_DOCKER_REPO/onap/policy-nexus:$DOCKER_IMAGE_VERSION onap/policy-nexus:latest
+#docker pull $NEXUS_DOCKER_REPO/onap/policy-nexus:$DOCKER_IMAGE_VERSION
+#docker tag $NEXUS_DOCKER_REPO/onap/policy-nexus:$DOCKER_IMAGE_VERSION onap/policy-nexus:latest
/opt/docker/docker-compose up -d
aai_sparky_docker: 1.2-STAGING-latest
appc_docker: 1.3.0-SNAPSHOT-latest
so_docker: 1.2.1
- policy_docker: 1.2-STAGING-latest
+ policy_docker: 1.2.0
portal_docker: 2.1-STAGING-latest
robot_docker: 1.2-STAGING-latest
sdc_docker: 1.2-STAGING-latest
oof_docker: latest
aaf_docker: 2.1.0-SNAPSHOT
nbi_docker: latest
+ dbcl_docker: latest
dcae_docker: 1.1.2
dcae_snmptrap_docker: latest
#####################
aai_repo: http://gerrit.onap.org/r/aai/test-config
appc_repo: http://gerrit.onap.org/r/appc/deployment.git
- mr_repo: http://gerrit.onap.org/r/dcae/demo/startup/message-router.git
+ mr_repo: http://gerrit.onap.org/r/dmaap/messagerouter/messageservice.git
so_repo: http://gerrit.onap.org/r/so/docker-config.git
policy_repo: http://gerrit.onap.org/r/policy/docker.git
portal_repo: http://gerrit.onap.org/r/portal.git
music_repo: http://gerrit.onap.org/r/music.git
nbi_repo: http://gerrit.onap.org/r/externalapi/nbi.git
aaf_repo: http://gerrit.onap.org/r/aaf/authz.git
- oof_repo: http://gerrit.onap.org/r/optf/has.git
\ No newline at end of file
+ oof_repo: http://gerrit.onap.org/r/optf/has.git
type: string
nbi_docker:
type: string
+ dbcl_docker:
+ type: string
vfc_nokia_docker:
type: string
__cloud_env__: { get_param: cloud_env }
__external_dns__: { get_param: external_dns }
__mr_repo__: { get_param: mr_repo }
+ __dbcl_docker__: { get_param: dbcl_docker }
template: |
#!/bin/bash
echo "__cloud_env__" > /opt/config/cloud_env.txt
echo "__external_dns__" > /opt/config/external_dns.txt
echo "__mr_repo__" > /opt/config/remote_repo.txt
+ echo "__dbcl_docker__" > /opt/config/docker_version.txt
# Download and run install script
curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/mr_install.sh -o /opt/mr_install.sh
__external_dns__: { get_param: external_dns }
__aaf_repo__: { get_param: aaf_repo }
__gerrit_branch__: { get_param: aaf_branch }
+ __local_ip__: { get_param: aaf_ip_addr }
template: |
#!/bin/bash
echo "__external_dns__" > /opt/config/external_dns.txt
echo "__aaf_repo__" > /opt/config/remote_repo.txt
echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+ echo "__local_ip__" > /opt/config/local_ip.txt
# Download and run install script
curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aaf_install.sh -o /opt/aaf_install.sh
type: string
nbi_docker:
type: string
+ dbcl_docker:
+ type: string
vfc_nokia_docker:
type: string
__cloud_env__: { get_param: cloud_env }
__external_dns__: { get_param: external_dns }
__mr_repo__: { get_param: mr_repo }
+ __dbcl_docker__: { get_param: dbcl_docker }
template: |
#!/bin/bash
echo "__cloud_env__" > /opt/config/cloud_env.txt
echo "__external_dns__" > /opt/config/external_dns.txt
echo "__mr_repo__" > /opt/config/remote_repo.txt
+ echo "__dbcl_docker__" > /opt/config/docker_version.txt
# Download and run install script
curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/mr_install.sh -o /opt/mr_install.sh
__external_dns__: { get_param: external_dns }
__aaf_repo__: { get_param: aaf_repo }
__gerrit_branch__: { get_param: aaf_branch }
+ __local_ip__: { get_param: aaf_ip_addr }
template: |
#!/bin/bash
echo "__external_dns__" > /opt/config/external_dns.txt
echo "__aaf_repo__" > /opt/config/remote_repo.txt
echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
+ echo "__local_ip__" > /opt/config/local_ip.txt
# Download and run install script
curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/aaf_install.sh -o /opt/aaf_install.sh
oof_docker: ${OOF_DOCKER}
aaf_docker: ${AAF_DOCKER}
nbi_docker: ${NBI_DOCKER}
+ dbcl_docker: ${DBCL_DOCKER}
dcae_docker: ${BOOTSTRAP_DOCKER}
dcae_snmptrap_docker: ${SNMPTRAP_DOCKER}
#####################
aai_repo: http://gerrit.onap.org/r/aai/test-config
appc_repo: http://gerrit.onap.org/r/appc/deployment.git
- mr_repo: http://gerrit.onap.org/r/dcae/demo/startup/message-router.git
+ mr_repo: http://gerrit.onap.org/r/dmaap/messagerouter/messageservice.git
so_repo: http://gerrit.onap.org/r/so/docker-config.git
policy_repo: http://gerrit.onap.org/r/policy/docker.git
portal_repo: http://gerrit.onap.org/r/portal.git
} EVENT_MEASUREMENT;
+
+
+/**************************************************************************//**
+ * Add an additional value name/value pair to the Measurement.
+ *
+ * The name and value are null delimited ASCII strings. The library takes
+ * a copy so the caller does not have to preserve values after the function
+ * returns.
+ *
+ * @param measurement Pointer to the measurement.
+ * @param name ASCIIZ string with the attribute's name. The caller
+ * does not need to preserve the value once the function
+ * returns.
+ * @param value ASCIIZ string with the attribute's value. The caller
+ * does not need to preserve the value once the function
+ * returns.
+ *****************************************************************************/
+void evel_measurement_addl_info_add(EVENT_MEASUREMENT * measurement, char * name, char * value);
+
+/**************************************************************************//**
+ * Add a json object to jsonObject list.
+ *
+ * The name and value are null delimited ASCII strings. The library takes
+ * a copy so the caller does not have to preserve values after the function
+ * returns.
+ *
+ * @param measurement Pointer to the ScalingMeasurement
+ * @param jsonobj Pointer to json object
+ *****************************************************************************/
+void evel_measurement_addl_object_add(EVENT_MEASUREMENT * measurement, EVEL_JSON_OBJECT *jsonobj);
+
/**************************************************************************//**
* CPU Usage.
* JSON equivalent field: cpuUsage
assert(pobj != NULL);
assert(jinst != NULL);
- EVEL_DEBUG("Adding json object instance");
+ EVEL_DEBUG("Adding json object instance %p",jinst);
dlist_push_last(&pobj->jsonobjectinstances, jinst);
free(keyp->keyname);
evel_free_option_string(&keyp->keyvalue);
+ free(keyp);
EVEL_EXIT();
}
evel_free_internal_key(other_field);
other_field = dlist_pop_last(&objinst->object_keys);
}
+ free(objinst);
EVEL_EXIT();
}
EVEL_ENTER();
assert(jsobj != NULL);
+ EVEL_DEBUG("Freeing Json Object (%s)", jsobj->object_name);
free(jsobj->object_name);
evel_free_option_string(&jsobj->objectschema);
evel_free_option_string(&jsobj->objectschemaurl);
other_field = dlist_pop_last(&jsobj->jsonobjectinstances);
while (other_field != NULL)
{
- EVEL_DEBUG("Freeing Object Instance Field (%s)",
- other_field->jsonstring);
+ EVEL_DEBUG("Freeing jsonObject Instance Field %p (%s)",
+ other_field,other_field->jsonstring);
evel_free_jsonobjinst(other_field);
other_field = dlist_pop_last(&jsobj->jsonobjectinstances);
}
+ free(jsobj);
EVEL_EXIT();
}
*****************************************************************************/
void evel_other_field_add_jsonobj(EVENT_OTHER * other, EVEL_JSON_OBJECT *jsonobj)
{
- OTHER_FIELD * other_field = NULL;
EVEL_ENTER();
/***************************************************************************/
void evel_free_other(EVENT_OTHER * event)
{
OTHER_FIELD * other_field = NULL;
+ EVEL_JSON_OBJECT * jsonobjp = NULL;
+ DLIST_ITEM * other_field_item = NULL;
EVEL_ENTER();
free(other_field);
other_field = dlist_pop_last(&event->namedvalues);
}
+
+ jsonobjp = dlist_pop_last(&event->jsonobjects);
+ while (jsonobjp != NULL)
+ {
+ evel_free_jsonobject( jsonobjp );
+
+ jsonobjp = dlist_pop_last(&event->jsonobjects);
+ }
+
evel_free_header(&event->header);
EVEL_EXIT();
EVEL_EXIT();
}
+/**************************************************************************//**
+ * Add a json object to jsonObject list.
+ *
+ * The name and value are null delimited ASCII strings. The library takes
+ * a copy so the caller does not have to preserve values after the function
+ * returns.
+ *
+ * @param measurement Pointer to the ScalingMeasurement
+ * @param jsonobj Pointer to json object
+ *****************************************************************************/
+void evel_measurement_addl_object_add(EVENT_MEASUREMENT * measurement, EVEL_JSON_OBJECT *jsonobj)
+{
+ EVEL_ENTER();
+
+ /***************************************************************************/
+ /* Check preconditions. */
+ /***************************************************************************/
+ assert(measurement != NULL);
+ assert(measurement->header.event_domain == EVEL_DOMAIN_MEASUREMENT);
+ assert(jsonobj != NULL);
+
+ EVEL_DEBUG("Adding jsonObject %p",jsonobj);
+
+ dlist_push_last(&measurement->additional_objects, jsonobj);
+
+ EVEL_EXIT();
+}
+
+
/**************************************************************************//**
* Set the Concurrent Sessions property of the Measurement.
*
* @param tx_ucast_packets_acc
*****************************************************************************/
void evel_vnic_performance_tx_ucast_pkt_acc_set(MEASUREMENT_VNIC_PERFORMANCE * const vnic_performance,
- const double tx_ucast_packets_acc)
+ const double mtx_ucast_packets_acc)
{
EVEL_ENTER();
/***************************************************************************/
/* Check preconditions. */
/***************************************************************************/
- assert(tx_ucast_packets_acc >= 0.0);
+ assert(mtx_ucast_packets_acc >= 0.0);
evel_set_option_double(&vnic_performance->tx_ucast_packets_acc,
- tx_ucast_packets_acc,
+ mtx_ucast_packets_acc,
"Transmitted Unicast Packets accumulated");
EVEL_EXIT();
DLIST_ITEM * nested_item = NULL;
DLIST_ITEM * addl_info_item = NULL;
OTHER_FIELD *addl_info = NULL;
+ DLIST_ITEM * other_field_item = NULL;
+ EVEL_JSON_OBJECT_INSTANCE * jsonobjinst = NULL;
+ EVEL_JSON_OBJECT * jsonobjp = NULL;
+ DLIST_ITEM * jsobj_field_item = NULL;
+ EVEL_INTERNAL_KEY * keyinst = NULL;
+ DLIST_ITEM * keyinst_field_item = NULL;
+
EVEL_ENTER();
}
}
+
+ evel_json_checkpoint(jbuf);
+ if(evel_json_open_opt_named_list(jbuf, "additionalObjects"))
+ {
+ bool item_added = false;
+ other_field_item = dlist_get_first(&event->additional_objects);
+ while (other_field_item != NULL)
+ {
+ jsonobjp = (EVEL_JSON_OBJECT *) other_field_item->item;
+ if(jsonobjp != NULL)
+ {
+ evel_json_open_object(jbuf);
+
+ if( evel_json_open_opt_named_list(jbuf, "objectInstances"))
+ {
+ bool item_added2 = false;
+ jsobj_field_item = dlist_get_first(&jsonobjp->jsonobjectinstances);
+ while (jsobj_field_item != NULL)
+ {
+ jsonobjinst = (EVEL_JSON_OBJECT_INSTANCE *) jsobj_field_item->item;
+ if( jsonobjinst != NULL )
+ {
+ evel_json_open_object(jbuf);
+ evel_enc_kv_object(jbuf, "objectInstance", jsonobjinst->jsonstring);
+ evel_enc_kv_ull(jbuf, "objectInstanceEpochMicrosec", jsonobjinst->objinst_epoch_microsec);
+ //evel_json_checkpoint(jbuf);
+ if (evel_json_open_opt_named_list(jbuf, "objectKeys"))
+ {
+ bool item_added3 = false;
+
+ keyinst_field_item = dlist_get_first(&jsonobjinst->object_keys);
+ while (keyinst_field_item != NULL)
+ {
+ keyinst = (EVEL_INTERNAL_KEY *)keyinst_field_item->item;
+ if(keyinst != NULL)
+ {
+ evel_json_open_object(jbuf);
+ evel_enc_kv_string(jbuf, "keyName", keyinst->keyname);
+ evel_enc_kv_opt_int(jbuf, "keyOrder", &keyinst->keyorder);
+ evel_enc_kv_opt_string(jbuf, "keyValue", &keyinst->keyvalue);
+ evel_json_close_object(jbuf);
+ item_added3 = true;
+ }
+ keyinst_field_item = dlist_get_next(keyinst_field_item);
+ }
+ evel_json_close_list(jbuf);
+
+ /*************************************************************************/
+ /* If we've not written anything, rewind to before we opened the list. */
+ /*************************************************************************/
+ //if (!item_added3)
+ //{
+ // evel_json_rewind(jbuf);
+ //}
+ }
+ evel_json_close_object(jbuf);
+ }
+ item_added2 = true;
+ jsobj_field_item = dlist_get_next(jsobj_field_item);
+ }
+ evel_json_close_list(jbuf);
+ if( !item_added2 )
+ {
+ evel_json_rewind(jbuf);
+ }
+ }
+
+ evel_enc_kv_string(jbuf, "objectName", jsonobjp->object_name);
+ evel_enc_kv_opt_string(jbuf, "objectSchema", &jsonobjp->objectschema);
+ evel_enc_kv_opt_string(jbuf, "objectSchemaUrl", &jsonobjp->objectschemaurl);
+ evel_enc_kv_opt_string(jbuf, "nfSubscribedObjectName", &jsonobjp->nfsubscribedobjname);
+ evel_enc_kv_opt_string(jbuf, "nfSubscriptionId", &jsonobjp->nfsubscriptionid);
+ evel_json_close_object(jbuf);
+ item_added = true;
+ }
+ other_field_item = dlist_get_next(other_field_item);
+ }
+ evel_json_close_list(jbuf);
+
+ if (!item_added)
+ {
+ evel_json_rewind(jbuf);
+ }
+ }
+
+
// TBD additional json objects
evel_enc_kv_opt_int(jbuf, "concurrentSessions", &event->concurrent_sessions);
evel_enc_kv_opt_int(jbuf, "configuredEntities", &event->configured_entities);
MEASUREMENT_GROUP * measurement_group = NULL;
CUSTOM_MEASUREMENT * measurement = NULL;
OTHER_FIELD *addl_info = NULL;
+ EVEL_JSON_OBJECT * jsonobjp = NULL;
EVEL_ENTER();
addl_info = dlist_pop_last(&event->additional_info);
}
-
+ jsonobjp = dlist_pop_last(&event->additional_objects);
+ while (jsonobjp != NULL)
+ {
+ EVEL_DEBUG("Freeing jsonObject %p",jsonobjp);
+ evel_free_jsonobject( jsonobjp );
+ jsonobjp = dlist_pop_last(&event->additional_objects);
+ }
cpu_use = dlist_pop_last(&event->cpu_usage);
while (cpu_use != NULL)