- The "heat" directory contains the following sub-directories:
- - ONAP: contains the HEAT files for the installation of the ONAP platform. NOTE: onap\_openstack.yaml AND onap\_openstack.env ARE THE HEAT TEMPLATE AND ENVIRONMENT FILE CURRENTLY SUPPORTED. onap\_openstack\_float.yaml, onap\_openstack\_float.env AND onap\_openstack\_nofloat.yaml, onap\_openstack\_float.env AREN'T UPDATED AND THEIR USAGE IS DEPRECATED.
+ - ONAP: contains the HEAT files for the installation of the ONAP platform. NOTE: onap\_openstack.yaml AND onap\_openstack.env ARE THE HEAT TEMPLATE AND ENVIRONMENT FILE CURRENTLY SUPPORTED. onap\_openstack\_float.yaml, onap\_openstack\_float.env, onap\_openstack\_nofloat.yaml, onap\_openstack\_nofloat.env AND onap\_rackspace.yaml, onap\_rackspace.env AREN'T UPDATED AND THEIR USAGE IS DEPRECATED.
- vCPE: contains sub-directories with HEAT templates for the installation of vCPE Infrastructure (Radius Server, DHCP, DNS, Web Server), vBNG, vBRG Emulator, vGMUX, and vGW.
The ONAP HEAT template spins up the entire ONAP platform in OpenStack-based clouds. The template, onap\_openstack.yaml, comes with an environment file, onap\_openstack.env, in which all the default values are defined.
-NOTE: onap\_openstack.yaml AND onap\_openstack.env ARE THE HEAT TEMPLATE AND ENVIRONMENT FILE CURRENTLY SUPPORTED. onap\_openstack\_float.yaml, onap\_openstack\_float.env AND onap\_openstack\_nofloat.yaml, onap\_openstack\_nofloat.env AREN'T UPDATED AND THEIR USAGE IS DEPRECATED. As such, the following description refers to onap\_openstack.yaml and onap\_openstack.env.
+NOTE: onap\_openstack.yaml AND onap\_openstack.env ARE THE HEAT TEMPLATE AND ENVIRONMENT FILE CURRENTLY SUPPORTED. onap\_openstack\_float.yaml, onap\_openstack\_float.env, onap\_openstack\_nofloat.yaml, onap\_openstack\_nofloat.env AND onap\_rackspace.yaml, onap\_rackspace.env AREN'T UPDATED AND THEIR USAGE IS DEPRECATED. As such, the following description refers to onap\_openstack.yaml and onap\_openstack.env.
The HEAT template is composed of two sections: (i) parameters, and (ii) resources.
;Message Router
;mr.api.simpledemo.openecomp.org. IN CNAME vm1.mr.simpledemo.openecomp.org.
ueb.api.simpledemo.openecomp.org. IN CNAME vm1.mr.simpledemo.openecomp.org.
-mr.api.simpledemo.openecomp.org. IN A dcae_coll_ip_addr
-collector.api.simpledemo.openecomp.org. IN A dcae_coll_ip_addr
;dbc.api.simpledemo.openecomp.org. IN CNAME vm1.mr.simpledemo.openecomp.org.
;drprov.api.simpledemo.openecomp.org. IN CNAME vm1.mr.simpledemo.openecomp.org.
;Message Router
;mr.api.simpledemo.onap.org. IN CNAME vm1.mr.simpledemo.onap.org.
ueb.api.simpledemo.onap.org. IN CNAME vm1.mr.simpledemo.onap.org.
-mr.api.simpledemo.onap.org. IN A dcae_coll_ip_addr
-collector.api.simpledemo.onap.org. IN A dcae_coll_ip_addr
;dbc.api.simpledemo.onap.org. IN CNAME vm1.mr.simpledemo.onap.org.
;drprov.api.simpledemo.onap.org. IN CNAME vm1.mr.simpledemo.onap.org.
sed -i "s/sdc_ip_addr/"$(cat /opt/config/sdc_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
sed -i "s/sdnc_ip_addr/"$(cat /opt/config/sdnc_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
sed -i "s/vid_ip_addr/"$(cat /opt/config/vid_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
- sed -i "s/dcae_coll_ip_addr/"$(cat /opt/config/dcae_coll_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
sed -i "s/clamp_ip_addr/"$(cat /opt/config/clamp_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
sed -i "s/openo_ip_addr/"$(cat /opt/config/openo_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.openecomp.org
sed -i "s/sdc_ip_addr/"$(cat /opt/config/sdc_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
sed -i "s/sdnc_ip_addr/"$(cat /opt/config/sdnc_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
sed -i "s/vid_ip_addr/"$(cat /opt/config/vid_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
- sed -i "s/dcae_coll_ip_addr/"$(cat /opt/config/dcae_coll_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
sed -i "s/clamp_ip_addr/"$(cat /opt/config/clamp_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
sed -i "s/openo_ip_addr/"$(cat /opt/config/openo_ip_addr.txt)"/g" /etc/bind/zones/db.simpledemo.onap.org
fi
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)
-NEXUS_DOCKER_PORT=$(echo $NEXUS_DOCKER_REPO | cut -d':' -f2)
ENV_NAME=$(cat /opt/config/env_name.txt)
MR_IP_ADDR=$(cat /opt/config/mr_ip_addr.txt)
RELEASE=$(cat /opt/config/docker_version.txt)
chmod +x /data/scripts/docker_run.sh
chmod +x /data/scripts/docker_health.sh
-if [ -e /opt/config/public_ip.txt ]
-then
- IP_ADDRESS=$(cat /opt/config/public_ip.txt)
-else
- IP_ADDRESS=$(ifconfig eth0 | grep "inet addr" | tr -s ' ' | cut -d' ' -f3 | cut -d':' -f2)
-fi
+IP_ADDRESS=$(cat /opt/config/private_ip.txt)
cat /data/environments/Template.json | sed "s/yyy/"$IP_ADDRESS"/g" > /data/environments/$ENV_NAME.json
sed -i "s/xxx/"$ENV_NAME"/g" /data/environments/$ENV_NAME.json
sed -i "s/\"fqdn\":.*/\"fqdn\": [\""$MR_IP_ADDR"\", \""$MR_IP_ADDR"\"]/g" /data/environments/$ENV_NAME.json
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-bash /data/scripts/docker_run.sh -e $ENV_NAME -r $RELEASE -p $NEXUS_DOCKER_PORT
+bash /data/scripts/docker_run.sh -r $RELEASE
docker pull $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION
docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-ueb-listener-image:latest
+docker pull $NEXUS_DOCKER_REPO/onap/sdnc-dmaap-listener-image:$DOCKER_IMAGE_VERSION
+docker tag $NEXUS_DOCKER_REPO/onap/sdnc-dmaap-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-dmaap-listener-image:latest
+
/opt/docker/docker-compose up -d
# Insert docker run instructions here
docker run -i -t -d --name uui_ui -p 8080:8080 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/usecase-ui:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name uui_server -p 8082:8082 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/usecase-ui/usecase-ui-server:$DOCKER_IMAGE_VERSION
\ No newline at end of file
+docker run -i -t -d --name uui_server -p 8082:8082 -e MSB_ADDR=$OPENO_IP:80 -e MR_ADDR=$MR_IP:3904 $NEXUS_DOCKER_REPO/onap/usecase-ui/usecase-ui-server:$DOCKER_IMAGE_VERSION
\ No newline at end of file
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/vfc_docker.txt)
source /opt/config/onap_ips.txt
+source /opt/config/vfc_docker.txt
# Refresh images
docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/catalog:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/emsdriver:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/gvnfmdriver:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/jujudriver:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/nslcm:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/resmanagement:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnflcm:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnfmgr:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnfres:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/ztesdncdriver:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/ztevmanagerdriver:$DOCKER_IMAGE_VERSION
-docker pull $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$DOCKER_IMAGE_VERSION
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$ACTIVITI_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$MGRSERVICE_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/catalog:$CATALOG_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/emsdriver:$EMSDRIVER_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/gvnfmdriver:$GVNFMDRIVER_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/jujudriver:$JUJUDRIVER_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$HUAWEI_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/nslcm:$NSLCM_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/resmanagement:$RESMANAGEMENT_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnflcm:$VNFLCM_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnfmgr:$VNFMGR_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/vnfres:$VNFRES_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/ztesdncdriver:$ZTESDNCDRIVER_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/ztevmanagerdriver:$ZTEVMANAGERDRIVER_DOCKER_VER
+docker pull $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$NOKIA_DOCKER_VER
docker rm -f vfc_wfengine_mgrservice
docker rm -f vfc_wfengine_activiti
docker rm -f vfc_svnfm_nokia
# Insert docker run instructions here
-docker run -i -t -d --name vfc_wfengine_activiti -p 8804:8080 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8804 -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8805 -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_catalog -p 8806:8806 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/catalog:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_emsdriver -p 8206:8206 -e MSB_ADDR=$OPENO_IP:80 -e VES_ADDR=$DCAE_COLL_IP:8080 -e VES_AUTHINFO="":"" $NEXUS_DOCKER_REPO/onap/vfc/emsdriver:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_gvnfmdriver -p 8484:8484 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/gvnfmdriver:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_jujudriver -p 8483:8483 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/jujudriver:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_svnfm_huawei -p 8482:8482 -p 8443:8443 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_nslcm -p 8403:8403 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nslcm:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_resmanagement -p 8480:8480 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/resmanagement:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_vnflcm -p 8801:8801 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnflcm:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_vnfmgr -p 8803:8803 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnfmgr:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_vnfres -p 8802:8802 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnfres:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_ztesdncdriver -p 8411:8411 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztesdncdriver:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_ztevmanagerdriver -p 8410:8410 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztevmanagerdriver:$DOCKER_IMAGE_VERSION
-docker run -i -t -d --name vfc_svnfm_nokia -p 8486:8486 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$DOCKER_IMAGE_VERSION
+docker run -i -t -d --name vfc_wfengine_activiti -p 8804:8080 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8804 -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-activiti:$ACTIVITI_DOCKER_VER
+docker run -i -t -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_IP=$OPENO_IP -e SERVICE_PORT=8805 -e OPENPALETTE_MSB_IP=$OPENO_IP -e OPENPALETTE_MSB_PORT=80 $NEXUS_DOCKER_REPO/onap/vfc/wfengine-mgrservice:$MGRSERVICE_DOCKER_VER
+docker run -i -t -d --name vfc_catalog -p 8806:8806 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/catalog:$CATALOG_DOCKER_VER
+docker run -i -t -d --name vfc_emsdriver -p 8206:8206 -e MSB_ADDR=$OPENO_IP:80 -e VES_ADDR=$DCAE_COLL_IP:8080 -e VES_AUTHINFO="":"" $NEXUS_DOCKER_REPO/onap/vfc/emsdriver:$EMSDRIVER_DOCKER_VER
+docker run -i -t -d --name vfc_gvnfmdriver -p 8484:8484 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/gvnfmdriver:$GVNFMDRIVER_DOCKER_VER
+docker run -i -t -d --name vfc_jujudriver -p 8483:8483 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/jujudriver:$JUJUDRIVER_DOCKER_VER
+docker run -i -t -d --name vfc_svnfm_huawei -p 8482:8482 -p 8443:8443 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/huawei:$HUAWEI_DOCKER_VER
+docker run -i -t -d --name vfc_nslcm -p 8403:8403 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nslcm:$NSLCM_DOCKER_VER
+docker run -i -t -d --name vfc_resmanagement -p 8480:8480 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/resmanagement:$RESMANAGEMENT_DOCKER_VER
+docker run -i -t -d --name vfc_vnflcm -p 8801:8801 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnflcm:$VNFLCM_DOCKER_VER
+docker run -i -t -d --name vfc_vnfmgr -p 8803:8803 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnfmgr:$VNFMGR_DOCKER_VER
+docker run -i -t -d --name vfc_vnfres -p 8802:8802 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/vnfres:$VNFRES_DOCKER_VER
+docker run -i -t -d --name vfc_ztesdncdriver -p 8411:8411 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztesdncdriver:$ZTESDNCDRIVER_DOCKER_VER
+docker run -i -t -d --name vfc_ztevmanagerdriver -p 8410:8410 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/ztevmanagerdriver:$ZTEVMANAGERDRIVER_DOCKER_VER
+docker run -i -t -d --name vfc_svnfm_nokia -p 8486:8486 -e MSB_ADDR=$OPENO_IP:80 $NEXUS_DOCKER_REPO/onap/vfc/nfvo/svnfm/nokia:$NOKIA_DOCKER_VER
flavor_xxlarge: PUT THE XXLARGE FLAVOR NAME HERE
- vm_base_name: vm1
+ vm_base_name: onap
key_name: onap_key
aai2_ip_addr: 10.0.1.2
appc_ip_addr: 10.0.2.1
dcae_ip_addr: 10.0.4.1
- dcae_coll_ip_addr: 10.0.4.102
- dcae_db_ip_addr: 10.0.4.101
- dcae_hdp1_ip_addr: 10.0.4.103
- dcae_hdp2_ip_addr: 10.0.4.104
- dcae_hdp3_ip_addr: 10.0.4.105
dns_ip_addr: 10.0.100.1
so_ip_addr: 10.0.5.1
mr_ip_addr: 10.0.11.1
clamp_ip_addr: 10.0.12.1
openo_ip_addr: 10.0.14.1
-# dcae_coll_float_ip: PUT DCAE COLLECTOR FLOATING IP HERE
-# dcae_db_float_ip: PUT DCAE DATABASE FLOATING IP HERE
-# dcae_hdp1_float_ip: PUT DCAE HADOOP VM1 FLOATING IP HERE
-# dcae_hdp2_float_ip: PUT DCAE HADOOP VM2 FLOATING IP HERE
-# dcae_hdp3_float_ip: PUT DCAE HADOOP VM3 FLOATING IP HERE
-
###########################
# #
# Parameters used by DCAE #
# #
###########################
-# dcae_base_environment: 1-NIC-FLOATING-IPS
-
-# dcae_zone: ZONE
-
-# dcae_state: STATE
-
-# nexus_repo_root: https://nexus.onap.org
-
-# nexus_url_snapshot: https://nexus.onap.org/content/repositories/snapshots
-
-# gitlab_branch: master
-
-# dcae_code_version: 1.1.0
-
dnsaas_config_enabled: PUT WHETHER TO USE PROXYED DESIGNATE
dnsaas_region: PUT THE DESIGNATE PROVIDING OPENSTACK'S REGION HERE
dnsaas_keystone_url: PUT THE DESIGNATE PROVIDING OPENSTACK'S KEYSTONE URL HERE
appc_branch: master
so_branch: master
mr_branch: master
- dcae_branch: master
policy_branch: master
portal_branch: release-1.3.0
robot_branch: master
clamp_branch: master
vnfsdk_branch: master
- aai_docker: 1.1-STAGING-latest
- appc_docker: 1.1-STAGING-latest
- so_docker: 1.1-STAGING-latest
- mr_docker: 1.1-STAGING-latest
- dcae_docker: 1.1-latest
- policy_docker: 1.1-STAGING-latest
+ aai_docker: v1.1.0
+ aai_sparky_docker: v1.0.0
+ appc_docker: v1.2.0
+ so_docker: v1.1.0
+ dcae_docker: v1.1.0
+ policy_docker: v1.1.1
portal_docker: v1.3.0
robot_docker: 1.1-STAGING-latest
sdc_docker: 1.1-STAGING-latest
sdnc_docker: 1.2-STAGING-latest
- vid_docker: 1.1-STAGING-latest
- clamp_docker: 1.1-STAGING-latest
- msb_docker: latest
+ vid_docker: v1.1.0
+ clamp_docker: v1.1.0
+ msb_docker: 1.0.0
mvim_docker: latest
- vfc_docker: latest
uui_docker: latest
- esr_docker: latest
- dgbuilder_docker: 0.1-STAGING-latest
+ esr_docker: v1.0.0
+ dgbuilder_docker: v0.1.0
cli_docker: v1.1.0
+ vfc_nokia_docker: 1.0.2-STAGING-latest
+ vfc_ztevmanagerdriver_docker: 1.0.2-STAGING-latest
+ vfc_ztesdncdriver_docker: 1.0.0-STAGING-latest
+ vfc_vnfres_docker: 1.0.1-STAGING-latest
+ vfc_vnfmgr_docker: 1.0.1-STAGING-latest
+ vfc_vnflcm_docker: 1.0.1-STAGING-latest
+ vfc_resmanagement_docker: 1.0.0-STAGING-latest
+ vfc_nslcm_docker: 1.0.2-STAGING-latest
+ vfc_huawei_docker: v1.0.0
+ vfc_jujudriver_docker: 1.0.0-STAGING-latest
+ vfc_gvnfmdriver_docker: 1.0.1-STAGING-latest
+ vfc_emsdriver_docker: 1.0.1-STAGING-latest
+ vfc_catalog_docker: 1.0.2-STAGING-latest
+ vfc_wfengine_mgrservice_docker: 1.0.0-STAGING-latest
+ vfc_wfengine_activiti_docker: 1.0.0-STAGING-latest
+
#####################
# #
# ONAP repositories #
#####################
aai_repo: http://gerrit.onap.org/r/aai/test-config
appc_repo: http://gerrit.onap.org/r/appc/deployment.git
- dcae_repo: http://gerrit.onap.org/r/dcae/demo/startup/controller.git
mr_repo: http://gerrit.onap.org/r/dcae/demo/startup/message-router.git
so_repo: http://gerrit.onap.org/r/so/docker-config.git
policy_repo: http://gerrit.onap.org/r/policy/docker.git
external_dns:
type: string
- description: First element of the dns_list for ONAP network
+ description: Public IP of the external DNS for ONAP network
dns_forwarder:
type: string
type: string
dcae_ip_addr:
type: string
- dcae_coll_ip_addr:
- type: string
- dcae_db_ip_addr:
- type: string
- dcae_hdp1_ip_addr:
- type: string
- dcae_hdp2_ip_addr:
- type: string
- dcae_hdp3_ip_addr:
- type: string
dns_ip_addr:
type: string
so_ip_addr:
type: string
openo_ip_addr:
type: string
-# dcae_coll_float_ip:
-# type: string
-# dcae_db_float_ip:
-# type: string
-# dcae_hdp1_float_ip:
-# type: string
-# dcae_hdp2_float_ip:
-# type: string
-# dcae_hdp3_float_ip:
-# type: string
###########################
# #
type: string
description: the top level domain to register DCAE VMs (the zone will be random-str.dcae_domain)
-# dcae_base_environment:
-# type: string
-# description: DCAE Base Environment configuration (RACKSPACE/2-NIC/1-NIC-FLOATING-IPS)
-
-# dcae_zone:
-# type: string
-# description: DCAE Zone to use in VM names created by DCAE controller
-
-# dcae_state:
-# type: string
-# description: DCAE State to use in VM names created by DCAE controller
-
-# nexus_repo_root:
-# type: string
-# description: Root URL of Nexus repository
-
-# nexus_url_snapshot:
-# type: string
-# description: Snapshot of Maven repository for DCAE deployment
-
-# gitlab_branch:
-# type: string
-# description: Branch of the Gitlab repository
-
-# dcae_code_version:
-# type: string
-# description: DCAE Code Version Number
-
#####################
# #
# ONAP repositories #
type: string
appc_repo:
type: string
- dcae_repo:
- type: string
mr_repo:
type: string
so_repo:
aai_docker:
type: string
+ aai_sparky_docker:
+ type: string
appc_docker:
type: string
so_docker:
type: string
- mr_docker:
- type: string
dcae_docker:
type: string
policy_docker:
type: string
mvim_docker:
type: string
- vfc_docker:
- type: string
uui_docker:
type: string
esr_docker:
type: string
cli_docker:
type: string
+ vfc_nokia_docker:
+ type: string
+ vfc_ztevmanagerdriver_docker:
+ type: string
+ vfc_ztesdncdriver_docker:
+ type: string
+ vfc_vnfres_docker:
+ type: string
+ vfc_vnfmgr_docker:
+ type: string
+ vfc_vnflcm_docker:
+ type: string
+ vfc_resmanagement_docker:
+ type: string
+ vfc_nslcm_docker:
+ type: string
+ vfc_huawei_docker:
+ type: string
+ vfc_jujudriver_docker:
+ type: string
+ vfc_gvnfmdriver_docker:
+ type: string
+ vfc_emsdriver_docker:
+ type: string
+ vfc_catalog_docker:
+ type: string
+ vfc_wfengine_mgrservice_docker:
+ type: string
+ vfc_wfengine_activiti_docker:
+ type: string
aai_branch:
type: string
type: string
mr_branch:
type: string
- dcae_branch:
- type: string
policy_branch:
type: string
portal_branch:
__aai2_ip_addr__: { get_param: aai2_ip_addr }
__appc_ip_addr__: { get_param: appc_ip_addr }
__dcae_ip_addr__: { get_param: dcae_ip_addr }
- __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
__so_ip_addr__: { get_param: so_ip_addr }
__mr_ip_addr__: { get_param: mr_ip_addr }
__policy_ip_addr__: { get_param: policy_ip_addr }
echo "__aai2_ip_addr__" > /opt/config/aai2_ip_addr.txt
echo "__appc_ip_addr__" > /opt/config/appc_ip_addr.txt
echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
- echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
echo "__so_ip_addr__" > /opt/config/so_ip_addr.txt
echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
echo "__policy_ip_addr__" > /opt/config/policy_ip_addr.txt
__artifacts_version__: { get_param: artifacts_version }
__dns_ip_addr__: { get_param: dns_ip_addr }
__docker_version__: { get_param: aai_docker }
+ __aai_sparky_docker__ : { get_param: aai_sparky_docker }
__gerrit_branch__: { get_param: aai_branch }
__cloud_env__: { get_param: cloud_env }
__external_dns__: { get_param: external_dns }
echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
echo "__dmaap_topic__" > /opt/config/dmaap_topic.txt
echo "__docker_version__" > /opt/config/docker_version.txt
+ echo "__aai_sparky_docker__" > /opt/config/sparky_version.txt
echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
echo "aai_instance_1" > /opt/config/aai_instance.txt
echo "__cloud_env__" > /opt/config/cloud_env.txt
__artifacts_version__: { get_param: artifacts_version }
__openstack_region__: { get_param: openstack_region }
__dns_ip_addr__: { get_param: dns_ip_addr }
- __docker_version__: { get_param: mr_docker }
__gerrit_branch__: { get_param: mr_branch }
__cloud_env__: { get_param: cloud_env }
__keystone_url__: { get_param: keystone_url }
__public_net_id__: { get_param: public_net_id }
__script_version__: { get_param: artifacts_version }
__robot_repo__: { get_param: robot_repo }
+ __docker_version__: { get_param: robot_docker }
template: |
#!/bin/bash
__artifacts_version__: { get_param: artifacts_version }
__dns_ip_addr__: { get_param: dns_ip_addr }
__mr_ip_addr__: { get_param: mr_ip_addr }
- __public_ip__: { get_attr: [sdc_floating_ip, floating_ip_address] }
+ __private_ip__: { get_param: sdc_ip_addr }
__docker_version__: { get_param: sdc_docker }
__gerrit_branch__: { get_param: sdc_branch }
__cloud_env__: { get_param: cloud_env }
echo "__nexus_password__" > /opt/config/nexus_password.txt
echo "__env_name__" > /opt/config/env_name.txt
echo "__mr_ip_addr__" > /opt/config/mr_ip_addr.txt
- echo "__public_ip__" > /opt/config/public_ip.txt
+ echo "__private_ip__" > /opt/config/private_ip.txt
echo "__artifacts_version__" > /opt/config/artifacts_version.txt
echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
echo "__docker_version__" > /opt/config/docker_version.txt
./portal_install.sh
- # DCAE Controller instantiation
-# dcae_c_private_port:
-# type: OS::Neutron::Port
-# properties:
-# network: { get_resource: oam_onap }
-# fixed_ips: [{"subnet": { get_resource: oam_onap_subnet }, "ip_address": { get_param: dcae_ip_addr }}]
-
-# dcae_c_floating_ip:
-# type: OS::Neutron::FloatingIP
-# properties:
-# floating_network_id: { get_param: public_net_id }
-# port_id: { get_resource: dcae_c_private_port }
-
-# dcae_c_vm:
-# type: OS::Nova::Server
-# properties:
-# image: { get_param: ubuntu_1404_image }
-# flavor: { get_param: flavor_medium }
-# name:
-# str_replace:
-# template: base-dcae-controller
-# params:
-# base: { get_param: vm_base_name }
-# key_name: { get_resource: vm_key }
-# networks:
-# - port: { get_resource: dcae_c_private_port }
-# user_data_format: RAW
-# user_data:
-# str_replace:
-# params:
-# __nexus_repo__: { get_param: nexus_repo }
-# __nexus_docker_repo__: { get_param: nexus_docker_repo }
-# __nexus_username__: { get_param: nexus_username }
-# __nexus_password__: { get_param: nexus_password }
-# __nexus_url_snapshots__: { get_param: nexus_url_snapshot }
-# __gitlab_branch__: { get_param: gitlab_branch }
-# __dns_ip_addr__: { get_param: dns_ip_addr }
-# __dcae_zone__: { get_param: dcae_zone }
-# __dcae_state__: { get_param: dcae_state }
-# __artifacts_version__: { get_param: artifacts_version }
-# __tenant_id__: { get_param: openstack_tenant_id }
-# __openstack_private_network_name__: { get_attr: [oam_onap, name] }
-# __openstack_user__: { get_param: openstack_username }
-# __openstack_password__: { get_param: openstack_api_key }
-# __openstack_auth_method__: { get_param: openstack_auth_method }
-# __key_name__: { get_param: key_name }
-# __rand_str__: { get_resource: random-str }
-# __pub_key__: { get_param: pub_key }
-# __nexus_repo_root__: { get_param: nexus_repo_root }
-# __openstack_region__: { get_param: openstack_region }
-# __horizon_url__: { get_param: horizon_url }
-# __keystone_url__: { get_param: keystone_url }
-# __docker_version__: { get_param: dcae_docker }
-# __gerrit_branch__: { get_param: dcae_branch }
-# __dcae_code_version__: { get_param: dcae_code_version }
-# __cloud_env__: { get_param: cloud_env }
-# __public_net_id__: { get_param: public_net_id }
-# __dcae_base_environment__: { get_param: dcae_base_environment }
-# __dcae_ip_addr__: { get_param: dcae_ip_addr }
-# __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
-# __dcae_db_ip_addr__: { get_param: dcae_db_ip_addr }
-# __dcae_hdp1_ip_addr__: { get_param: dcae_hdp1_ip_addr }
-# __dcae_hdp2_ip_addr__: { get_param: dcae_hdp2_ip_addr }
-# __dcae_hdp3_ip_addr__: { get_param: dcae_hdp3_ip_addr }
-# __dcae_float_ip__: { get_attr: [dcae_c_floating_ip, floating_ip_address] }
-# __dcae_coll_float_ip__: { get_param: dcae_coll_float_ip }
-# __dcae_db_float_ip__: { get_param: dcae_db_float_ip }
-# __dcae_hdp1_float_ip__: { get_param: dcae_hdp1_float_ip }
-# __dcae_hdp2_float_ip__: { get_param: dcae_hdp2_float_ip }
-# __dcae_hdp3_float_ip__: { get_param: dcae_hdp3_float_ip }
-# __external_dns__: { get_param: external_dns }
-# __ubuntu_1404_image__: { get_param: ubuntu_1404_image }
-# __ubuntu_1604_image__: { get_param: ubuntu_1604_image }
-# __flavor_small__: { get_param: flavor_small }
-# __flavor_medium__: { get_param: flavor_medium }
-# __flavor_large__: { get_param: flavor_large }
-# __flavor_xlarge__: { get_param: flavor_xlarge }
-# __dcae_repo__: { get_param: dcae_repo }
-# __mr_repo__: { get_param: mr_repo }
-# template: |
- #!/bin/bash
-
- # Create configuration files
-# mkdir -p /opt/config
-# echo "__nexus_repo__" > /opt/config/nexus_repo.txt
-# echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
-# echo "__nexus_username__" > /opt/config/nexus_username.txt
-# echo "__nexus_password__" > /opt/config/nexus_password.txt
-# echo "__nexus_url_snapshots__" > /opt/config/nexus_url_snapshots.txt
-# echo "__gitlab_branch__" > /opt/config/gitlab_branch.txt
-# echo "__docker_version__" > /opt/config/docker_version.txt
-# echo "__artifacts_version__" > /opt/config/artifacts_version.txt
-# echo "__dns_ip_addr__" > /opt/config/dns_ip_addr.txt
-# echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
-# echo "__dcae_zone__" > /opt/config/dcae_zone.txt
-# echo "__dcae_state__" > /opt/config/dcae_state.txt
-# echo "__tenant_id__" > /opt/config/tenant_id.txt
-# echo "__openstack_private_network_name__" > /opt/config/openstack_private_network_name.txt
-# echo "__openstack_user__" > /opt/config/openstack_user.txt
-# echo "__openstack_password__" > /opt/config/openstack_password.txt
-# echo "__openstack_auth_method__" > /opt/config/openstack_auth_method.txt
-# echo "__key_name__" > /opt/config/key_name.txt
-# echo "__rand_str__" > /opt/config/rand_str.txt
-# echo "__pub_key__" > /opt/config/pub_key.txt
-# echo "__nexus_repo_root__" > /opt/config/nexus_repo_root.txt
-# echo "__openstack_region__" > /opt/config/openstack_region.txt
-# echo "__horizon_url__" > /opt/config/horizon_url.txt
-# echo "__keystone_url__" > /opt/config/keystone_url.txt
-# echo "__cloud_env__" > /opt/config/cloud_env.txt
-# echo "__public_net_id__" > /opt/config/public_net_id.txt
-# echo "__dcae_base_environment__" > /opt/config/dcae_base_environment.txt
-# echo "__dcae_code_version__" > /opt/config/dcae_code_version.txt
-# echo "__dcae_ip_addr__" > /opt/config/dcae_ip_addr.txt
-# echo "__dcae_coll_ip_addr__" > /opt/config/dcae_coll_ip_addr.txt
-# echo "__dcae_db_ip_addr__" > /opt/config/dcae_db_ip_addr.txt
-# echo "__dcae_hdp1_ip_addr__" > /opt/config/dcae_hdp1_ip_addr.txt
-# echo "__dcae_hdp2_ip_addr__" > /opt/config/dcae_hdp2_ip_addr.txt
-# echo "__dcae_hdp3_ip_addr__" > /opt/config/dcae_hdp3_ip_addr.txt
-# echo "__dcae_float_ip__" > /opt/config/dcae_float_ip.txt
-# echo "__dcae_coll_float_ip__" > /opt/config/dcae_coll_float_ip.txt
-# echo "__dcae_db_float_ip__" > /opt/config/dcae_db_float_ip.txt
-# echo "__dcae_hdp1_float_ip__" > /opt/config/dcae_hdp1_float_ip.txt
-# echo "__dcae_hdp2_float_ip__" > /opt/config/dcae_hdp2_float_ip.txt
-# echo "__dcae_hdp3_float_ip__" > /opt/config/dcae_hdp3_float_ip.txt
-# echo "__external_dns__" > /opt/config/external_dns.txt
-# echo "__ubuntu_1404_image__" > /opt/config/ubuntu_1404_image.txt
-# echo "__ubuntu_1604_image__" > /opt/config/ubuntu_1604_image.txt
-# echo "__flavor_small__" > /opt/config/flavor_small.txt
-# echo "__flavor_medium__" > /opt/config/flavor_medium.txt
-# echo "__flavor_large__" > /opt/config/flavor_large.txt
-# echo "__flavor_xlarge__" > /opt/config/flavor_xlarge.txt
-# echo "__dcae_repo__" > /opt/config/remote_repo.txt
-# echo "__mr_repo__" > /opt/config/mr_repo.txt
-
- # Download and run install script
-# curl -k __nexus_repo__/org.onap.demo/boot/__artifacts_version__/dcae_install.sh -o /opt/dcae_install.sh
-# cd /opt
-# chmod +x dcae_install.sh
-# ./dcae_install.sh
-
-
# Policy Engine instantiation
policy_private_port:
type: OS::Neutron::Port
__aai2_ip_addr__: { get_param: aai2_ip_addr }
__appc_ip_addr__: { get_param: appc_ip_addr }
__dcae_ip_addr__: { get_param: dcae_ip_addr }
- __dcae_coll_ip_addr__: { get_param: dcae_coll_ip_addr }
__so_ip_addr__: { get_param: so_ip_addr }
__mr_ip_addr__: { get_param: mr_ip_addr }
__policy_ip_addr__: { get_param: policy_ip_addr }
__vnfsdk_branch__: { get_param: vnfsdk_branch }
__msb_docker__: { get_param: msb_docker }
__mvim_docker__: { get_param: mvim_docker }
- __vfc_docker__: { get_param: vfc_docker }
__uui_docker__: { get_param: uui_docker }
__esr_docker__: { get_param: esr_docker }
__vnfsdk_repo__: { get_param: vnfsdk_repo }
+ __vfc_nokia_docker__: { get_param: vfc_nokia_docker }
+ __vfc_ztevmanagerdriver_docker__: { get_param: vfc_ztevmanagerdriver_docker }
+ __vfc_ztesdncdriver_docker__: { get_param: vfc_ztesdncdriver_docker }
+ __vfc_vnfres_docker__: { get_param: vfc_vnfres_docker }
+ __vfc_vnfmgr_docker__: { get_param: vfc_vnfmgr_docker }
+ __vfc_vnflcm_docker__: { get_param: vfc_vnflcm_docker }
+ __vfc_resmanagement_docker__: { get_param: vfc_resmanagement_docker }
+ __vfc_nslcm_docker__: { get_param: vfc_nslcm_docker }
+ __vfc_huawei_docker__: { get_param: vfc_huawei_docker }
+ __vfc_jujudriver_docker__: { get_param: vfc_jujudriver_docker }
+ __vfc_gvnfmdriver_docker__: { get_param: vfc_gvnfmdriver_docker }
+ __vfc_emsdriver_docker__: { get_param: vfc_emsdriver_docker }
+ __vfc_catalog_docker__: { get_param: vfc_catalog_docker }
+ __vfc_wfengine_mgrservice_docker__: { get_param: vfc_wfengine_mgrservice_docker }
+ __vfc_wfengine_activiti_docker__: { get_param: vfc_wfengine_activiti_docker }
template: |
#!/bin/bash
echo "__vnfsdk_branch__" > /opt/config/vnfsdk_branch.txt
echo "__msb_docker__" > /opt/config/msb_docker.txt
echo "__mvim_docker__" > /opt/config/mvim_docker.txt
- echo "__vfc_docker__" > /opt/config/vfc_docker.txt
echo "__uui_docker__" > /opt/config/uui_docker.txt
echo "__esr_docker__" > /opt/config/esr_docker.txt
echo "__vnfsdk_repo__" > /opt/config/vnfsdk_repo.txt
+ echo "export NOKIA_DOCKER_VER=__vfc_nokia_docker__" >> /opt/config/vfc_docker.txt
+ echo "export ZTEVMANAGERDRIVER_DOCKER_VER=__vfc_ztevmanagerdriver_docker__" >> /opt/config/vfc_docker.txt
+ echo "export ZTESDNCDRIVER_DOCKER_VER=__vfc_ztesdncdriver_docker__" >> /opt/config/vfc_docker.txt
+ echo "export VNFRES_DOCKER_VER=__vfc_vnfres_docker__" >> /opt/config/vfc_docker.txt
+ echo "export VNFMGR_DOCKER_VER=__vfc_vnfmgr_docker__" >> /opt/config/vfc_docker.txt
+ echo "export VNFLCM_DOCKER_VER=__vfc_vnflcm_docker__" >> /opt/config/vfc_docker.txt
+ echo "export RESMANAGEMENT_DOCKER_VER=__vfc_resmanagement_docker__" >> /opt/config/vfc_docker.txt
+ echo "export NSLCM_DOCKER_VER=__vfc_nslcm_docker__" >> /opt/config/vfc_docker.txt
+ echo "export HUAWEI_DOCKER_VER=__vfc_huawei_docker__" >> /opt/config/vfc_docker.txt
+ echo "export JUJUDRIVER_DOCKER_VER=__vfc_jujudriver_docker__" >> /opt/config/vfc_docker.txt
+ echo "export GVNFMDRIVER_DOCKER_VER=__vfc_gvnfmdriver_docker__" >> /opt/config/vfc_docker.txt
+ echo "export EMSDRIVER_DOCKER_VER=__vfc_emsdriver_docker__" >> /opt/config/vfc_docker.txt
+ echo "export CATALOG_DOCKER_VER=__vfc_catalog_docker__" >> /opt/config/vfc_docker.txt
+ echo "export MGRSERVICE_DOCKER_VER=__vfc_wfengine_mgrservice_docker__" >> /opt/config/vfc_docker.txt
+ echo "export ACTIVITI_DOCKER_VER=__vfc_wfengine_activiti_docker__" >> /opt/config/vfc_docker.txt
+
# Create env file with the IP address of all ONAP components
echo "export AAI_IP1=__aai1_ip_addr__" >> /opt/config/onap_ips.txt
echo "export AAI_IP2=__aai2_ip_addr__" >> /opt/config/onap_ips.txt
echo "export APPC_IP=__appc_ip_addr__" >> /opt/config/onap_ips.txt
echo "export DCAE_IP=__dcae_ip_addr__" >> /opt/config/onap_ips.txt
- echo "export DCAE_COLL_IP=__dcae_coll_ip_addr__" >> /opt/config/onap_ips.txt
echo "export SO_IP=__so_ip_addr__" >> /opt/config/onap_ips.txt
echo "export MR_IP=__mr_ip_addr__" >> /opt/config/onap_ips.txt
echo "export POLICY_IP=__policy_ip_addr__" >> /opt/config/onap_ips.txt
__nexus_docker_repo__: { get_param: nexus_docker_repo }
__nexus_username__: { get_param: nexus_username }
__nexus_password__: { get_param: nexus_password }
- __dcae_repo__: { get_param: dcae_repo }
- __gerrit_branch__: { get_param: dcae_branch }
# conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
__mac_addr__: { get_attr: [dcae_c_private_port, mac_address] }
__dcae_ip_addr__: { get_param: dcae_ip_addr }
echo "__nexus_docker_repo__" > /opt/config/nexus_docker_repo.txt
echo "__nexus_username__" > /opt/config/nexus_username.txt
echo "__nexus_password__" > /opt/config/nexus_password.txt
- echo "__dcae_repo__" > /opt/config/remote_repo.txt
echo "__gerrit_branch__" > /opt/config/gerrit_branch.txt
# conf for the ONAP environment where the DCAE bootstrap vm/conatiner runs
echo "__mac_addr__" > /opt/config/mac_addr.txt
systemctl start vpp
systemctl start honeycomb
-
-/opt/bind_nic.sh
-/opt/set_nat.sh
+systemctl start nat
NICS=$(get_nic_pci_list)
NICS=`echo ${NICS} | sed 's/[0]\+\([0-9]\)/\1/g' | sed 's/[.:]/\//g'`
- echo $NICS
BRG_BNG_NIC=GigabitEthernet`echo ${NICS} | cut -d " " -f 2` # second interface in list
echo $BRG_BNG_NIC > /opt/config/brg_nic.txt
sleep 1
done
EOF
+
chmod +x /opt/set_nat.sh
+
+ #Create script to run bind_nic.sh and set_nat.sh
+ cat > /opt/nat_service.sh << 'EOF'
+#! /bin/bash
+
+sleep 15
+/opt/bind_nic.sh
+/opt/set_nat.sh
+
+EOF
+ chmod +x /opt/nat_service.sh
+
fi # endif BUILD_STATE != "build"
if [[ $BUILD_STATE != "done" ]]
EOF
systemctl enable /etc/systemd/system/honeycomb.service
+
+ # Create systemctl service for nat script
+ cat > /etc/systemd/system/nat.service << EOF
+[Unit]
+Description=Runs vbrg scripts for nat configuration
+Requires=vpp.service
+After=vpp.service
+
+[Service]
+RemainAfterExit=True
+ExecStart=/opt/nat_service.sh
+Restart=always
+
+[Install]
+WantedBy=multi-user.target
+EOF
+ systemctl enable /etc/systemd/system/nat.service
+
# Download DHCP config files
cd /opt
wget $REPO_URL_BLOB/org.onap.demo/vnfs/vcpe/$INSTALL_SCRIPT_VERSION/v_brgemu_init.sh
Signed-off-by: Johnson Li <johnson.li@intel.com>
diff --git a/pom.xml b/pom.xml
-index 538a5d98..581bedfc 100644
+index 538a5d9..581bedf 100644
--- a/pom.xml
+++ b/pom.xml
@@ -44,13 +44,14 @@
\ No newline at end of file
diff --git a/ves/asciidoc/Readme.adoc b/ves/asciidoc/Readme.adoc
new file mode 100644
-index 00000000..682e7555
+index 0000000..682e755
--- /dev/null
+++ b/ves/asciidoc/Readme.adoc
@@ -0,0 +1,3 @@
+Overview of ves-agent
diff --git a/ves/pom.xml b/ves/pom.xml
new file mode 100644
-index 00000000..1ded0109
+index 0000000..1ded010
--- /dev/null
+++ b/ves/pom.xml
@@ -0,0 +1,56 @@
+</project>
diff --git a/ves/ves-api/asciidoc/Readme.adoc b/ves/ves-api/asciidoc/Readme.adoc
new file mode 100644
-index 00000000..b561268c
+index 0000000..b561268
--- /dev/null
+++ b/ves/ves-api/asciidoc/Readme.adoc
@@ -0,0 +1,3 @@
\ No newline at end of file
diff --git a/ves/ves-api/pom.xml b/ves/ves-api/pom.xml
new file mode 100644
-index 00000000..78bf47b9
+index 0000000..78bf47b
--- /dev/null
+++ b/ves/ves-api/pom.xml
@@ -0,0 +1,52 @@
+</project>
diff --git a/ves/ves-api/src/main/yang/vesagent.yang b/ves/ves-api/src/main/yang/vesagent.yang
new file mode 100644
-index 00000000..a3c79797
+index 0000000..dde09c2
--- /dev/null
+++ b/ves/ves-api/src/main/yang/vesagent.yang
-@@ -0,0 +1,71 @@
+@@ -0,0 +1,77 @@
+module vesagent {
+
+ yang-version 1;
+ description
+ "VES Working Mode, Demo Or Real Only.";
+ }
++
++ leaf source-name {
++ type string;
++ description
++ "Override for the sourceName field in the VES event";
++ }
+ }
+ }
+
+}
diff --git a/ves/ves-impl/asciidoc/Readme.adoc b/ves/ves-impl/asciidoc/Readme.adoc
new file mode 100644
-index 00000000..e07fb05f
+index 0000000..e07fb05
--- /dev/null
+++ b/ves/ves-impl/asciidoc/Readme.adoc
@@ -0,0 +1,3 @@
\ No newline at end of file
diff --git a/ves/ves-impl/pom.xml b/ves/ves-impl/pom.xml
new file mode 100644
-index 00000000..5ed2c1b4
+index 0000000..5ed2c1b
--- /dev/null
+++ b/ves/ves-impl/pom.xml
@@ -0,0 +1,157 @@
+</project>
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/VesModule.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/VesModule.java
new file mode 100644
-index 00000000..0cd60068
+index 0000000..0cd6006
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/VesModule.java
@@ -0,0 +1,67 @@
+}
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/jvpp/JVppVesProvider.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/jvpp/JVppVesProvider.java
new file mode 100644
-index 00000000..8afed84e
+index 0000000..8afed84
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/jvpp/JVppVesProvider.java
@@ -0,0 +1,59 @@
+
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/read/VesReaderFactory.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/read/VesReaderFactory.java
new file mode 100644
-index 00000000..bef652fd
+index 0000000..bef652f
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/read/VesReaderFactory.java
@@ -0,0 +1,50 @@
+}
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesConfigCustomizer.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesConfigCustomizer.java
new file mode 100644
-index 00000000..e06afa73
+index 0000000..e06afa7
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesConfigCustomizer.java
@@ -0,0 +1,127 @@
+}
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesModeCustomizer.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesModeCustomizer.java
new file mode 100644
-index 00000000..8b6d5a9a
+index 0000000..248d819
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesModeCustomizer.java
-@@ -0,0 +1,97 @@
+@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2017 Intel Corp and/or its affiliates.
+ *
+ @Nonnull final WriteContext writeContext) throws WriteFailedException {
+ LOG.debug("Writing VES Agent Working Mode {} dataAfter={}", iid, dataAfter);
+
-+ checkArgument(dataAfter.getWorkingMode() != null && dataAfter.getBasePacketLoss() <= 100,
++ checkArgument(dataAfter.getSourceName() != null && dataAfter.getWorkingMode() != null && dataAfter.getBasePacketLoss() <= 100,
+ "VES Agent Working Mode need to be correctly configured.");
+
+ setVesAgentMode(iid, dataAfter);
+ throws WriteFailedException {
+ LOG.debug("Writing VES Agent Working Mode {} {}-->{}", iid, dataBefore, dataAfter);
+
-+ checkArgument(dataAfter.getWorkingMode() != null && dataAfter.getBasePacketLoss() <= 100,
++ checkArgument(dataAfter.getSourceName() != null && dataAfter.getWorkingMode() != null && dataAfter.getBasePacketLoss() <= 100,
+ "VES Agent Working Mode need to be correctly configured.");
+
+ setVesAgentMode(iid, dataAfter);
+ LOG.debug("Restoring VES Mode {} dataBefore={} to default.", iid, dataBefore);
+
+ modeBuilder.setWorkingMode("Real")
-+ .setBasePacketLoss(0L);
++ .setBasePacketLoss(0L)
++ .setSourceName("");
+
+ setVesAgentMode(iid, modeBuilder.build());
+ }
+
+ request.pktLossRate = mode.getBasePacketLoss().byteValue();
+ request.workMode = mode.getWorkingMode().getBytes();
++ request.sourceName = mode.getSourceName().getBytes();
+
+ LOG.debug("VES agent working mode change id={} request={}", id, request);
+ getReplyForWrite(jvppVes.vesAgentMode(request).toCompletableFuture(), id);
+}
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesWriterFactory.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesWriterFactory.java
new file mode 100644
-index 00000000..581f0460
+index 0000000..581f046
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesWriterFactory.java
@@ -0,0 +1,54 @@
+}
diff --git a/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesagentCustomizer.java b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesagentCustomizer.java
new file mode 100644
-index 00000000..62e46cdb
+index 0000000..62e46cd
--- /dev/null
+++ b/ves/ves-impl/src/main/java/io/fd/hc2vpp/ves/write/VesagentCustomizer.java
@@ -0,0 +1,131 @@
+ }
+}
diff --git a/vpp-integration/minimal-distribution/pom.xml b/vpp-integration/minimal-distribution/pom.xml
-index e126114a..ca0e5b24 100644
+index e126114..ca0e5b2 100644
--- a/vpp-integration/minimal-distribution/pom.xml
+++ b/vpp-integration/minimal-distribution/pom.xml
@@ -40,6 +40,7 @@
<groupId>io.fd.hc2vpp.management</groupId>
<artifactId>vpp-management-impl</artifactId>
<version>${vpp-management-impl.version}</version>
---
-2.12.2.windows.2
-
Subject: [PATCH] Add VES Agent to report statistics
Change Log:
+v3: Add option to configure source name for VES event
v2: Use VES 5.x as agent library
v1: Add VES agent to report statistics
Signed-off-by: Johnson Li <johnson.li@intel.com>
diff --git a/src/configure.ac b/src/configure.ac
-index fb2ead6d..ea641525 100644
+index fb2ead6..ea64152 100644
--- a/src/configure.ac
+++ b/src/configure.ac
@@ -154,6 +154,7 @@ PLUGIN_ENABLED(lb)
###############################################################################
# Dependency checks
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
-index 623892e7..84513755 100644
+index 623892e..8451375 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -69,6 +69,10 @@ if ENABLE_SNAT_PLUGIN
# Remove *.la files
diff --git a/src/plugins/ves.am b/src/plugins/ves.am
new file mode 100644
-index 00000000..10f2194b
+index 0000000..10f2194
--- /dev/null
+++ b/src/plugins/ves.am
@@ -0,0 +1,35 @@
+# vi:syntax=automake
diff --git a/src/plugins/ves/include/double_list.h b/src/plugins/ves/include/double_list.h
new file mode 100644
-index 00000000..5cf7e1af
+index 0000000..5cf7e1a
--- /dev/null
+++ b/src/plugins/ves/include/double_list.h
@@ -0,0 +1,57 @@
+#endif
diff --git a/src/plugins/ves/include/evel.h b/src/plugins/ves/include/evel.h
new file mode 100644
-index 00000000..6aceec30
+index 0000000..d696085
--- /dev/null
+++ b/src/plugins/ves/include/evel.h
@@ -0,0 +1,4494 @@
+ * ::evel_free_event.
+ * @retval NULL Failed to create the event.
+ *****************************************************************************/
-+EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval,const char* ev_name, const char *ev_id);
++EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval,const char* ev_name, const char *ev_id, const char *ev_source_name);
+
+/**************************************************************************//**
+ * Free a Measurement.
+
diff --git a/src/plugins/ves/include/evel_internal.h b/src/plugins/ves/include/evel_internal.h
new file mode 100644
-index 00000000..46f71af1
+index 0000000..46f71af
--- /dev/null
+++ b/src/plugins/ves/include/evel_internal.h
@@ -0,0 +1,858 @@
+#endif
diff --git a/src/plugins/ves/include/evel_throttle.h b/src/plugins/ves/include/evel_throttle.h
new file mode 100644
-index 00000000..c97b3c37
+index 0000000..c97b3c3
--- /dev/null
+++ b/src/plugins/ves/include/evel_throttle.h
@@ -0,0 +1,214 @@
+#endif
diff --git a/src/plugins/ves/include/hashtable.h b/src/plugins/ves/include/hashtable.h
new file mode 100644
-index 00000000..8be17dc1
+index 0000000..8be17dc
--- /dev/null
+++ b/src/plugins/ves/include/hashtable.h
@@ -0,0 +1,97 @@
+#endif
diff --git a/src/plugins/ves/include/jsmn.h b/src/plugins/ves/include/jsmn.h
new file mode 100644
-index 00000000..4ae6d9b4
+index 0000000..4ae6d9b
--- /dev/null
+++ b/src/plugins/ves/include/jsmn.h
@@ -0,0 +1,93 @@
+#endif /* __JSMN_H_ */
diff --git a/src/plugins/ves/include/metadata.h b/src/plugins/ves/include/metadata.h
new file mode 100644
-index 00000000..1ee44092
+index 0000000..1ee4409
--- /dev/null
+++ b/src/plugins/ves/include/metadata.h
@@ -0,0 +1,58 @@
+#endif
diff --git a/src/plugins/ves/include/ring_buffer.h b/src/plugins/ves/include/ring_buffer.h
new file mode 100644
-index 00000000..1236b78b
+index 0000000..1236b78
--- /dev/null
+++ b/src/plugins/ves/include/ring_buffer.h
@@ -0,0 +1,96 @@
+#endif
diff --git a/src/plugins/ves/ves.api b/src/plugins/ves/ves.api
new file mode 100644
-index 00000000..a7106f8d
+index 0000000..bae2620
--- /dev/null
+++ b/src/plugins/ves/ves.api
-@@ -0,0 +1,72 @@
+@@ -0,0 +1,74 @@
+/*
+ * Copyright (c) 2017 Intel and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ @param context - sender context, to match reply w/ request
+ @param pkt_loss_rate - Base packet loss rate if Demo Mode
+ @param work_mode[] - Agent's work mode, real or demo
++ @param source_name[] - Agent's source name
+*/
+define ves_agent_mode
+{
+ u32 context;
+ u32 pkt_loss_rate;
+ u8 work_mode[8];
++ u8 source_name[129];
+};
+
+/** \brief VES Agent Mode response
+ */
diff --git a/src/plugins/ves/ves_all_api_h.h b/src/plugins/ves/ves_all_api_h.h
new file mode 100644
-index 00000000..72b15697
+index 0000000..72b1569
--- /dev/null
+++ b/src/plugins/ves/ves_all_api_h.h
@@ -0,0 +1,18 @@
+#include <ves/ves.api.h>
diff --git a/src/plugins/ves/ves_api.c b/src/plugins/ves/ves_api.c
new file mode 100644
-index 00000000..7a9b8004
+index 0000000..06f0a96
--- /dev/null
+++ b/src/plugins/ves/ves_api.c
@@ -0,0 +1,139 @@
+ || !strcmp((char *)mp->work_mode, "DEMO"))
+ mode = VES_AGENT_MODE_DEMO;
+
-+ rv = ves_agent_set_mode(mode, (u32) ntohl(mp->pkt_loss_rate));
++ rv = ves_agent_set_mode(mode, (u32) ntohl(mp->pkt_loss_rate), (char *) mp->source_name);
+
+ REPLY_MACRO (VL_API_VES_AGENT_MODE_REPLY);
+}
+ */
diff --git a/src/plugins/ves/ves_msg_enum.h b/src/plugins/ves/ves_msg_enum.h
new file mode 100644
-index 00000000..6e8a5dfa
+index 0000000..6e8a5df
--- /dev/null
+++ b/src/plugins/ves/ves_msg_enum.h
@@ -0,0 +1,31 @@
+#endif /* _VES_MSG_ENUM_H_ */
diff --git a/src/plugins/ves/ves_node.c b/src/plugins/ves/ves_node.c
new file mode 100644
-index 00000000..7540dd16
+index 0000000..49d7e87
--- /dev/null
+++ b/src/plugins/ves/ves_node.c
-@@ -0,0 +1,646 @@
+@@ -0,0 +1,656 @@
+/*
+ * Copyright (c) 2017 Intel and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ packets_out_this_round = 0;
+ }
+
-+ vpp_m = evel_new_measurement(vam->config.read_interval, "Measurement_vGMUX", "Generic_traffic");
++ vpp_m = evel_new_measurement(vam->config.read_interval, "Measurement_vGMUX", "Generic_traffic", (char *) vam->config.source_name);
+ if(vpp_m != NULL) {
+ char str_pkt_loss[12];
+ MEASUREMENT_VNIC_PERFORMANCE * vnic_performance = NULL;
+
+int
+ves_agent_set_mode(ves_agent_mode_t mode,
-+ u32 pkt_loss_rate)
++ u32 pkt_loss_rate, char *source_name)
+{
+ ves_agent_main_t *vam = &ves_agent_main;
+ int retval = 0;
+
++ if (source_name != NULL) {
++ strncpy((char *) vam->config.source_name, source_name, MAX_SRC_NAME_LEN);
++ vam->config.source_name[MAX_SRC_NAME_LEN] = '\0';
++ } else {
++ vam->config.source_name[0] = '\0';
++ }
+ if (VES_AGENT_MODE_DEMO == mode) {
+ if (pkt_loss_rate > 100) {
+ vam->config.mode = VES_AGENT_MODE_REAL;
+ u32 pkt_loss_rate = 0;
+ ves_agent_mode_t mode = VES_AGENT_MODE_REAL;
+ int set_mode = 0;
++ u8 *source_name = NULL;
+
+ while (unformat_check_input(input) != UNFORMAT_END_OF_INPUT)
+ {
+ set_mode = 1;
+ else if (unformat (input, "base %u", &pkt_loss_rate))
+ ;
++ else if (unformat (input, "source %s", &source_name))
++ ;
+ else
+ break;
+ }
+
+ if (set_mode)
+ {
-+ int retval = ves_agent_set_mode(mode, pkt_loss_rate);
++ int retval = ves_agent_set_mode(mode, pkt_loss_rate, (char *)source_name);
+ if (retval == 0)
+ return 0;
+ else
+
+VLIB_CLI_COMMAND (ves_mode_set_command, static) = {
+ .path = "set ves mode",
-+ .short_help = "set ves mode <demo|real> [base <pkt-loss-rate>]",
++ .short_help = "set ves mode <demo|real> [base <pkt-loss-rate>] [source <name>]",
+ .function = ves_mode_set_command_fn,
+};
+
+{
+ ves_agent_main_t *vam = &ves_agent_main;
+
-+ s = format(s, "%=8s %s\n", "Mode", "Base Packet Loss Rate");
++ s = format(s, "%=8s %s %s\n", "Mode", "Base Packet Loss Rate", "Source Name");
+
-+ s = format(s, "%=8s %.1f %%\n",
++ s = format(s, "%=8s %20.1f%% %s\n",
+ vam->config.mode == VES_AGENT_MODE_DEMO ? "Demo" : "Real",
-+ (double) vam->config.base_pkt_loss);
++ (double) vam->config.base_pkt_loss,
++ (strlen((char *)vam->config.source_name) > 0) ? (char *)vam->config.source_name : "[default]");
+
+ return s;
+}
+ */
diff --git a/src/plugins/ves/ves_node.h b/src/plugins/ves/ves_node.h
new file mode 100644
-index 00000000..7b773843
+index 0000000..9a57f34
--- /dev/null
+++ b/src/plugins/ves/ves_node.h
-@@ -0,0 +1,66 @@
+@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2017 Intel and/or its affiliates.
+ * Licensed under the Apache License, Version 2.0 (the "License");
+#define DEFAULT_MEASURE_ETH "eth0"
+#define DEFAULT_SERVER_PORT 8080
+#define DEFAULT_READ_INTERVAL 100
++#define MAX_SRC_NAME_LEN 128
+
+typedef enum {
+ VES_AGENT_MODE_REAL = 0,
+ int is_enabled;
+ u32 base_pkt_loss; /* For demo only */
+ ves_agent_mode_t mode; /* Demo or Real */
++ u8 source_name[MAX_SRC_NAME_LEN+1];
+} ves_agent_config_t;
+
+typedef struct {
+ u32 read_interval, int is_del);
+
+int ves_agent_set_mode(ves_agent_mode_t mode,
-+ u32 pkt_loss_rate);
++ u32 pkt_loss_rate, char *source_name);
+
+#endif /* _VES_NODE_H_ */
diff --git a/src/vpp-api/java/Makefile.am b/src/vpp-api/java/Makefile.am
-index f18e0c24..7f4738d8 100644
+index f18e0c2..7f4738d 100644
--- a/src/vpp-api/java/Makefile.am
+++ b/src/vpp-api/java/Makefile.am
-@@ -148,6 +148,26 @@ jvpp-snat/io_fd_vpp_jvpp_snat_JVppSnatImpl.h: $(jvpp_registry_ok) $(jvpp_snat_js
- $(call japigen,snat,JVppSnatImpl)
+@@ -149,6 +149,26 @@ jvpp-snat/io_fd_vpp_jvpp_snat_JVppSnatImpl.h: $(jvpp_registry_ok) $(jvpp_snat_js
endif
-+#
+ #
+# VES Plugin
+#
+if ENABLE_VES_PLUGIN
+ $(call japigen,ves,JVppVesImpl)
+endif
+
- #
++#
# iOAM Trace Plugin
#
+ if ENABLE_IOAM_PLUGIN
diff --git a/src/vpp-api/java/jvpp-ves/jvpp_ves.c b/src/vpp-api/java/jvpp-ves/jvpp_ves.c
new file mode 100644
-index 00000000..60e325b5
+index 0000000..60e325b
--- /dev/null
+++ b/src/vpp-api/java/jvpp-ves/jvpp_ves.c
@@ -0,0 +1,108 @@
+}
diff --git a/src/vpp-api/java/jvpp-ves/jvpp_ves.h b/src/vpp-api/java/jvpp-ves/jvpp_ves.h
new file mode 100644
-index 00000000..642101ca
+index 0000000..642101c
--- /dev/null
+++ b/src/vpp-api/java/jvpp-ves/jvpp_ves.h
@@ -0,0 +1,43 @@
+
+
+#endif /* __included_jvpp_ves_h__ */
---
-2.14.1.windows.1
-
+diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h
+index 0ae1713..be3ae6c 100644
+--- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h
++++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel.h
+@@ -1715,13 +1715,14 @@ void evel_fault_type_set(EVENT_FAULT * fault, const char * const type);
+ * @param measurement_interval
+ * @param event_name Unique Event Name
+ * @param event_id A universal identifier of the event for analysis etc
++ * @param event_source_name Optional override of the source name
+ *
+ * @returns pointer to the newly manufactured ::EVENT_MEASUREMENT. If the
+ * event is not used (i.e. posted) it must be released using
+ * ::evel_free_event.
+ * @retval NULL Failed to create the event.
+ *****************************************************************************/
+-EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval,const char* ev_name, const char *ev_id);
++EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval,const char* ev_name, const char *ev_id, const char *ev_source_name);
+
+ /**************************************************************************//**
+ * Free a Measurement.
diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
-index ced29b2..892e4b6 100644
+index 4de49bc..de6b362 100644
--- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
+++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_event.c
-@@ -166,7 +166,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
+@@ -167,7 +167,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec;
header->priority = EVEL_PRIORITY_NORMAL;
header->reporting_entity_name = strdup(openstack_vm_name());
header->sequence = event_sequence;
header->start_epoch_microsec = header->last_epoch_microsec;
header->major_version = EVEL_HEADER_MAJOR_VERSION;
-@@ -180,7 +181,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
+@@ -181,7 +182,8 @@ void evel_init_header(EVENT_HEADER * const header,const char *const eventname)
evel_init_option_string(&header->nfcnaming_code);
evel_init_option_string(&header->nfnaming_code);
evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid());
evel_init_option_intheader(&header->internal_field);
EVEL_EXIT();
-@@ -215,7 +217,8 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
+@@ -216,7 +218,8 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec;
header->priority = EVEL_PRIORITY_NORMAL;
header->reporting_entity_name = strdup(openstack_vm_name());
header->sequence = event_sequence;
header->start_epoch_microsec = header->last_epoch_microsec;
header->major_version = EVEL_HEADER_MAJOR_VERSION;
-@@ -229,7 +232,8 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
+@@ -230,7 +233,63 @@ void evel_init_header_nameid(EVENT_HEADER * const header,const char *const event
evel_init_option_string(&header->nfcnaming_code);
evel_init_option_string(&header->nfnaming_code);
evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid());
- evel_force_option_string(&header->source_id, openstack_vm_uuid());
+ /* evel_force_option_string(&header->source_id, openstack_vm_uuid()); */
++ evel_force_option_string(&header->source_id, openstack_vnf_id()); /* vCPE quick hack */
++ evel_init_option_intheader(&header->internal_field);
++
++ EVEL_EXIT();
++}
++
++/**************************************************************************//**
++ * Initialize a newly created event header.
++ *
++ * @param header Pointer to the header being initialized.
++ *****************************************************************************/
++void evel_init_header_source_name(EVENT_HEADER * const header,const char *const eventname, const char *eventid, const char *eventsrcname)
++{
++ struct timeval tv;
++
++ EVEL_ENTER();
++
++ assert(header != NULL);
++ assert(eventname != NULL);
++ assert(eventid != NULL);
++
++ gettimeofday(&tv, NULL);
++
++ /***************************************************************************/
++ /* Initialize the header. Get a new event sequence number. Note that if */
++ /* any memory allocation fails in here we will fail gracefully because */
++ /* everything downstream can cope with NULLs. */
++ /***************************************************************************/
++ header->event_domain = EVEL_DOMAIN_HEARTBEAT;
++ header->event_id = strdup(eventid);
++ header->event_name = strdup(eventname);
++ header->last_epoch_microsec = tv.tv_usec + 1000000 * tv.tv_sec;
++ header->priority = EVEL_PRIORITY_NORMAL;
++ header->reporting_entity_name = strdup(openstack_vm_name());
++ /* header->source_name = strdup(openstack_vm_name()); */
++ /* vCPE quck hack */
++ if (strlen(eventsrcname)) {
++ header->source_name = strdup(eventsrcname);
++ } else {
++ header->source_name = strdup(openstack_vnf_id());
++ }
++ header->sequence = event_sequence;
++ header->start_epoch_microsec = header->last_epoch_microsec;
++ header->major_version = EVEL_HEADER_MAJOR_VERSION;
++ header->minor_version = EVEL_HEADER_MINOR_VERSION;
++ event_sequence++;
++
++ /***************************************************************************/
++ /* Optional parameters. */
++ /***************************************************************************/
++ evel_init_option_string(&header->event_type);
++ evel_init_option_string(&header->nfcnaming_code);
++ evel_init_option_string(&header->nfnaming_code);
++ evel_force_option_string(&header->reporting_entity_id, openstack_vm_uuid());
++ /* evel_force_option_string(&header->source_id, openstack_vm_uuid()); */
+ evel_force_option_string(&header->source_id, openstack_vnf_id()); /* vCPE quick hack */
evel_init_option_intheader(&header->internal_field);
EVEL_EXIT();
+diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c
+index b73eb97..2446e02 100644
+--- a/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c
++++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/evel_scaling_measurement.c
+@@ -40,13 +40,14 @@
+ * @param measurement_interval
+ * @param event_name Unique Event Name confirming Domain AsdcModel Description
+ * @param event_id A universal identifier of the event for: troubleshooting correlation, analysis, etc
++ * @param event_source_name Optional override of the source name
+ *
+ * @returns pointer to the newly manufactured ::EVENT_MEASUREMENT. If the
+ * event is not used (i.e. posted) it must be released using
+ * ::evel_free_event.
+ * @retval NULL Failed to create the event.
+ *****************************************************************************/
+-EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval, const char* ev_name, const char *ev_id)
++EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval, const char* ev_name, const char *ev_id, const char *ev_source_name)
+ {
+ EVENT_MEASUREMENT * measurement = NULL;
+
+@@ -72,7 +73,7 @@ EVENT_MEASUREMENT * evel_new_measurement(double measurement_interval, const char
+ /***************************************************************************/
+ /* Initialize the header & the measurement fields. */
+ /***************************************************************************/
+- evel_init_header_nameid(&measurement->header,ev_name,ev_id);
++ evel_init_header_source_name(&measurement->header,ev_name,ev_id,ev_source_name);
+ measurement->header.event_domain = EVEL_DOMAIN_MEASUREMENT;
+ measurement->measurement_interval = measurement_interval;
+ dlist_initialize(&measurement->additional_info);
diff --git a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
-index 11fef1b..d82f282 100644
+index 62ea6b5..6c322db 100644
--- a/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
+++ b/vnfs/VES5.0/evel/evel-library/code/evel_library/metadata.c
-@@ -59,6 +59,11 @@ static char vm_uuid[MAX_METADATA_STRING+1] = {0};
+@@ -60,6 +60,11 @@ static char vm_uuid[MAX_METADATA_STRING+1] = {0};
static char vm_name[MAX_METADATA_STRING+1] = {0};
/**************************************************************************//**
* How many metadata elements we allow for in the retrieved JSON.
*****************************************************************************/
static const int MAX_METADATA_TOKENS = 128;
-@@ -289,6 +294,19 @@ EVEL_ERR_CODES openstack_metadata(int verbosity)
+@@ -290,6 +295,19 @@ EVEL_ERR_CODES openstack_metadata(int verbosity)
{
EVEL_DEBUG("VM Name: %s", vm_name);
}
}
exit_label:
-@@ -318,6 +336,9 @@ void openstack_metadata_initialize()
+@@ -319,6 +337,9 @@ void openstack_metadata_initialize()
strncpy(vm_name,
"Dummy VM name - No Metadata available",
MAX_METADATA_STRING);
}
/**************************************************************************//**
-@@ -590,3 +611,13 @@ const char *openstack_vm_uuid()
+@@ -591,3 +612,13 @@ const char *openstack_vm_uuid()
{
return vm_uuid;
}
#!/bin/bash
+#Disable all the running streams
vppctl packet-gen disable
+
+#Initial configuration: run only two streams
vppctl packet-gen enable-stream dns1
vppctl packet-gen enable-stream dns2
-sleep 100
-vppctl packet-gen enable-stream dns3
-vppctl packet-gen enable-stream dns4
-vppctl packet-gen enable-stream dns5
+
+sleep 180
+
+#Rehash port numbers and re-run five streams every minute
+while true; do
+ vppctl packet-gen disable
+ vppctl pac del dns1
+ vppctl pac del dns2
+ vppctl pac del dns3
+ vppctl pac del dns4
+ vppctl pac del dns5
+
+ #Update destination (vLB) IP
+ VLB_IPADDR=$(cat /opt/config/vlb_ipaddr.txt)
+ IPADDR1=$(cat /opt/config/local_private_ipaddr.txt)
+ sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$VLB_IPADDR"/" /opt/dns_streams/stream_dns1
+ sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$VLB_IPADDR"/" /opt/dns_streams/stream_dns2
+ sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$VLB_IPADDR"/" /opt/dns_streams/stream_dns3
+ sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$VLB_IPADDR"/" /opt/dns_streams/stream_dns4
+ sed -i -e "0,/UDP/ s/UDP:.*/UDP: "$IPADDR1" -> "$VLB_IPADDR"/" /opt/dns_streams/stream_dns5
+
+ #Update source ports (make them random)
+ sed -i -e "s/.*-> 53.*/ UDP: $RANDOM -> 53/" /opt/dns_streams/stream_dns1
+ sed -i -e "s/.*-> 53.*/ UDP: $RANDOM -> 53/" /opt/dns_streams/stream_dns2
+ sed -i -e "s/.*-> 53.*/ UDP: $RANDOM -> 53/" /opt/dns_streams/stream_dns3
+ sed -i -e "s/.*-> 53.*/ UDP: $RANDOM -> 53/" /opt/dns_streams/stream_dns4
+ sed -i -e "s/.*-> 53.*/ UDP: $RANDOM -> 53/" /opt/dns_streams/stream_dns5
+
+ vppctl exec /opt/dns_streams/stream_dns1
+ vppctl exec /opt/dns_streams/stream_dns2
+ vppctl exec /opt/dns_streams/stream_dns3
+ vppctl exec /opt/dns_streams/stream_dns4
+ vppctl exec /opt/dns_streams/stream_dns5
+
+ #Resume stream execution
+ vppctl packet-gen enable-stream dns1
+ vppctl packet-gen enable-stream dns2
+ vppctl packet-gen enable-stream dns3
+ vppctl packet-gen enable-stream dns4
+ vppctl packet-gen enable-stream dns5
+
+ sleep 60
+done
\ No newline at end of file
wget $REPO_URL_BLOB/org.onap.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/v_packetgen_init.sh
wget $REPO_URL_BLOB/org.onap.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vpacketgen.sh
wget $REPO_URL_BLOB/org.onap.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/run_streams_dns.sh
-wget $REPO_URL_BLOB/org.onap.demo/vnfs/vlb/$INSTALL_SCRIPT_VERSION/vdnspacketgen_change_streams_ports.sh
wget $REPO_URL_ARTIFACTS/org/onap/demo/vnf/vlb/vlb_dns_streams/$DEMO_ARTIFACTS_VERSION/vlb_dns_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
tar -zmxvf vlb_dns_streams-$DEMO_ARTIFACTS_VERSION-demo.tar.gz
chmod +x v_packetgen_init.sh
chmod +x vpacketgen.sh
chmod +x run_streams_dns.sh
-chmod +x vdnspacketgen_change_streams_ports.sh
# Install VPP
export UBUNTU="xenial"
reboot
fi
-# Install a cron job that restart streams every minute. This allows to map streams to different vDNSs when we scale out the VNF
-echo "* * * * * /opt/vdnspacketgen_change_streams_ports.sh" | crontab
-
./v_packetgen_init.sh