"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"settings": {
- "fileUris": [ "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=Azure_ARM_Template/scripts/azure-rancher-server.sh;hb=refs/heads/master" ],
+ "fileUris": [ "https://git.onap.org/integration/plain/deployment/Azure_ARM_Template/scripts/azure-rancher-server.sh" ],
"commandToExecute": "[concat('./' , parameters('masterScriptName'),' ',reference(variables('publicIPAddressName')).dnsSettings.fqdn,' ',parameters('privateIPAddress'),' ',parameters('numberOfVms'))]"
}
}
"typeHandlerVersion": "2.0",
"autoUpgradeMinorVersion": true,
"settings": {
- "fileUris": [ "https://gerrit.onap.org/r/gitweb?p=integration.git;a=blob_plain;f=Azure_ARM_Template/scripts/azure-k8s-node.sh;hb=refs/heads/master" ],
+ "fileUris": [ "https://git.onap.org/integration/plain/deployment/Azure_ARM_Template/scripts/azure-k8s-node.sh" ],
"commandToExecute": "[concat('./' , parameters('nodeScriptName'),' ',concat(parameters('privateIPAddress'),'0'))]"
}
}
set -x
DOCKER_VERSION=17.03
-RANCHER_VERSION=1.6.14
+RANCHER_VERSION=1.6.18
KUBECTL_VERSION=1.8.10
HELM_VERSION=2.9.1
robot:
openStackKeyStoneUrl: "http://192.168.1.11:5000"
openStackPublicNetId: "__public_net_id__"
- openStackPassword: "${OS_PASSWORD}"
+ openStackEncryptedPasswordHere: "${OS_PASSWORD_ENCRYPTED}"
openStackTenantId: "${OS_PROJECT_ID}"
openStackUserName: "${OS_USERNAME}"
ubuntu14Image: "trusty"
robot:
openStackKeyStoneUrl: "http://10.145.122.118:5000"
openStackPublicNetId: "__public_net_id__"
- openStackPassword: "${OS_PASSWORD}"
+ openStackEncryptedPasswordHere: "${OS_PASSWORD_ENCRYPTED}"
openStackTenantId: "${OS_PROJECT_ID}"
openStackUserName: "${OS_USERNAME}"
ubuntu14Image: "trusty"
robot:
openStackKeyStoneUrl: "https://bdc1tlab01.research.att.com:5000"
openStackPublicNetId: "__oam_network_id__" # NOTE: for TLAB, openStackPublicNetId needs to be oam_network_id instead of public_net_id
- openStackPassword: "${OS_PASSWORD}"
+ openStackEncryptedPasswordHere: "${OS_PASSWORD_ENCRYPTED}"
openStackTenantId: "${OS_PROJECT_ID}"
openStackUserName: "${OS_USERNAME}"
ubuntu14Image: "Ubuntu 14.04 LTS Generic"
robot:
openStackKeyStoneUrl: "http://10.12.25.2:5000"
openStackPublicNetId: "__public_net_id__"
- openStackPassword: "${OS_PASSWORD}"
+ openStackEncryptedPasswordHere: "${OS_PASSWORD_ENCRYPTED}"
openStackTenantId: "${OS_PROJECT_ID}"
openStackUserName: "${OS_USERNAME}"
ubuntu14Image: "ubuntu-14-04-cloud-amd64"
robot:
openStackKeyStoneUrl: "http://10.12.25.2:5000"
openStackPublicNetId: "__public_net_id__"
- openStackPassword: "${OS_PASSWORD}"
+ openStackEncryptedPasswordHere: "${OS_PASSWORD_ENCRYPTED}"
openStackTenantId: "${OS_PROJECT_ID}"
openStackUserName: "${OS_USERNAME}"
ubuntu14Image: "ubuntu-14-04-cloud-amd64"
get_attr: [k8s_3_floating_ip, floating_ip_address],
get_attr: [k8s_4_floating_ip, floating_ip_address],
get_attr: [k8s_5_floating_ip, floating_ip_address],
+ get_attr: [k8s_6_floating_ip, floating_ip_address],
]
__k8s_private_ips__: [
get_attr: [k8s_1_floating_ip, fixed_ip_address],
get_attr: [k8s_3_floating_ip, fixed_ip_address],
get_attr: [k8s_4_floating_ip, fixed_ip_address],
get_attr: [k8s_5_floating_ip, fixed_ip_address],
+ get_attr: [k8s_6_floating_ip, fixed_ip_address],
]
k8s_1_private_port:
type: OS::Neutron::Port
template:
get_file: k8s_vm_entrypoint.sh
+ k8s_6_private_port:
+ type: OS::Neutron::Port
+ properties:
+ network: { get_resource: oam_network }
+ fixed_ips: [{"subnet": { get_resource: oam_subnet }}]
+ security_groups:
+ - { get_resource: onap_sg }
+
+ k8s_6_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: k8s_6_private_port }
+
+ k8s_6_vm:
+ type: OS::Nova::Server
+ properties:
+ name:
+ list_join: ['-', [ { get_param: 'OS::stack_name' }, 'k8s_6']]
+ image: { get_param: ubuntu_1604_image }
+ flavor: { get_param: k8s_vm_flavor }
+ key_name: { get_param: key_name }
+ networks:
+ - port: { get_resource: k8s_6_private_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ params:
+ __docker_proxy__: { get_param: docker_proxy }
+ __apt_proxy__: { get_param: apt_proxy }
+ __docker_version__: { get_param: docker_version }
+ __rancher_ip_addr__: { get_attr: [rancher_floating_ip, floating_ip_address] }
+ __rancher_private_ip_addr__: { get_attr: [rancher_floating_ip, fixed_ip_address] }
+ template:
+ get_file: k8s_vm_entrypoint.sh
+
outputs:
rancher_vm_ip:
description: The IP address of the rancher instance
description: The IP address of the k8s_5 instance
value: { get_attr: [k8s_5_floating_ip, floating_ip_address] }
+ k8s_6_vm_ip:
+ description: The IP address of the k8s_6 instance
+ value: { get_attr: [k8s_6_floating_ip, floating_ip_address] }
+
helm repo add local http://127.0.0.1:8879
helm repo list
make all
+rsync -avt ~/oom/kubernetes/helm/plugins ~/.helm/
helm search -l | grep local
-helm install local/onap -n dev --namespace onap -f ~/integration-override.yaml
+helm deploy dev local/onap -f ~/integration-override.yaml --namespace onap | tee ~/helm-deploy.log
+helm list
# Enable auto-completion for kubectl
echo "source <(kubectl completion bash)" >> ~/.bashrc
#!/usr/bin/env bash
###############################################################################
-# Copyright 2017 Huawei Technologies Co., Ltd.
+# Copyright 2018 AT&T
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $SCRIPTS
-response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46YWRtaW4=" -X POST -H "X-FromAppId: csit-appc" -H "X-TransactionId: csit-appc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck )
+response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-appc" -H "X-TransactionId: csit-appc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck )
if [ "$response" == "200" ]; then
echo "APPC health check passed."
# Place the scripts in run order:
source ${SCRIPTS}/common_functions.sh
-#get current host IP addres
-HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
+# Clone DMaaP Data Router repo
+mkdir -p $WORKSPACE/archives/dmaapdr
+cd $WORKSPACE/archives/dmaapdr
+
+git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master
+cd datarouter
+git pull
+cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/
+
+# start DMaaP DR containers with docker compose and configuration from docker-compose.yml
+docker login -u docker -p docker nexus3.onap.org:10001
+docker-compose up -d
+
+# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
+for i in {1..50}; do
+ if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \
+ [ $(docker inspect --format '{{ .State.Running }}' mariadb) ]
+ then
+ echo "DR Service Running"
+ break
+ else
+ echo sleep $i
+ sleep $i
+ fi
+done
+
+DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
+DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node)
+DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov)
+#Add the DR_NODE_IP to /etc/hosts
+sudo echo "${DR_NODE_IP} dmaap-dr-node" >> /etc/hosts
+sudo echo "${DR_PROV_IP} dmaap-dr-prov" >> /etc/hosts
+
+echo DR_PROV_IP=${DR_PROV_IP}
+echo DR_NODE_IP=${DR_NODE_IP}
+echo DR_GATEWAY_IP=${DR_GATEWAY_IP}
+
+docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$DR_GATEWAY_IP"
+docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$DR_GATEWAY_IP"
+
+# Start DCAE VES Collector
+cd $WORKSPACE/
+HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}')
VESC_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1
echo VESC_IMAGE=${VESC_IMAGE}
-# Start DCAE VES Collector
-docker run -d -p 8080:8080/tcp -p 8443:8443/tcp -P --name vesc -e DMAAPHOST=${HOST_IP} ${VESC_IMAGE}
+docker run -d --name vesc -e DMAAPHOST=${HOST_IP} ${VESC_IMAGE}
+VESC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vesc)
# Clone DMaaP Message Router repo
mkdir -p $WORKSPACE/archives/dmaapmr
cd $WORKSPACE/archives/dmaapmr
-#unset http_proxy https_proxy
git clone --depth 1 http://gerrit.onap.org/r/dmaap/messagerouter/messageservice -b master
git pull
cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose
cp $WORKSPACE/archives/dmaapmr/messageservice/bundleconfig-local/etc/appprops/MsgRtrApi.properties /var/tmp/
-# Update kafkfa and zookeeper properties in MsgRtrApi.propeties which will be copied to DMaaP Container
-sed -i -e 's#nexus3.onap.org:10001/onap/dmaap/kafka01101:0.0.1#wurstmeister/kafka:1.1.0#' $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose/docker-compose.yml
-
# start DMaaP MR containers with docker compose and configuration from docker-compose.yml
docker login -u docker -p docker nexus3.onap.org:10001
docker-compose up -d
+ZOOKEEPER=$(docker ps -a -q --filter="name=zookeeper_1")
+KAFKA=$(docker ps -a -q --filter="name=kafka_1")
+DMAAP=$(docker ps -a -q --filter="name=dmaap_1")
+
# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper
for i in {1..50}; do
-if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_kafka_1) ] && \
-[ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \
-[ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ]
+if [ $(docker inspect --format '{{ .State.Running }}' $KAFKA) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' $ZOOKEEPER) ] && \
+[ $(docker inspect --format '{{ .State.Running }}' $DMAAP) ]
then
echo "DMaaP Service Running"
break
done
# Get IP address of DMAAP, KAFKA, Zookeeper
-DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_dmaap_1)
-KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_kafka_1)
-ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_zookeeper_1)
+DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP)
+KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA)
+ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER)
echo DMAAP_MR_IP=${DMAAP_MR_IP}
echo KAFKA_IP=${KAFKA_IP}
echo ZOOKEEPER_IP=${ZOOKEEPER_IP}
# Shutdown DMAAP Container
-docker kill dockercompose_dmaap_1
+docker kill $DMAAP
# Initial docker-compose up and down is for populating kafka and zookeeper IPs in /var/tmp/MsgRtrApi.properites
sed -i -e '/config.zk.servers=/ s/=.*/='$ZOOKEEPER_IP'/' /var/tmp/MsgRtrApi.properties
docker-compose up -d
sleep 5
-# Get IP address of DMAAP, KAFKA, Zookeeper and VESC
-DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_dmaap_1)
-KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_kafka_1)
-ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_zookeeper_1)
-
-VESC_IP=`get-instance-ip.sh vesc`
export VESC_IP=${VESC_IP}
export HOST_IP=${HOST_IP}
export DMAAP_MR_IP=${DMAAP_MR_IP}
-
-ROBOT_VARIABLES="-v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP}"
+#Pass any variables required by Robot test suites in ROBOT_VARIABLES
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP}"
pip install jsonschema uuid
# Wait container ready
-sleep 2
+sleep 2
\ No newline at end of file
#!/bin/bash
echo "Starting teardown script"
kill-instance.sh vesc
-kill-instance.sh dockercompose_dmaap_1
-kill-instance.sh dockercompose_kafka_1
-kill-instance.sh dockercompose_zookeeper_1
-
-
+cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose
+docker-compose down -v
+cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/
+docker-compose down -v
+sudo sed -i '/dmaap/d' /etc/hosts
\ No newline at end of file
${MESSAGE} {"ping": "ok"}
#global variables
-${generatedDomId}
+
*** Test Cases ***
SMS Check SMS API Docker Container
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
- ${response_json} json.loads ${resp.content}
- ${generatedDomId}= Convert To String ${response_json['uuid']}
- Set Global Variable ${generatedDomId}
Should Be Equal As Integers ${resp.status_code} 201
SMS CreateSecret
Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT}
${data} Get Binary File ${CURDIR}${/}data${/}create_secret.json
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
- ${resp}= Post Request SMS /v1/sms/domain/${generatedDomId}/secret data=${data} headers=${headers}
+ ${resp}= Post Request SMS /v1/sms/domain/curltestdomain/secret data=${data} headers=${headers}
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
[Documentation] Lists all Secret Names within Domain
Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT}
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
- ${resp}= Get Request SMS /v1/sms/domain/${generatedDomId}/secret headers=${headers}
+ ${resp}= Get Request SMS /v1/sms/domain/curltestdomain/secret headers=${headers}
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
[Documentation] Gets a single Secret with Values from Domain
Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT}
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
- ${resp}= Get Request SMS /v1/sms/domain/${generatedDomId}/secret/curltestsecret1 headers=${headers}
+ ${resp}= Get Request SMS /v1/sms/domain/curltestdomain/secret/curltestsecret1 headers=${headers}
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
[Documentation] Deletes a Secret referenced by Name from Domain
Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT}
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
- ${resp}= Delete Request SMS /v1/sms/domain/${generatedDomId}/secret/curltestsecret1 headers=${headers}
+ ${resp}= Delete Request SMS /v1/sms/domain/curltestdomain/secret/curltestsecret1 headers=${headers}
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
[Documentation] Deletes a Domain referenced by Name
Create Session SMS ${SMS_HOSTNAME}:${SMS_PORT}
&{headers}= Create Dictionary Content-Type=application/json Accept=application/json
- ${resp}= Delete Request SMS /v1/sms/domain/${generatedDomId} headers=${headers}
+ ${resp}= Delete Request SMS /v1/sms/domain/curltestdomain headers=${headers}
Log To Console *********************
Log To Console response = ${resp}
Log To Console body = ${resp.text}
| | Click Link | MY VNFs
# Verify button element is ready before clicking it.
| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
-| | Click Button | Create New VNF Type or VNFC Type
-| | Page Should Contain | Enter VNF type and VNFC to proceed
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+#| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain | Enter VNF Type
| | Page Should Contain Element | id=vnfType
# Proceed without entering any new information
-| | Click Button | Proceed anyway
+#| | Click Button | Proceed anyway
+| | Click Button | Proceed To Upload
| | Page Should Contain Element | id=cmbAction
| | Click Button | Upload Reference File
| | Choose File | id=inputFile | ${CURDIR}/data/reference_AllAction_HealthCheckAnsible_0.0.1V.json
| | Click Link | MY VNFs
# Verify button element is ready before clicking it.
| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
-| | Click Button | Create New VNF Type or VNFC Type
-| | Page Should Contain | Enter VNF type and VNFC to proceed
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
+#| | Page Should Contain | Enter VNF type and VNFC to proceed
+| | Page Should Contain | Enter VNF Type
| | Page Should Contain Element | id=vnfType
# Create a date to use in VNF Type to make it unique
| | ${THEDATE} | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
| | Click Link | MY VNFs
# Verify button element is ready before clicking it.
| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
-| | Click Button | Create New VNF Type or VNFC Type
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
# Create a date to use in VNF Type to make it unique
| | ${THEDATE} | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
| | Click Link | MY VNFs
# Verify button element is ready before clicking it.
| | Wait Until Page Contains Element | xpath=(//*[@class='mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--primary']) | ${LONGTIME}
-| | Click Button | Create New VNF Type or VNFC Type
+#| | Click Button | Create New VNF Type or VNFC Type
+| | Click Button | Create New VNF Type
| | Wait Until Page Contains Element | id=vnfType | ${LONGTIME}
# Create a date to use in VNF Type to make it unique
| | ${THEDATE} | Get Current Date | result_format=%m%d%H%M%S | exclude_millis=True
| | Input Text | id=vnfType | csit${THEDATE}
# Check the box indicating VNFC templates
| | Select Checkbox | id=vnfcRequired
-| | Input Text | id=vnfcType | csitVNFC
+#| | Input Text | id=vnfcType | csitVNFC
| | Click Button | Next
| | Wait Until Page Contains Element | id=cmbAction | ${LONGTIME}
# Populate the action and protocol
vnf-parameter-list:
- name: vnf_name
type: null
- description: dawnDescript
+ description: CSIT
required: null
default: null
source: Manual
"action-level": "vnf",
"scope": {
"vnf-type": "csit",
- "vnfc-type-list": [],
+ "vnfc-type-list": ["testvnftype"],
"vnfc-type": ""
},
"template": "Y",
"port-number": "",
"artifact-list": [
{
- "artifact-name": "template_HealthCheck_dawnMay17_0.0.1V.json",
+ "artifact-name": "template_HealthCheck_csit_0.0.1V.json",
"artifact-type": "config_template"
},
{
- "artifact-name": "pd_HealthCheck_dawnMay17_0.0.1V.yaml",
+ "artifact-name": "pd_HealthCheck_csit_0.0.1V.yaml",
"artifact-type": "parameter_definitions"
},
{
- "artifact-name": "param_HealthCheck_dawnMay17_0.0.1V.json",
+ "artifact-name": "param_HealthCheck_csit_0.0.1V.json",
"artifact-type": "param_values"
}
],
"action-level": "vnf",
"scope": {
"vnf-type": "csit",
- "vnfc-type-list": [],
+ "vnfc-type-list": ["testvnftype"],
"vnfc-type": ""
},
"artifact-list": [
{
- "artifact-name": "reference_AllAction_dawnMay17_0.0.1V.json",
+ "artifact-name": "reference_AllAction_csit_0.0.1V.json",
"artifact-type": "reference_template"
}
]
"action-level": "vnf",
"scope": {
"vnf-type": "vUSP - Revenue Assurance",
+ "vnf-type-list": "testvnftype",
"vnfc-type": ""
},
"template": "Y",
"scope": {
"vnf-type": "vUSP - Revenue Assurance",
"vnfc-type": "",
- "vnfc-type-list": []
+ "vnfc-type-list": ["testvnftype"]
},
"template": "Y",
"vm": [],
"scope": {
"vnf-type": "vUSP - Revenue Assurance",
"vnfc-type": "",
- "vnfc-type-list": []
+ "vnfc-type-list": ["testvnftype"]
},
"template": "Y",
"vm": [],
"scope": {
"vnf-type": "vUSP - Revenue Assurance",
"vnfc-type": "",
- "vnfc-type-list": []
+ "vnfc-type-list": ["testvnftype"]
},
"artifact-list": [
{
]
}
]
-}
\ No newline at end of file
+}
APPC LCM API HEALTHCHECK
[Documentation] APPC LCM API HEALTHCHECK
Start Virtual Display 1920 1080
- Open Browser http://admin:admin@localhost:8282/apidoc/explorer/index.html chrome
- Maximize Browser Window
+ Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@localhost:8282/apidoc/explorer/index.html chrome
+# Maximize Browser Window
# Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img
Reload Page
APPC LCM API VM RESTART
[Documentation] APPC LCM API VM RESTART
Start Virtual Display 1920 1080
- Open Browser http://admin:admin@localhost:8282/apidoc/explorer/index.html chrome
- Maximize Browser Window
+ Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@localhost:8282/apidoc/explorer/index.html chrome
+# Maximize Browser Window
# Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img
Reload Page
APPC LCM API VNF RESTART
[Documentation] APPC LCM API VNF RESTART
Start Virtual Display 1920 1080
- Open Browser http://admin:admin@localhost:8282/apidoc/explorer/index.html chrome
- Maximize Browser Window
+ Open Browser http://admin:Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U@localhost:8282/apidoc/explorer/index.html chrome
+# Maximize Browser Window
# Click Element xpath=.//p[contains(text(),'If you have reason to expect the website is safe, select the I Accept the Risk button to continue.')]//following::img
Reload Page
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 5000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "FIXED_PAYLOAD",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "FIXED_PAYLOAD",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 50000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "INVALID_GPB_DATA",
"messagesAmount": 100
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 50000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "INVALID_WIRE_FRAME",
"messagesAmount": 100
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "FIXED_PAYLOAD",
"messagesAmount": 15000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "FIXED_PAYLOAD",
"messagesAmount": 5000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "TOO_BIG_PAYLOAD",
"messagesAmount": 100
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 50000
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 100
{
"commonEventHeader": {
"version": "sample-version",
- "domain": "HVRANMEAS",
+ "domain": "HVMEAS",
"sequence": 1,
"priority": 1,
"eventId": "sample-event-id",
"reportingEntityId": "sample-reporting-entity-id",
"reportingEntityName": "sample-reporting-entity-name",
"sourceId": "sample-source-id",
- "sourceName": "sample-source-name"
+ "sourceName": "sample-source-name",
+ "vesEventListenerVersion": "another-version"
},
"messageType": "VALID",
"messagesAmount": 25000
"dmaap.kafkaBootstrapServers": "kafka:9092",
"collector.routing": [
{
- "fromDomain": 11,
+ "fromDomain": "HVMEAS",
"toTopic": "test-hv-ran-meas"
}
]
json_to_python = json.loads(json_file)
ipv4 = json_to_python["event"]["pnfRegistrationFields"]["oamV4IpAddress"]
ipv6 = json_to_python["event"]["pnfRegistrationFields"]["oamV6IpAddress"]
- header = json_to_python["event"]["commonEventHeader"]["sourceName"]
- str_json = '{"sourceName":"' + header + '","ipaddress-v4-oam":"' + ipv4 + '","ipaddress-v6-oam":"' + ipv6 + '"}'
+ correlationId = json_to_python["event"]["commonEventHeader"]["sourceName"]
+ str_json = '{"correlationId":"' + correlationId + '","ipaddress-v4-oam":"' + ipv4 + '","ipaddress-v6-oam":"' + ipv6 + '"}'
python_to_json = json.dumps(str_json)
return python_to_json.replace("\\", "")[1:-1]
@staticmethod
def create_pnf_name(json_file):
json_to_python = json.loads(json_file)
- header = json_to_python["event"]["commonEventHeader"]["sourceName"]
- return header
+ correlationId = json_to_python["event"]["commonEventHeader"]["sourceName"]
+ return correlationId
@staticmethod
def stop_aai():
-{
+{
"name":"vCPE-with-HPA",
- "template":{
+ "template":{
"homing_template_version":"2017-10-10",
- "parameters":{
+ "parameters":{
"service_name":"Residential vCPE",
"service_id":"vcpe_service_id",
"customer_lat":45.395968,
"REQUIRED_DISK":100,
"pnf_id":"some_pnf_id"
},
- "locations":{
- "customer_loc":{
- "latitude":{
+ "locations":{
+ "customer_loc":{
+ "latitude":{
"get_param":"customer_lat"
},
- "longitude":{
+ "longitude":{
"get_param":"customer_long"
}
}
},
"demands":{
- "vG":[
- {
+ "vG":[
+ {
"inventory_provider":"aai",
"inventory_type":"cloud"
}
]
},
"constraints":{
- "constraint_vg_customer":{
+ "constraint_vg_customer":{
"type":"distance_to_location",
- "demands":[
+ "demands":[
"vG"
],
- "properties":{
+ "properties":{
"distance":"< 100 km",
"location":"customer_loc"
}
},
- "hpa_constraint":{
+ "hpa_constraint":{
"type":"hpa",
- "demands":[
+ "demands":[
"vG"
],
- "properties":{
- "evaluate":[
- {
- "flavorLabel":"flavor_label_1",
- "flavorProperties":[
- {
+ "properties":{
+ "evaluate":[
+ {
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type": "flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties":[
+ {
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives": [],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numVirtualCpu",
"hpa-attribute-value":"4",
"operator":">="
},
- {
+ {
"hpa-attribute-key":"virtualMemSize",
"hpa-attribute-value":"4",
"operator":">=",
}
]
},
- {
+ {
"hpa-feature":"numa",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives": [],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numaNodes",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-0",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-1",
"hpa-attribute-value":"4",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaMem-0",
"hpa-attribute-value":"2",
"operator":"=",
"unit":"GB"
},
- {
+ {
"hpa-attribute-key":"numaMem-1",
"hpa-attribute-value":"4",
"operator":"=",
}
]
},
- {
+ {
"hpa-feature":"cpuPinning",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives": [],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"logicalCpuThreadPinningPolicy",
"hpa-attribute-value":"prefer",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"logicalCpuPinningPolicy",
"hpa-attribute-value":"dedicated",
"operator":"="
}
]
},
- {
- "flavorLabel":"flavor_label_2",
- "flavorProperties":[
- {
+ {
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties":[
+ {
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numVirtualCpu",
"hpa-attribute-value":"8",
"operator":">="
},
- {
+ {
"hpa-attribute-key":"virtualMemSize",
"hpa-attribute-value":"16",
"operator":">=",
}
]
},
- {
+ {
"hpa-feature":"numa",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numaNodes",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-0",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-1",
"hpa-attribute-value":"4",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaMem-0",
"hpa-attribute-value":"2",
"operator":"=",
"unit":"GB"
},
- {
+ {
"hpa-attribute-key":"numaMem-1",
"hpa-attribute-value":"4",
"operator":"=",
}
]
},
- {
+ {
"hpa-feature":"ovsDpdk",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score": "5",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"dataProcessingAccelerationLibrary",
"hpa-attribute-value":"v18.02",
"operator":"="
}
}
},
- "optimization":{
- "minimize":{
- "sum":[
- {
- "distance_between":[
+ "optimization":{
+ "minimize":{
+ "sum":[
+ {
+ "distance_between":[
"customer_loc",
"vG"
]
},
- {
- "distance_between":[
+ {
+ "distance_between":[
"customer_loc",
"vG"
]
"properties":{
"evaluate":[
{
- "flavorLabel":"flavor_label_1",
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"numVirtualCpu",
"hpa-version":"v1",
"architecture":"generic",
"mandatory":"True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"numaNodes",
]
},
{
- "flavorLabel":"flavor_label_2",
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"numVirtualCpu",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"dataProcessingAccelerationLibrary",
-{
+{
"name":"vCPE-HPA-Requirement-Optional",
- "template":{
+ "template":{
"homing_template_version":"2017-10-10",
- "parameters":{
+ "parameters":{
"service_name":"Residential vCPE",
"service_id":"vcpe_service_id",
"customer_lat":45.395968,
"REQUIRED_DISK":100,
"pnf_id":"some_pnf_id"
},
- "locations":{
- "customer_loc":{
- "latitude":{
+ "locations":{
+ "customer_loc":{
+ "latitude":{
"get_param":"customer_lat"
},
- "longitude":{
+ "longitude":{
"get_param":"customer_long"
}
}
},
- "demands":{
- "vG":[
- {
+ "demands":{
+ "vG":[
+ {
"inventory_provider":"aai",
"inventory_type":"cloud"
}
]
},
- "constraints":{
- "constraint_vg_customer":{
+ "constraints":{
+ "constraint_vg_customer":{
"type":"distance_to_location",
- "demands":[
+ "demands":[
"vG"
],
- "properties":{
+ "properties":{
"distance":"< 100 km",
"location":"customer_loc"
}
},
- "hpa_constraint":{
+ "hpa_constraint":{
"type":"hpa",
- "demands":[
+ "demands":[
"vG"
],
- "properties":{
- "evaluate":[
- {
- "flavorLabel":"flavor_label_1",
- "flavorProperties":[
- {
+ "properties":{
+ "evaluate":[
+ {
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties":[
+ {
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numVirtualCpu",
"hpa-attribute-value":"4",
"operator":">="
},
- {
+ {
"hpa-attribute-key":"virtualMemSize",
"hpa-attribute-value":"8",
"operator":">=",
}
]
},
- {
+ {
"hpa-feature":"instructionSetExtensions",
"hpa-version":"v1",
"architecture":"Intel64",
"mandatory": "True",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"instructionSetExtensions",
"hpa-attribute-value":["aes", "sse", "avx", "smt"],
"operator":"ALL",
}
]
},
- {
+ {
"hpa-feature":"numa",
"hpa-version":"v1",
"architecture":"generic",
"mandatory":"False",
"score":"3",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numaNodes",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-0",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-1",
"hpa-attribute-value":"4",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaMem-0",
"hpa-attribute-value":"2",
"operator":"=",
"unit":"GB"
},
- {
+ {
"hpa-attribute-key":"numaMem-1",
"hpa-attribute-value":"4",
"operator":"=",
}
]
},
- {
- "flavorLabel":"flavor_label_2",
- "flavorProperties":[
- {
+ {
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties":[
+ {
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numVirtualCpu",
"hpa-attribute-value":"4",
"operator":">="
},
- {
+ {
"hpa-attribute-key":"virtualMemSize",
"hpa-attribute-value":"8",
"operator":">=",
}
]
},
- {
+ {
"hpa-feature":"ovsDpdk",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
"score":"5",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"dataProcessingAccelerationLibrary",
"hpa-attribute-value":"v18.02",
"operator":"="
}
]
},
- {
+ {
"hpa-feature":"numa",
"hpa-version":"v1",
"architecture":"generic",
"mandatory":"False",
"score":"3",
- "hpa-feature-attributes":[
- {
+ "directives":[],
+ "hpa-feature-attributes":[
+ {
"hpa-attribute-key":"numaNodes",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-0",
"hpa-attribute-value":"2",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaCpu-1",
"hpa-attribute-value":"4",
"operator":"="
},
- {
+ {
"hpa-attribute-key":"numaMem-0",
"hpa-attribute-value":"2",
"operator":"=",
"unit":"GB"
},
- {
+ {
"hpa-attribute-key":"numaMem-1",
"hpa-attribute-value":"4",
"operator":"=",
}
}
},
- "optimization":{
- "minimize":{
- "sum":[
- {
- "distance_between":[
+ "optimization":{
+ "minimize":{
+ "sum":[
+ {
+ "distance_between":[
"customer_loc",
"vG"
]
--- /dev/null
+{
+ "name": "vCPE-HPA-Requirement-Optional",
+ "template": {
+ "homing_template_version": "2017-10-10",
+ "parameters": {
+ "service_name": "Residential vCPE",
+ "service_id": "vcpe_service_id",
+ "customer_lat": 45.395968,
+ "customer_long": -71.135344,
+ "REQUIRED_MEM": 4,
+ "REQUIRED_DISK": 100,
+ "pnf_id": "some_pnf_id"
+ },
+ "locations": {
+ "customer_loc": {
+ "latitude": {
+ "get_param": "customer_lat"
+ },
+ "longitude": {
+ "get_param": "customer_long"
+ }
+ }
+ },
+ "demands": {
+ "vG": [
+ {
+ "inventory_provider": "aai",
+ "inventory_type": "cloud"
+ }
+ ]
+ },
+ "constraints": {
+ "constraint_vg_customer": {
+ "type": "distance_to_location",
+ "demands": [
+ "vG"
+ ],
+ "properties": {
+ "distance": "< 100 km",
+ "location": "customer_loc"
+ }
+ },
+ "hpa_constraint": {
+ "type": "hpa",
+ "demands": [
+ "vG"
+ ],
+ "properties": {
+ "evaluate": [
+ {
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties": [
+ {
+ "hpa-feature": "basicCapabilities",
+ "hpa-version": "v1",
+ "architecture": "generic",
+ "mandatory": "True",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "numVirtualCpu",
+ "hpa-attribute-value": "4",
+ "operator": ">="
+ },
+ {
+ "hpa-attribute-key": "virtualMemSize",
+ "hpa-attribute-value": "8",
+ "operator": ">=",
+ "unit": "GB"
+ }
+ ]
+ },
+ {
+ "hpa-feature": "instructionSetExtensions",
+ "hpa-version": "v1",
+ "architecture": "Intel64",
+ "mandatory": "True",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "instructionSetExtensions",
+ "hpa-attribute-value": [
+ "aes",
+ "sse",
+ "avx",
+ "smt"
+ ],
+ "operator": "ALL",
+ "unit": ""
+ }
+ ]
+ },
+ {
+ "hpa-feature": "numa",
+ "hpa-version": "v1",
+ "architecture": "generic",
+ "mandatory": "False",
+ "score": "3",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "numaNodes",
+ "hpa-attribute-value": "2",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaCpu-0",
+ "hpa-attribute-value": "2",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaCpu-1",
+ "hpa-attribute-value": "4",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaMem-0",
+ "hpa-attribute-value": "2",
+ "operator": "=",
+ "unit": "GB"
+ },
+ {
+ "hpa-attribute-key": "numaMem-1",
+ "hpa-attribute-value": "4",
+ "operator": "=",
+ "unit": "GB"
+ }
+ ]
+ }
+ ]
+ },
+ {
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
+ "flavorProperties": [
+ {
+ "hpa-feature": "basicCapabilities",
+ "hpa-version": "v1",
+ "architecture": "generic",
+ "mandatory": "True",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "numVirtualCpu",
+ "hpa-attribute-value": "4",
+ "operator": ">="
+ },
+ {
+ "hpa-attribute-key": "virtualMemSize",
+ "hpa-attribute-value": "8",
+ "operator": ">=",
+ "unit": "GB"
+ }
+ ]
+ },
+ {
+ "hpa-feature": "ovsDpdk",
+ "hpa-version": "v1",
+ "architecture": "generic",
+ "mandatory": "False",
+ "score": "5",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "dataProcessingAccelerationLibrary",
+ "hpa-attribute-value": "v18.02",
+ "operator": "="
+ }
+ ]
+ },
+ {
+ "hpa-feature": "numa",
+ "hpa-version": "v1",
+ "architecture": "generic",
+ "mandatory": "False",
+ "score": "3",
+ "directives":[],
+ "hpa-feature-attributes": [
+ {
+ "hpa-attribute-key": "numaNodes",
+ "hpa-attribute-value": "2",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaCpu-0",
+ "hpa-attribute-value": "2",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaCpu-1",
+ "hpa-attribute-value": "4",
+ "operator": "="
+ },
+ {
+ "hpa-attribute-key": "numaMem-0",
+ "hpa-attribute-value": "2",
+ "operator": "=",
+ "unit": "GB"
+ },
+ {
+ "hpa-attribute-key": "numaMem-1",
+ "hpa-attribute-value": "4",
+ "operator": "=",
+ "unit": "GB"
+ }
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "optimization": {
+ "minimize": {
+ "sum": [
+ {
+ "product": [
+ 100,
+ {
+ "distance_between": [
+ "customer_loc",
+ "vG"
+ ]
+ }
+ ]
+ },
+ {
+ "product": [
+ 200,
+ {
+ "hpa_score": [
+ "vG"
+ ]
+ }
+ ]
+ }
+ ]
+ }
+ }
+ },
+ "timeout": 5,
+ "limit": 3
+}
"properties":{
"evaluate":[
{
- "flavorLabel":"flavor_label_1",
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
+ "directives":[],
"score": "5",
"hpa-feature-attributes":[
{
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
+ "directives":[],
"score": "5",
"hpa-feature-attributes":[
{
]
},
{
- "flavorLabel":"flavor_label_2",
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "False",
+ "directives":[],
"score": "5",
"hpa-feature-attributes":[
{
"properties":{
"evaluate":[
{
- "flavorLabel":"flavor_label_1",
+ "id":"vg_1",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_1",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory": "True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"numVirtualCpu",
]
},
{
- "flavorLabel":"flavor_label_2",
+ "id":"vg_2",
+ "type":"vnfc",
+ "directives":[
+ {
+ "type":"flavor_directives",
+ "attributes":[
+ {
+ "attribute_name":"flavor_label_2",
+ "attribute_value":""
+ }
+ ]
+ }
+ ],
"flavorProperties":[
{
"hpa-feature":"basicCapabilities",
"hpa-version":"v1",
"architecture":"generic",
"mandatory":"True",
+ "directives":[],
"hpa-feature-attributes":[
{
"hpa-attribute-key":"numVirtualCpu",
Should Be Equal As Integers ${resp.status_code} 200
Should Be Equal not found ${resultStatus}
+# HPA Score Multi objective Optimization
+SendPlanWithHpaScoreMultiObj
+ [Documentation] It sends a POST request to conductor
+ Create Session optf-cond ${COND_HOSTNAME}:${COND_PORT}
+ ${data}= Get Binary File ${CURDIR}${/}data${/}plan_with_hpa_score_multi_objective.json
+ &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
+ ${resp}= Post Request optf-cond /v1/plans data=${data} headers=${headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ Log To Console body = ${resp.text}
+ ${response_json} json.loads ${resp.content}
+ ${generatedPlanId}= Convert To String ${response_json['id']}
+ Set Global Variable ${generatedPlanId}
+ Log To Console generatedPlanId = ${generatedPlanId}
+ Should Be Equal As Integers ${resp.status_code} 201
+ Sleep 60s Wait Plan Resolution
+
+GetPlanWithHpaScoreMultiObj
+ [Documentation] It sends a REST GET request to capture recommendations
+ Create Session optf-cond ${COND_HOSTNAME}:${COND_PORT}
+ &{headers}= Create Dictionary Content-Type=application/json Accept=application/json
+ ${resp}= Get Request optf-cond /v1/plans/${generatedPlanId} headers=${headers}
+ Log To Console *********************
+ Log To Console response = ${resp}
+ ${response_json} json.loads ${resp.content}
+ ${resultStatus}= Convert To String ${response_json['plans'][0]['status']}
+ ${vim-id}= Convert To String ${response_json['plans'][0]['recommendations'][0]['vG']['candidate']['vim-id']}
+ # ${hpa_score}= Convert To String ${response_json['plans'][0]['recommendations']['vG']['hpa_score']}
+ Set Global Variable ${resultStatus}
+ Log To Console resultStatus = ${resultStatus}
+ Log To Console body = ${resp.text}
+ Should Be Equal As Integers ${resp.status_code} 200
+ Should Be Equal done ${resultStatus}
+ Should Be Equal HPA-cloud_cloud-region-1 ${vim-id}
+
*** Keywords ***
It contains all parameters for simulation such as duration time,interval between messages and values of the configurable fields of VES message.
If you want to change duration or value of message sending to VES collector you just need to edit this file.
The message that is being sent to VES is built inside the simulator and it's content can be found in log of the simulator.
+Proper config must contain *simulatorParams*, *commonEventHeaderParams* and *pnfRegistrationParams* or notificationParams.
###Running simulator
The recommended way is to checkout PNF Simulator project from ONAP Git repository and use *simulator*.sh script
In order to download *sftp-file.txt* file simply run *sftp -P 2222 -i ssh/ssh_host_rsa_key sftp-user@localhost:sftp/sftp-file.txt*
In order to add a new file (e.g. test.zip), put the file into *sftp* directory and run simulator.
After that again execute sftp command: *sftp -P 2222 -i ssh/ssh_host_rsa_key sftp-user@localhost:sftp/test.zip*
+In order to disable usage of SSH keys and start using password, change in *docker-compose.yml* service *sftp-service* entry *command* from *sftp-user::1001* to *sftp-user:password:1001*
###FTPES support
PNF Simulator allows to serve files via FTPES server. FTPES server has predefined user: onap with password: pano.
restart: on-failure
depends_on:
- sftp-server
+ - ftpes-server
sftp-server:
container_name: sftp-server
command: sftp-user::1001
ftpes-server:
- image: stilliard/pure-ftpd:latest
container_name: ftpes-server
+ image: stilliard/pure-ftpd:latest
ports:
- "2221:21"
# - "30000-30009:30000-30009"
{
"required": [
"simulatorParams",
+ "commonEventHeaderParams",
"pnfRegistrationParams"
]
},
{
"required": [
"simulatorParams",
+ "commonEventHeaderParams",
"notificationParams"
]
}
<parent>
<groupId>org.onap.oparent</groupId>
<artifactId>oparent</artifactId>
- <version>1.1.0</version>
+ <version>1.2.1</version>
</parent>
<groupId>org.onap.pnfsimulator</groupId>
</plugin>
</plugins>
</build>
-</project>
\ No newline at end of file
+</project>
<parent>
<groupId>org.onap.oparent</groupId>
<artifactId>oparent</artifactId>
- <version>0.1.1</version>
+ <version>1.2.1</version>
</parent>
-<!-- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>1.5.7.RELEASE</version>
-</parent>
--->
<properties>
<dockerLocation>${basedir}/target</dockerLocation>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<parent>
<groupId>org.onap.oparent</groupId>
<artifactId>oparent</artifactId>
- <version>1.1.1</version>
+ <version>1.2.1</version>
</parent>
<groupId>org.onap.integration</groupId>
<artifactId>version-manifest</artifactId>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
- <version>3.4</version>
+ <version>3.5.2</version>
<configuration>
<goalPrefix>version-manifest</goalPrefix>
<skipErrorNoDescriptorsFound>true</skipErrorNoDescriptorsFound>
onap/aaf/aaf_service,2.1.2-SNAPSHOT
onap/aaf/sms,2.0.0
onap/aaf/smsquorumclient,2.0.0
+onap/aai-graphadmin,1.0-STAGING-latest
onap/aai-resources,1.3-STAGING-latest
onap/aai-traversal,1.3-STAGING-latest
onap/aai/esr-gui,1.1.0
onap/cli,2.0.2
onap/data-router,1.3-STAGING-latest
onap/dmaap/buscontroller,1.0.17
+onap/dmaap/datarouter-node,latest
+onap/dmaap/datarouter-prov,latest
onap/dmaap/dmaap-mr,1.1.6
onap/dmaap/kafka01101,0.0.1
onap/externalapi/nbi,3.0.0-latest
onap/oom/kube2msb,1.1.0
onap/optf-has,1.2.1
onap/optf-osdf,1.2.1
+onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main,latest
onap/org.onap.dcaegen2.collectors.snmptrap,1.4.0
onap/org.onap.dcaegen2.collectors.ves.vescollector,1.3.1
onap/org.onap.dcaegen2.deployments.bootstrap,1.1.3
-onap/org.onap.dcaegen2.deployments.cm-container,1.4.0
+onap/org.onap.dcaegen2.deployments.cm-container,1.4.1
onap/org.onap.dcaegen2.deployments.healthcheck-container,1.1.0
-onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container,1.4.1
+onap/org.onap.dcaegen2.deployments.k8s-bootstrap-container,1.4.2
onap/org.onap.dcaegen2.deployments.redis-cluster-container,1.0.0
onap/org.onap.dcaegen2.deployments.tca-cdap-container,1.1.0
+onap/org.onap.dcaegen2.deployments.tls-init-container,1.0.0
onap/org.onap.dcaegen2.platform.cdapbroker,4.1.0
onap/org.onap.dcaegen2.platform.configbinding.app-app,2.2.3
-onap/org.onap.dcaegen2.platform.deployment-handler,3.0.0
+onap/org.onap.dcaegen2.platform.deployment-handler,3.0.1
onap/org.onap.dcaegen2.platform.inventory-api,3.0.3
-onap/org.onap.dcaegen2.platform.policy-handler,4.2.0
+onap/org.onap.dcaegen2.platform.policy-handler,4.3.0
onap/org.onap.dcaegen2.platform.servicechange-handler,1.1.5
+onap/org.onap.dcaegen2.services.prh.prh-app-server,1.0.0
onap/policy-apex-pdp,2.0-SNAPSHOT-latest
onap/policy-drools,1.3-SNAPSHOT-latest
onap/policy-pe,1.3-SNAPSHOT-latest
-onap/portal-app,2.2.0
-onap/portal-db,2.2.0
-onap/portal-sdk,2.2.0
-onap/portal-wms,2.2.0
+onap/pomba-context-aggregator,latest
+onap/portal-app,2.3.0-STAGING-latest
+onap/portal-db,2.3.0-STAGING-latest
+onap/portal-sdk,2.3.0-STAGING-latest
+onap/portal-wms,2.3.0-STAGING-latest
onap/sdc-api-tests,1.3-STAGING-latest
onap/sdc-backend,1.3-STAGING-latest
onap/sdc-backend-init,1.3-STAGING-latest
onap/search-data-service,1.3-STAGING-latest
onap/sniroemulator,1.0.0
onap/so/api-handler-infra,1.3.0-STAGING-latest
+onap/so/asdc-controller,latest
onap/so/bpmn-infra,1.3.0-STAGING-latest
onap/so/catalog-db-adapter,1.3.0-STAGING-latest
onap/so/openstack-adapter,1.3.0-STAGING-latest
onap/vnfsdk/refrepo,1.1.1
onap/vnfsdk/refrepo/postgres,1.1.1
onap/vnfsdk/vnftest,1.1.0
+onap/workflow-backend,1.3.0-SNAPSHOT
+onap/workflow-frontend,1.3.0-SNAPSHOT
onap/data-router,1.2.2
onap/dmaap/buscontroller,1.0.12
onap/dmaap/dmaap-mr,1.1.4
-onap/externalapi/nbi,2.1.1
+onap/externalapi/nbi,3.0.0
onap/gizmo,1.2.1
onap/holmes/engine-management,1.1.0
onap/holmes/rule-management,1.1.0
org.onap.multicloud.openstack,windriver,1.1.2
org.onap.multicloud.openstack.vmware,vesagent,1.0.0
org.onap.multicloud.openstack.vmware,vio,1.1.2
-org.onap.oparent,oparent,1.1.1
+org.onap.oparent,oparent,1.2.1
org.onap.policy.common,common-modules,1.2.3
org.onap.policy.drools-applications,drools-pdp-apps,1.2.3
org.onap.policy.drools-pdp,drools-pdp,1.2.3