From: Gary Wu Date: Tue, 25 Jun 2019 16:37:34 +0000 (+0000) Subject: Merge "Remove obsolete start scripts" X-Git-Tag: 6.0.0-ONAP~257 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=984e56606ca9d76ad04f869ced4ec52bf992ecf8;hp=9028b22d68e8274858d189a263f2546e93cace32;p=integration%2Fcsit.git Merge "Remove obsolete start scripts" --- diff --git a/plans/dcaegen2/prh-testsuites/setup.sh b/plans/dcaegen2/prh-testsuites/setup.sh index 28882c84..9dc8de9a 100644 --- a/plans/dcaegen2/prh-testsuites/setup.sh +++ b/plans/dcaegen2/prh-testsuites/setup.sh @@ -46,4 +46,4 @@ echo CBS_IP=${CBS_IP} wait_for_service_init localhost:8100/heartbeat # #Pass any variables required by Robot test suites in ROBOT_VARIABLES -ROBOT_VARIABLES="-v DMAAP_SIMULATOR_SETUP:${DMAAP_SIMULATOR_IP}:2224 -v AAI_SIMULATOR_SETUP:${AAI_SIMULATOR_IP}:3335 -v CONSUL_SETUP:${CONSUL_IP}:8500" \ No newline at end of file +ROBOT_VARIABLES="-v DMAAP_SIMULATOR_SETUP:${DMAAP_SIMULATOR_IP}:2224 -v AAI_SIMULATOR_SETUP:${AAI_SIMULATOR_IP}:3335 -v CONSUL_SETUP:${CONSUL_IP}:8500 -v PRH_SETUP:${PRH_IP}:8100" \ No newline at end of file diff --git a/plans/optf-cmso/cmso/testplan.txt b/plans/optf-cmso/cmso/testplan.txt index 7645a858..42f64f1e 100644 --- a/plans/optf-cmso/cmso/testplan.txt +++ b/plans/optf-cmso/cmso/testplan.txt @@ -1,3 +1,3 @@ # Test suites are relative paths under [integration/csit.git]/tests/. # Place the suites in run order. -optf-cmso/cmso/testsuites +optf-cmso/cmso/testsuites \ No newline at end of file diff --git a/plans/policy/apex-pdp/setup.sh b/plans/policy/apex-pdp/setup.sh index 96396462..1e61726b 100644 --- a/plans/policy/apex-pdp/setup.sh +++ b/plans/policy/apex-pdp/setup.sh @@ -3,6 +3,7 @@ # Copyright (C) 2018 Ericsson. All rights reserved. # # Modifications copyright (c) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019 AT&T Intellectual Property. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -62,7 +63,15 @@ sleep 3 # Adding this waiting container due to race condition between pap and mariadb docker-compose -f ${WORKSPACE}/scripts/policy/policy-apex-pdp/docker-compose-apex.yml run --rm start_dependencies -docker-compose -f ${WORKSPACE}/scripts/policy/policy-apex-pdp/docker-compose-apex.yml up -d + +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + +# now bring everything else up +docker-compose -f ${WORKSPACE}/scripts/policy/policy-apex-pdp/docker-compose-apex.yml run --rm start_all + +unset http_proxy https_proxy POLICY_API_IP=`get-instance-ip.sh policy-api` POLICY_PAP_IP=`get-instance-ip.sh policy-pap` @@ -76,24 +85,4 @@ echo API IP IS ${POLICY_API_IP} echo APEX IP IS ${APEX_IP} echo DMAAP_IP IS ${DMAAP_IP} -# Wait for initialization -for i in {1..10}; do - curl -sS ${MARIADB_IP}:3306 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${APEX_IP}:6969 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${DMAAP_IP}:3904 && break - echo sleep $i - sleep $i -done -#Configure the database -docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh -docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh - ROBOT_VARIABLES="-v APEX_IP:${APEX_IP} -v POLICY_API_IP:${POLICY_API_IP} -v POLICY_PAP_IP:${POLICY_PAP_IP}" diff --git a/plans/policy/api/setup.sh b/plans/policy/api/setup.sh index a29254a5..6168085e 100644 --- a/plans/policy/api/setup.sh +++ b/plans/policy/api/setup.sh @@ -24,8 +24,15 @@ pip install -U docker==2.7.0 # Adding this waiting container to avoid race condition between api and mariadb containers. docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-api.yml run --rm start_dependencies -docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-api.yml up -d -sleep 3 + +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + +# now bring everything else up +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-api.yml run --rm start_all + +unset http_proxy https_proxy POLICY_API_IP=`get-instance-ip.sh policy-api` MARIADB_IP=`get-instance-ip.sh mariadb` @@ -33,20 +40,4 @@ MARIADB_IP=`get-instance-ip.sh mariadb` echo API IP IS ${POLICY_API_IP} echo MARIADB IP IS ${MARIADB_IP} -# Wait for initialization -for i in {1..10}; do - curl -sS ${MARIADB_IP}:3306 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${POLICY_API_IP}:6969 && break - echo sleep $i - sleep $i -done - -#Configure the database -docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh -docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh - ROBOT_VARIABLES="-v POLICY_API_IP:${POLICY_API_IP}" diff --git a/plans/policy/api/teardown.sh b/plans/policy/api/teardown.sh index fc82dfa7..0572e034 100755 --- a/plans/policy/api/teardown.sh +++ b/plans/policy/api/teardown.sh @@ -19,4 +19,3 @@ kill-instance.sh policy-api kill-instance.sh mariadb -kill-instance.sh policy-wait diff --git a/plans/policy/pap/setup.sh b/plans/policy/pap/setup.sh index d1ba20c2..8bd3f0ac 100644 --- a/plans/policy/pap/setup.sh +++ b/plans/policy/pap/setup.sh @@ -1,6 +1,7 @@ #!/bin/bash # ============LICENSE_START======================================================= # Copyright (C) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019 AT&T Intellectual Property. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -24,11 +25,17 @@ pip install -U docker==2.7.0 # Adding this waiting container due to race condition between pap and mariadb docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-pap.yml run --rm start_dependencies -docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-pap.yml up -d -sleep 3 + +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + +# now bring everything else up +docker-compose -f ${WORKSPACE}/scripts/policy/docker-compose-pap.yml run --rm start_all unset http_proxy https_proxy + POLICY_PAP_IP=`get-instance-ip.sh policy-pap` POLICY_API_IP=`get-instance-ip.sh policy-api` MARIADB_IP=`get-instance-ip.sh mariadb` @@ -36,26 +43,6 @@ MARIADB_IP=`get-instance-ip.sh mariadb` echo PAP IP IS ${POLICY_PAP_IP} echo API IP IS ${POLICY_API_IP} echo MARIADB IP IS ${MARIADB_IP} -# Wait for initialization -for i in {1..10}; do - curl -sS ${MARIADB_IP}:3306 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${POLICY_PAP_IP}:6969 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${POLICY_API_IP}:6969 && break - echo sleep $i - sleep $i -done - -#Configure the database -docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh -docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh #Add policy type and policy to the database via the Policy Api AUTH="healthcheck:zb!XztG34" diff --git a/plans/policy/pap/teardown.sh b/plans/policy/pap/teardown.sh index f05d3af9..c2d7e214 100644 --- a/plans/policy/pap/teardown.sh +++ b/plans/policy/pap/teardown.sh @@ -1,6 +1,7 @@ #!/bin/bash # ============LICENSE_START======================================================= # Copyright (C) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019 AT&T Intellectual Property. # ================================================================================ # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -20,4 +21,3 @@ kill-instance.sh policy-pap kill-instance.sh policy-api kill-instance.sh mariadb -kill-instance.sh policy-wait diff --git a/plans/policy/xacml-pdp/setup.sh b/plans/policy/xacml-pdp/setup.sh index 96ae4715..24fc2d7c 100644 --- a/plans/policy/xacml-pdp/setup.sh +++ b/plans/policy/xacml-pdp/setup.sh @@ -60,7 +60,13 @@ sleep 3 # Adding this waiting container due to race condition between pap and mariadb docker-compose -f ${WORKSPACE}/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml run --rm start_dependencies -docker-compose -f ${WORKSPACE}/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml up -d + +#Configure the database +docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh +docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh + +# now bring everything else up +docker-compose -f ${WORKSPACE}/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml run --rm start_all unset http_proxy https_proxy @@ -77,25 +83,4 @@ echo PAP IP IS ${POLICY_PAP_IP} echo MARIADB IP IS ${MARIADB_IP} echo DMAAP_IP IS ${DMAAP_IP} -# Wait for initialization -for i in {1..10}; do - curl -sS ${MARIADB_IP}:3306 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${POLICY_PDPX_IP}:6969 && break - echo sleep $i - sleep $i -done -for i in {1..10}; do - curl -sS ${DMAAP_IP}:3904 && break - echo sleep $i - sleep $i -done - -#Configure the database -docker exec -it mariadb chmod +x /docker-entrypoint-initdb.d/db.sh -docker exec -it mariadb /docker-entrypoint-initdb.d/db.sh - ROBOT_VARIABLES="-v POLICY_PDPX_IP:${POLICY_PDPX_IP} -v POLICY_API_IP:${POLICY_API_IP} -v POLICY_PAP_IP:${POLICY_PAP_IP}" diff --git a/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json b/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json index d07e3d82..4d9c1974 100644 --- a/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json +++ b/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json @@ -1,43 +1,32 @@ { - "configs": { - "dmaap": { - "dmaapConsumerConfiguration": { - "dmaapHostName": "dmaapmrhost", - "dmaapPortNumber": 3904, - "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT", - "dmaapProtocol": "http", - "dmaapUserName": "", - "dmaapUserPassword": "", - "dmaapContentType": "application/json", - "consumerId": "C12", - "consumerGroup": "OpenDcae-c12", - "timeoutMs": -1, - "messageLimit": 1 - }, - "dmaapProducerConfiguration": { - "dmaapHostName": "dmaapdrhost", - "dmaapPortNumber": 8443, - "dmaapTopicName": "publish", - "dmaapProtocol": "https", - "dmaapUserName": "dradmin", - "dmaapUserPassword": "dradmin", - "dmaapContentType": "application/octet-stream" - } - }, - "ftp": { - "ftpesConfiguration": { - "keyCert": "/config/dfc.jks", - "keyPassword": "secret", - "trustedCa": "/config/ftp.jks", - "trustedCaPassword": "secret" - } - }, - "security": { - "trustStorePath" : "trustStorePath", - "trustStorePasswordPath" : "trustStorePasswordPath", - "keyStorePath" : "keyStorePath", - "keyStorePasswordPath" : "keyStorePasswordPath", - "enableDmaapCertAuth" : "enableDmaapCertAuth" - } + "//description":"This file is only used for testing purposes", + "dmaap.ftpesConfig.keyCert":"/config/dfc.jks", + "dmaap.ftpesConfig.keyPassword":"secret", + "dmaap.ftpesConfig.trustedCa":"config/ftp.jks", + "dmaap.ftpesConfig.trustedCaPassword":"secret", + "dmaap.security.trustStorePath":"change it", + "dmaap.security.trustStorePasswordPath":"trustStorePasswordPath", + "dmaap.security.keyStorePath":"keyStorePath", + "dmaap.security.keyStorePasswordPath":"change it", + "dmaap.security.enableDmaapCertAuth":"false", + "dmaap.dmaapProducerConfiguration" : { + "changeIdentifier":"PM_MEAS_FILES", + "feedName":"feed00" + }, + "streams_subscribes":{ + "dmaap_subscriber":{ + "dmmap_info":{ + "topic_url":"http://dradmin:dradmin@dmaapmrhost:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT/OpenDcae-c12/C12" + }, + "type":"message_router" + } + }, + "feed00":{ + "username":"dradmin", + "log_url":"https://dmaapdrhost:8443/feedlog/1", + "publish_url":"https://dmaapdrhost:8443/publish/1", + "location":"san-francisco", + "password":"dradmin", + "publisher_id":"972.360gm" } -} \ No newline at end of file + } \ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml index 7880656b..59da2d9f 100644 --- a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml +++ b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml @@ -1,7 +1,7 @@ version: '2.1' services: datarouter-prov: - image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.1.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:latest container_name: datarouter-prov hostname: dmaap-dr-prov ports: @@ -25,7 +25,7 @@ services: - "dcae-pm-mapper:3.3.3.3" datarouter-node: - image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.1.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:latest container_name: datarouter-node hostname: dmaap-dr-node ports: @@ -41,7 +41,7 @@ services: - "dcae-pm-mapper:3.3.3.3" datarouter-subscriber: - image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:2.1.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber:latest container_name: fileconsumer-node hostname: subscriber.com ports: @@ -76,7 +76,7 @@ services: ves: container_name: vescollector - image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:latest + image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.4.4 environment: DMAAPHOST: diff --git a/run-csit.sh b/run-csit.sh index eeb8d59f..0aa48632 100755 --- a/run-csit.sh +++ b/run-csit.sh @@ -97,7 +97,7 @@ pip install robotframework-selenium2library==1.8.0 robotframework-extendedseleni # install eteutils mkdir -p ${ROBOT_VENV}/src/onap rm -rf ${ROBOT_VENV}/src/onap/testsuite -pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.4' +pip install --upgrade --extra-index-url="https://nexus3.onap.org/repository/PyPi.staging/simple" 'robotframework-onap==0.5' pip freeze diff --git a/scripts/optf-cmso/cmso/start_cmso_containers.sh b/scripts/optf-cmso/cmso/start_cmso_containers.sh deleted file mode 100644 index ded86d7c..00000000 --- a/scripts/optf-cmso/cmso/start_cmso_containers.sh +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/bash -# -# ------------------------------------------------------------------------- -# Copyright (c) 2018 AT&T Intellectual Property -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ------------------------------------------------------------------------- -# - -echo "This is ${WORKSPACE}/scripts/opft-cmso/cmso/start_cmso_containers.sh" - -DB_IMAGE_VERSION=1.0-SNAPSHOT-latest -SERVICE_IMAGE_VERSION=1.0-SNAPSHOT-latest - -# start cmso mariadb and db-init containers with docker compose and configuration from cmso/cmso-service/extra/docker/cmso-service/docker-compose.yml - -docker run -p 3306:3306 --name cmso-mariadb -v $(pwd)/mariadb/conf1:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=beer -d mariadb:10.1.11 - -CMSO_DB_IP=`get-instance-ip.sh cmso-mariadb` - -${WORKSPACE}/scripts/optf-osdf/osdf/wait_for_port.sh ${CMSO_DB_IP} 3306 - -sed -i -e "s%192.168.56.101:3306%${CMSO_DB_IP}:3306%g" ./etc/config/cmso.properties -sed -i -e "s%192.168.56.101:3306%${CMSO_DB_IP}:3306%g" ./etc/config/liquibase.properties - - -docker run --name cmso-db-init -v $(pwd)/etc:/share/etc -v $(pwd)/logs:/share/logs \ - -d nexus3.onap.org:10001/onap/optf-cmso-dbinit:${DB_IMAGE_VERSION} - -sleep 30 - -docker run --name cmso-service -p 8080:8080 -v $(pwd)/etc:/share/etc -v $(pwd)/logs:/share/logs\ - -v $(pwd)/debug-logs:/share/debug-logs -d nexus3.onap.org:10001/onap/optf-cmso-service:${SERVICE_IMAGE_VERSION} - -CMSO_SERVICE_IP=`get-instance-ip.sh cmso-service` - -${WORKSPACE}/scripts/optf-osdf/osdf/wait_for_port.sh ${CMSO_SERVICE_IP} 8080 - - -ROBOT_VARIABLES="-v GLOBAL_SCHEDULER_HOST:${CMSO_SERVICE_IP}" - -echo ${ROBOT_VARIABLES} \ No newline at end of file diff --git a/scripts/optf-cmso/cmso/wait_for_port.sh b/scripts/optf-cmso/cmso/wait_for_port.sh deleted file mode 100755 index 360fc210..00000000 --- a/scripts/optf-cmso/cmso/wait_for_port.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/bash -# -# ------------------------------------------------------------------------- -# Copyright (c) 2018 AT&T Intellectual Property -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# ------------------------------------------------------------------------- -# - -if [[ $# -ne 2 ]]; then - echo "Usage: wait-for-port hostname port" >&2 - exit 1 -fi - -host=$1 -port=$2 - -echo "Waiting for $host port $port open" -until telnet $host $port /dev/null | grep -q '^Connected'; do - sleep 1 -done - -echo "$host port $port is open" - -exit 0 diff --git a/scripts/policy/docker-compose-api.yml b/scripts/policy/docker-compose-api.yml index 452297fb..5cf5a27c 100644 --- a/scripts/policy/docker-compose-api.yml +++ b/scripts/policy/docker-compose-api.yml @@ -36,8 +36,22 @@ services: - "6969:6969" start_dependencies: image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 container_name: policy-wait depends_on: - mariadb hostname: policy-wait command: mariadb:3306 + start_all: + image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 + container_name: policy-wait-all + depends_on: + - mariadb + - api + hostname: policy-wait-all + command: + mariadb:3306 + api:6969 diff --git a/scripts/policy/docker-compose-pap.yml b/scripts/policy/docker-compose-pap.yml index 115f8840..383e1bc8 100644 --- a/scripts/policy/docker-compose-pap.yml +++ b/scripts/policy/docker-compose-pap.yml @@ -27,10 +27,10 @@ services: ports: - "3306:3306" pap: - image: nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/policy-pap container_name: policy-pap depends_on: - - "mariadb" + - mariadb hostname: policy-pap ports: - "6969:6969" @@ -44,8 +44,24 @@ services: - "9969:6969" start_dependencies: image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 container_name: policy-wait depends_on: - mariadb hostname: policy-wait command: mariadb:3306 + start_all: + image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 + container_name: policy-wait-all + depends_on: + - mariadb + - pap + - api + hostname: policy-wait-all + command: + mariadb:3306 + pap:6969 + api:6969 diff --git a/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json b/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json deleted file mode 100644 index 6944c9bd..00000000 --- a/scripts/policy/policy-apex-pdp/config/apex-pdp/OnapPfConfig.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name":"OnapPfParameterGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - }, - "pdpStatusParameters":{ - "timeIntervalMs": 10000, - "pdpType":"apex", - "description":"Pdp Heartbeat", - "supportedPolicyTypes":[{"name":"onap.policies.controlloop.operational.Apex","version":"1.0.0"}] - } -} diff --git a/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties b/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties deleted file mode 100644 index b7df11a8..00000000 --- a/scripts/policy/policy-apex-pdp/config/apex-pdp/topic.properties +++ /dev/null @@ -1,23 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -dmaap.source.topics=POLICY-PDP-PAP -dmaap.sink.topics=POLICY-PDP-PAP - -dmaap.source.topics.POLICY-PDP-PAP.servers= dmaap:3904 -dmaap.sink.topics.POLICY-PDP-PAP.servers= dmaap:3904 diff --git a/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json b/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json deleted file mode 100644 index 32b6c30f..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/defaultConfig.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "PapGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - }, - "pdpParameters": { - "updateParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - }, - "stateChangeParameters": { - "maxRetryCount": 1, - "maxWaitMs": 30000 - } - }, - "databaseProviderParameters": { - "name": "PolicyProviderParameterGroup", - "implementation": "org.onap.policy.models.provider.impl.DatabasePolicyModelsProviderImpl", - "databaseDriver": "org.mariadb.jdbc.Driver", - "databaseUrl": "jdbc:mariadb://mariadb:3306/policyadmin", - "databaseUser": "policy_user", - "databasePassword": "cG9saWN5X3VzZXI=", - "persistenceUnit": "PolicyMariaDb" - } -} diff --git a/scripts/policy/policy-apex-pdp/config/pap/logback.xml b/scripts/policy/policy-apex-pdp/config/pap/logback.xml deleted file mode 100644 index a34956c5..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/logback.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - ${logDir}/${errorLog}.log - - ${logDir}/${errorLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - WARN - - - ${errorPattern} - - - - - - - - - ${logDir}/${debugLog}.log - - ${logDir}/${debugLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - ${debugPattern} - - - - - - - - - ${logDir}/${networkLog}.log - - ${logDir}/${networkLog}.%d{yyyy-MM-dd}.%i.log.zip - - 50MB - 30 - 10GB - - - ${networkPattern} - - - - - - - - - - - - - - - - - - - - - diff --git a/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json b/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json deleted file mode 100644 index 3085f45d..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/s3pConfig.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "PapGroup", - "restServerParameters": { - "host": "0.0.0.0", - "port": 6969, - "userName": "healthcheck", - "password": "zb!XztG34", - "https": true, - "aaf": false - } -} diff --git a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore b/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore deleted file mode 100644 index bf876b8a..00000000 Binary files a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-keystore and /dev/null differ diff --git a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore b/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore deleted file mode 100644 index b7d52ad1..00000000 Binary files a/scripts/policy/policy-apex-pdp/config/pap/ssl/policy-truststore and /dev/null differ diff --git a/scripts/policy/policy-apex-pdp/config/pap/topic.properties b/scripts/policy/policy-apex-pdp/config/pap/topic.properties deleted file mode 100644 index b7df11a8..00000000 --- a/scripts/policy/policy-apex-pdp/config/pap/topic.properties +++ /dev/null @@ -1,23 +0,0 @@ -# ============LICENSE_START======================================================= -# Copyright (C) 2019 Nordix Foundation. -# ================================================================================ -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# SPDX-License-Identifier: Apache-2.0 -# ============LICENSE_END========================================================= - -dmaap.source.topics=POLICY-PDP-PAP -dmaap.sink.topics=POLICY-PDP-PAP - -dmaap.source.topics.POLICY-PDP-PAP.servers= dmaap:3904 -dmaap.sink.topics.POLICY-PDP-PAP.servers= dmaap:3904 diff --git a/scripts/policy/policy-apex-pdp/docker-compose-apex.yml b/scripts/policy/policy-apex-pdp/docker-compose-apex.yml index 9039b894..c6578dda 100644 --- a/scripts/policy/policy-apex-pdp/docker-compose-apex.yml +++ b/scripts/policy/policy-apex-pdp/docker-compose-apex.yml @@ -1,4 +1,5 @@ # Copyright (C) 2019 Nordix Foundation. +# Modifications Copyright (C) 2019 AT&T Intellectual Property. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -26,21 +27,20 @@ services: - ./config/db:/docker-entrypoint-initdb.d ports: - "3306:3306" - dmaap: + message-router: image: dmaap/simulator container_name: dmaap-simulator hostname: dmaap-simulator ports: - "3904:3904" pap: - image: nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/policy-pap container_name: policy-pap depends_on: - mariadb - - dmaap + - message-router hostname: policy-pap - volumes: - - ./config/pap/:/opt/app/policy/pap/etc/ + api: image: nexus3.onap.org:10001/onap/policy-api container_name: policy-api @@ -48,27 +48,45 @@ services: - mariadb hostname: policy-api apex: - image: nexus3.onap.org:10001/onap/policy-apex-pdp:2.1-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/policy-apex-pdp container_name: policy-apex-pdp depends_on: - mariadb - - dmaap + - message-router - pap - - api hostname: policy-apex-pdp command: ['/opt/app/policy/apex-pdp/bin/apexOnapPf.sh', '-c', '/opt/app/policy/apex-pdp/etc/onappf/config/OnapPfConfig.json', '-p', '/opt/app/policy/apex-pdp/etc/onappf/config/topic.properties'] - volumes: - - ./config/apex-pdp/:/opt/app/policy/apex-pdp/etc/onappf/config/ + ports: - "6969:6969" - "23324:23324" start_dependencies: image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 container_name: policy-wait depends_on: - mariadb - - dmaap + - message-router hostname: policy-wait command: - - mariadb:3306 - - dmaap:3904 + mariadb:3306 + message-router:3904 + start_all: + image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 + container_name: policy-wait-all + depends_on: + - mariadb + - message-router + - api + - pap + - apex + hostname: policy-wait-all + command: + mariadb:3306 + message-router:3904 + api:6969 + pap:6969 + apex:6969 diff --git a/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml b/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml index 62e0ce21..96a4b122 100644 --- a/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml +++ b/scripts/policy/policy-xacml-pdp/docker-compose-pdpx.yml @@ -37,7 +37,7 @@ services: ports: - "3904:3904" pap: - image: nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/policy-pap container_name: policy-pap depends_on: - mariadb @@ -50,23 +50,42 @@ services: - mariadb hostname: policy-api xacml-pdp: - image: nexus3.onap.org:10001/onap/policy-xacml-pdp:2.0.0-SNAPSHOT-latest + image: nexus3.onap.org:10001/onap/policy-xacml-pdp container_name: policy-xacml-pdp depends_on: - mariadb - message-router - pap - - api hostname: policy-xacml-pdp ports: - "6969:6969" start_dependencies: image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 container_name: policy-wait depends_on: - mariadb - message-router hostname: policy-wait command: - - mariadb:3306 - - message-router:3904 + mariadb:3306 + message-router:3904 + start_all: + image: dadarek/wait-for-dependencies + environment: + TIMEOUT_LENGTH: 60 + container_name: policy-wait-all + depends_on: + - mariadb + - message-router + - api + - pap + - xacml-pdp + hostname: policy-wait-all + command: + mariadb:3306 + message-router:3904 + api:6969 + pap:6969 + xacml-pdp:6969 diff --git a/tests/dcaegen2/prh-testcases/assets/aai-missing-entry/ves-event.json b/tests/dcaegen2/prh-testcases/assets/aai-missing-entry/ves-event.json index 10ce41c5..3a768df2 100644 --- a/tests/dcaegen2/prh-testcases/assets/aai-missing-entry/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/aai-missing-entry/ves-event.json @@ -1,39 +1,37 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW8", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW8", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7" - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW8", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW8", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7" } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/aai-not-responding/ves-event.json b/tests/dcaegen2/prh-testcases/assets/aai-not-responding/ves-event.json index 10ce41c5..3a768df2 100644 --- a/tests/dcaegen2/prh-testcases/assets/aai-not-responding/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/aai-not-responding/ves-event.json @@ -1,39 +1,37 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW8", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW8", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7" - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW8", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW8", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7" } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/json_events/event_with_all_fields.json b/tests/dcaegen2/prh-testcases/assets/json_events/event_with_all_fields.json index 13c564c1..cd3e73f1 100644 --- a/tests/dcaegen2/prh-testcases/assets/json_events/event_with_all_fields.json +++ b/tests/dcaegen2/prh-testcases/assets/json_events/event_with_all_fields.json @@ -13,7 +13,7 @@ "modelNumber": "modelNumber", "unitType": "unitType", "additionalFields": { - "attachmentPoint": "bla-bla-30-3", + "attachment-point": "bla-bla-30-3", "svlan": "1005", "cvlan": "678" } diff --git a/tests/dcaegen2/prh-testcases/assets/json_events/event_with_optional_registration_fields_all_filled.json b/tests/dcaegen2/prh-testcases/assets/json_events/event_with_optional_registration_fields_all_filled.json index 9be02f10..0f2af3cd 100644 --- a/tests/dcaegen2/prh-testcases/assets/json_events/event_with_optional_registration_fields_all_filled.json +++ b/tests/dcaegen2/prh-testcases/assets/json_events/event_with_optional_registration_fields_all_filled.json @@ -14,7 +14,7 @@ "modelNumber": "modelNumber", "unitType": "unitType", "additionalFields": { - "attachmentPoint": "bla-bla-30-3", + "attachment-point": "bla-bla-30-3", "svlan": "1005", "cvlan": "678" } diff --git a/tests/dcaegen2/prh-testcases/assets/json_events/ves-event-pnf-registration-with-attachment-point.json b/tests/dcaegen2/prh-testcases/assets/json_events/ves-event-pnf-registration-with-attachment-point.json index 054774c5..97d2dffa 100644 --- a/tests/dcaegen2/prh-testcases/assets/json_events/ves-event-pnf-registration-with-attachment-point.json +++ b/tests/dcaegen2/prh-testcases/assets/json_events/ves-event-pnf-registration-with-attachment-point.json @@ -11,7 +11,7 @@ "modelNumber": "modelNumber", "unitType": "unitType", "additionalFields": { - "attachmentPoint": "bla-bla-30-3", + "attachment-point": "bla-bla-30-3", "svlan": "1005", "cvlan": "678" } diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json new file mode 100644 index 00000000..6119ea8b --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry-service-instance.json @@ -0,0 +1,25 @@ +{ + "service-instance-id": "bbs_service", + "service-instance-name": "bbs_service", + "environment-context": "General_Revenue-Bearing", + "workload-context": "Production", + "model-invariant-id": "c71827e7-42fc-46ab-b059-22584c58108b", + "model-version-id": "8efe4a8a-6646-43e2-8807-a376ff22d2e0", + "resource-version": "1554127221722", + "orchestration-status": "Active", + "relationship-list": { + "relationship": [ + { + "related-to": "pnf", + "relationship-label": "org.onap.relationships.inventory.ComposedOf", + "related-link": "/aai/v12/network/pnfs/pnf/NOK6061ZW9", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "NOK6061ZW9" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json new file mode 100644 index 00000000..e01e26e6 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/aai-entry.json @@ -0,0 +1,66 @@ +{ + "pnf-name": "NOK6061ZW9", + "pnf-name2": "example-pnf-name2-val-58071", + "pnf-name2-source": "example-pnf-name2-source-val-22408", + "pnf-id": "example-pnf-id-val-55834", + "equip-type": "example-equip-type-val-5497", + "equip-vendor": "example-equip-vendor-val-85730", + "equip-model": "example-equip-model-val-38526", + "management-option": "example-management-option-val-15776", + "ipaddress-v4-oam": "example-ipaddress-v4-oam-val-33556", + "sw-version": "example-sw-version-val-64239", + "in-maint": true, + "frame-id": "example-frame-id-val-76733", + "serial-number": "example-serial-number-val-79366", + "ipaddress-v4-loopback-0": "example-ipaddress-v4-loopback0-val-34781", + "ipaddress-v6-loopback-0": "example-ipaddress-v6-loopback0-val-29979", + "ipaddress-v4-aim": "example-ipaddress-v4-aim-val-53703", + "ipaddress-v6-aim": "example-ipaddress-v6-aim-val-93386", + "ipaddress-v6-oam": "example-ipaddress-v6-oam-val-92665", + "inv-status": "example-inv-status-val-8477", + "prov-status": "example-prov-status-val-68268", + "nf-role": "example-nf-role-val-68489", + "relationship-list": { + "relationship": [ + { + "related-to": "service-instance", + "relationship-label": "org.onap.relationships.inventory.ComposedOf", + "related-link": "/aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service", + "relationship-data": [ + { + "relationship-key": "customer.global-customer-id", + "relationship-value": "Demonstration" + }, + { + "relationship-key": "service-subscription.service-type", + "relationship-value": "vFW" + }, + { + "relationship-key": "service-instance.service-instance-id", + "relationship-value": "bbs_service" + } + ], + "related-to-property": [ + { + "property-key": "service-instance.service-instance-name", + "property-value": "bbs_service" + } + ] + }, + { + "related-to": "logical-link", + "relationship-label": "org.onap.relationships.inventory.BridgedTo", + "related-link": "/aai/v12/network/logical-links/logical-link/bbs-link", + "relationship-data": [ + { + "relationship-key": "logical-link.link-name", + "relationship-value": "bbs-link" + } + ] + } + ] + } + + + +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json new file mode 100644 index 00000000..0e4f6ab1 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-logical-link.json @@ -0,0 +1,22 @@ +{ + "link-name": "bbs-link", + "in-maint": false, + "link-type": "attachment-point", + "relationship-list": + { + "relationship": [ + { + "related-to": "pnf", + "relationship-label": "org.onap.relationships.inventory.BridgedTo", + "related-link": "/network/pnfs/pnf/NOK6061ZW9", + "relationship-data": [ + { + "relationship-key": "pnf.pnf-name", + "relationship-value": "NOK6061ZW9" + } + ] + } + ] + } +} + diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-update-event.json b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-update-event.json new file mode 100644 index 00000000..5c77e125 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/expected-pnf-update-event.json @@ -0,0 +1,8 @@ +[ + { + "additionalFields": { + "attachment-point": "bbs-link" + }, + "correlationId": "NOK6061ZW9" + } +] \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/re-registration/ves-event.json b/tests/dcaegen2/prh-testcases/assets/re-registration/ves-event.json new file mode 100644 index 00000000..5de986c5 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/assets/re-registration/ves-event.json @@ -0,0 +1,40 @@ +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" + }, + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW9", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW9", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7", + "additionalFields": { + "attachment-point": "bbs-link" + } + } + } +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-missing-field/invalid-ves-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-missing-field/invalid-ves-event.json index 2bdc0570..dd135f4d 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-missing-field/invalid-ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-missing-field/invalid-ves-event.json @@ -1,18 +1,16 @@ -[ - { - "event": { - "commonEventHeader": { - "sourceName": "" - }, - "pnfRegistrationFields": { - "oamV4IpAddress": "10.18.123.236", - "oamV6IpAddress": "2001:0db8:85a3:0000:0000:8a2a:0370:7334", - "serialNumber": "", - "vendorName": "", - "modelNumber": "", - "unitType": "", - "additionalFields": {} - } +{ + "event": { + "commonEventHeader": { + "sourceName": "" + }, + "pnfRegistrationFields": { + "oamV4IpAddress": "10.18.123.236", + "oamV6IpAddress": "2001:0db8:85a3:0000:0000:8a2a:0370:7334", + "serialNumber": "", + "vendorName": "", + "modelNumber": "", + "unitType": "", + "additionalFields": {} } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-logical-link.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-logical-link.json index c48c841c..9b4c7e2c 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-logical-link.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-logical-link.json @@ -1,11 +1,13 @@ { "link-name": "bbs-link", - "link-type": "attachmentPoint", - "relationship-list": [ + "link-type": "attachment-point", + "relationship-list": { - "relationship": { - "related-link": "/network/pnfs/pnf/NOK6061ZW9" - } + "relationship": [ + { + "related-link": "/network/pnfs/pnf/NOK6061ZW9", + "relationship-data": [] + } + ] } - ] } diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-pnf-ready-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-pnf-ready-event.json index 0ccc1dfb..5c77e125 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-pnf-ready-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/expected-pnf-ready-event.json @@ -1,7 +1,7 @@ [ { "additionalFields": { - "attachmentPoint": "bbs-link" + "attachment-point": "bbs-link" }, "correlationId": "NOK6061ZW9" } diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/ves-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/ves-event.json index 9f024983..5de986c5 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-attachment-point/ves-event.json @@ -1,42 +1,40 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW9", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW9", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7", - "additionalFields": { - "attachmentPoint": "bbs-link" - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW9", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW9", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7", + "additionalFields": { + "attachment-point": "bbs-link" } } } -] +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-additional-fields/ves-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-additional-fields/ves-event.json index b7e5af5e..ba91f286 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-additional-fields/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-additional-fields/ves-event.json @@ -1,41 +1,39 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW8", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW8", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7", - "additionalFields": { - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW8", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW8", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7", + "additionalFields": { } } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/expected-pnf-ready-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/expected-pnf-ready-event.json index d2cf9547..363ff3ff 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/expected-pnf-ready-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/expected-pnf-ready-event.json @@ -1,7 +1,7 @@ [ { "additionalFields": { - "attachmentPoint": "" + "attachment-point": "" }, "correlationId": "NOK6061ZW8" } diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/ves-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/ves-event.json index c1b6dc2c..b56341f3 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-with-empty-attachment-point/ves-event.json @@ -1,42 +1,40 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW8", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW8", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7", - "additionalFields": { - "attachmentPoint": "" - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW8", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW8", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7", + "additionalFields": { + "attachment-point": "" } } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/assets/ves-event-without-additional-fields/ves-event.json b/tests/dcaegen2/prh-testcases/assets/ves-event-without-additional-fields/ves-event.json index 10ce41c5..3a768df2 100644 --- a/tests/dcaegen2/prh-testcases/assets/ves-event-without-additional-fields/ves-event.json +++ b/tests/dcaegen2/prh-testcases/assets/ves-event-without-additional-fields/ves-event.json @@ -1,39 +1,37 @@ -[ - { - "event": { - "commonEventHeader": { - "startEpochMicrosec": 1540212137393, - "sourceId": "val13", - "eventId": "registration_40212137", - "nfcNamingCode": "oam", - "internalHeaderFields": { - "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" - }, - "eventType": "pnfRegistration", - "priority": "Normal", - "version": "4.0.1", - "reportingEntityName": "NOK6061ZW8", - "sequence": 0, - "domain": "pnfRegistration", - "lastEpochMicrosec": 1540212137393, - "eventName": "pnfRegistration_Nokia_5gDu", - "vesEventListenerVersion": "7.0.1", - "sourceName": "NOK6061ZW8", - "nfNamingCode": "gNB" +{ + "event": { + "commonEventHeader": { + "startEpochMicrosec": 1540212137393, + "sourceId": "val13", + "eventId": "registration_40212137", + "nfcNamingCode": "oam", + "internalHeaderFields": { + "collectorTimeStamp": "Mon, 10 22 2018 12:42:18 UTC" }, - "pnfRegistrationFields": { - "unitType": "val8", - "serialNumber": "6061ZW9", - "pnfRegistrationFieldsVersion": "2.0", - "manufactureDate": "1540212137393", - "modelNumber": "val6", - "lastServiceDate": "1540212137393", - "unitFamily": "BBU", - "vendorName": "Nokia", - "oamV4IpAddress": "val3", - "oamV6IpAddress": "val4", - "softwareVersion": "val7" - } + "eventType": "pnfRegistration", + "priority": "Normal", + "version": "4.0.1", + "reportingEntityName": "NOK6061ZW8", + "sequence": 0, + "domain": "pnfRegistration", + "lastEpochMicrosec": 1540212137393, + "eventName": "pnfRegistration_Nokia_5gDu", + "vesEventListenerVersion": "7.0.1", + "sourceName": "NOK6061ZW8", + "nfNamingCode": "gNB" + }, + "pnfRegistrationFields": { + "unitType": "val8", + "serialNumber": "6061ZW9", + "pnfRegistrationFieldsVersion": "2.0", + "manufactureDate": "1540212137393", + "modelNumber": "val6", + "lastServiceDate": "1540212137393", + "unitFamily": "BBU", + "vendorName": "Nokia", + "oamV4IpAddress": "val3", + "oamV6IpAddress": "val4", + "softwareVersion": "val7" } } -] \ No newline at end of file +} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/prh_config_tests.robot b/tests/dcaegen2/prh-testcases/prh_config_tests.robot new file mode 100644 index 00000000..144504d1 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/prh_config_tests.robot @@ -0,0 +1,33 @@ +*** Settings *** +Documentation Tests related to updating PRH app config based on CBS config +Suite Setup Run keywords Create sessions +Resource resources/prh_sessions.robot +Resource resources/prh_config_library.robot +Resource resources/prh_library.robot +Test Timeout 15 seconds + +*** Test Cases *** +CBS configuration forced refresh + [Documentation] It should be possible to force refresh PRH configuration from CBS + [Tags] PRH coniguration + ${some_random_value}= Generate random value + Put key-value to consul foo_${some_random_value} bar_${some_random_value} + Force PRH config refresh + Check key-value in PRH app environment foo_${some_random_value} bar_${some_random_value} + +CBS configuration scheduled refresh + [Documentation] PRH should pull for CBS configuration updates according to schedule + [Tags] PRH coniguration + Set scheduled CBS updates interval 1s + ${some_random_value}= Generate random value + Put key-value to consul spam_${some_random_value} ham_${some_random_value} + wait until keyword succeeds 20x 500ms + ... Check key-value in PRH app environment spam_${some_random_value} ham_${some_random_value} + [Teardown] Set scheduled CBS updates interval 0 + +PRH log level change based on CBS config + [Documentation] It should be possible to change logging levels in PRH based on entries in CBS + [Tags] PRH coniguration logging + Set logging level in CBS org.onap.dcaegen2.services.prh.foo WARN + Force PRH config refresh + Verify logging level org.onap.dcaegen2.services.prh.foo WARN \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/prh_tests.robot b/tests/dcaegen2/prh-testcases/prh_tests.robot index acaf78fd..4e387b91 100644 --- a/tests/dcaegen2/prh-testcases/prh_tests.robot +++ b/tests/dcaegen2/prh-testcases/prh_tests.robot @@ -6,18 +6,14 @@ Test Teardown Reset Simulators Test Timeout 2 minutes Library resources/PrhLibrary.py +Resource resources/prh_sessions.robot Resource resources/prh_library.robot -Resource ../../common.robot *** Variables *** ${TEST_CASES_DIR} %{WORKSPACE}/tests/dcaegen2/prh-testcases/assets -${DMAAP_SIMULATOR_SETUP_URL} http://${DMAAP_SIMULATOR_SETUP} -${AAI_SIMULATOR_SETUP_URL} http://${AAI_SIMULATOR_SETUP} -${CONSUL_SETUP_URL} http://${CONSUL_SETUP} - *** Test Cases *** -Simple BBS case event +BBS case event - attachment point [Documentation] PRH get from DMaaP valid event with valid attachment point [Tags] PRH Valid event Attachment point [Template] Verify PNF ready sent and logical link created @@ -52,3 +48,13 @@ Should not sent PNF ready when AAI is not responding [Tags] PRH AAI not responding Verify AAI not responding is logged ${TEST_CASES_DIR}/aai-not-responding +BBS case event - Re-registration + [Documentation] After regitered PNF, PRH reads another one PRH event with registration event + [Tags] PRH Valid event Re registraiton + [Template] Verify PNF re registration + ${TEST_CASES_DIR}/re-registration + +PRH logging level change + [Documentation] ad-hoc PRH logging level change using rest endpoint + [Tags] PRH logging level + Verify change logging level diff --git a/tests/dcaegen2/prh-testcases/resources/.env b/tests/dcaegen2/prh-testcases/resources/.env index a558a2e8..b1de55a9 100644 --- a/tests/dcaegen2/prh-testcases/resources/.env +++ b/tests/dcaegen2/prh-testcases/resources/.env @@ -1,5 +1,4 @@ -LOG_LEVEL=INFO -PRH_LOG_LEVEL=TRACE HOSTNAME=dcae-prh CONSUL_HOST=consul CONFIG_BINDING_SERVICE=cbs +CONFIG_BINDING_SERVICE_SERVICE_PORT=10000 \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/resources/PrhLibrary.py b/tests/dcaegen2/prh-testcases/resources/PrhLibrary.py index 88aeb45c..b3f5f8d9 100644 --- a/tests/dcaegen2/prh-testcases/resources/PrhLibrary.py +++ b/tests/dcaegen2/prh-testcases/resources/PrhLibrary.py @@ -1,5 +1,5 @@ import json - +import re import docker import time @@ -10,84 +10,73 @@ class PrhLibrary(object): pass @staticmethod - def find_log_entry(search_for): - print (type(search_for)) + def find_one_of_log_entryies(searched_entries): + print(type(searched_entries)) client = docker.from_env() container = client.containers.get('prh') - print ("Check for log searches for pattern: ", search_for ) + print("Check for log searches for pattern: ", searched_entries) for line in container.logs(stream=True): - print ("Check for log analysis line: ", line ) - if search_for in line.strip(): + print("Check for log analysis line: ", line ) + for searched_entry in searched_entries: + if searched_entry in line.strip(): + return True + else: + return False + + @staticmethod + def find_log_json(prefix, json_message): + print("Looking for:") + print("Prefix: " + str(prefix)) + print("Json: " + str(json_message)) + try: + decoded_message = json.loads(json_message) + except json.JSONDecodeError: + print("Could not decode given message") + return False + pattern = re.compile(prefix + "(.*)$") + client = docker.from_env() + container = client.containers.get('prh') + for line in container.logs(stream=True): + print("Check for log analysis line: ", line ) + if PrhLibrary.__same_json_in_log(decoded_message, line, pattern): return True else: return False @staticmethod def create_invalid_notification(json_file): - event = json.loads(json_file)[0] - correlation_id = PrhLibrary.extract_correlation_id_value(event, "correlationId") - ipv4 = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "oamV4IpAddress", "oamV4IpAddress") - ipv6 = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "oamV6IpAddress", "oamV6IpAddress") - serial_number = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "serialNumber", "serialNumber") - vendor_name = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "vendorName", "vendorName") - model_number = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "modelNumber", "modelNumber") - unit_type = PrhLibrary.extract_value_from_pnfRegistrationFields(event, "unitType", "unitType") - - additional_fields = PrhLibrary.extract_additional_fields(event) - - str_json = '{' + correlation_id + ipv4 + ipv6 + serial_number + vendor_name + model_number + unit_type + '"nfNamingCode":""' + "," + '"softwareVersion":"",' + additional_fields - return json.dumps(str_json).replace("\\", "")[1:-1].replace("\":", "\": ").rstrip(',') + '\\n}' + output = {} + input = json.loads(json_file) + output["correlationId"] = PrhLibrary.__extract_correlation_id_value(input) + output["oamV4IpAddress"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "oamV4IpAddress") + output["oamV6IpAddress"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "oamV6IpAddress") + output["serialNumber"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "serialNumber") + output["vendorName"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "vendorName") + output["modelNumber"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "modelNumber") + output["unitType"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "unitType") + output['nfNamingCode'] = '' + output['softwareVersion'] = '' + + output["additionalFields"] = PrhLibrary.__get_additional_fields_as_key_value_pairs(input) + + return json.dumps(output) @staticmethod def create_pnf_ready_notification_as_pnf_ready(json_file): - json_to_python = json.loads(json_file) - correlation_id = PrhLibrary.extract_correlation_id_value(json_to_python, "correlationId") - - additional_fields = PrhLibrary.extract_additional_fields_value(json_to_python) + output = {} + input = json.loads(json_file)[0] - str_json = '{' + correlation_id + additional_fields + output["correlationId"] = PrhLibrary.__extract_correlation_id_value(input) + output["serialNumber"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "serialNumber") + output["equip-vendor"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "vendorName") + output["equip-model"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "modelNumber") + output["equip-type"] = PrhLibrary.__extract_value_from_pnfRegistrationFields(input, "unitType") + output["nf-role"] = PrhLibrary.__extract_nf_role(input) + output["sw-version"] = "" - return json.dumps(str_json.rstrip(',') + '}').replace("\\", "")[1:-1] - - @staticmethod - def extract_additional_fields_value(content): - fields = PrhLibrary.get_additional_fields_as_key_value_pairs(content) - if len(fields) == 0: - return "" - return PrhLibrary.build_additional_fields_json(fields) - - @staticmethod - def extract_additional_fields(content): - fields = PrhLibrary.get_additional_fields_as_key_value_pairs(content) - if fields == []: - return '"additionalFields":null' - return PrhLibrary.build_additional_fields_json(fields) - - @staticmethod - def get_additional_fields_as_key_value_pairs(content): - return content.get("event").get("pnfRegistrationFields").get( - "additionalFields") if "additionalFields" in content["event"]["pnfRegistrationFields"] else [] - - @staticmethod - def build_additional_fields_json(fields): - res = '"additionalFields":{' - for f in fields: - res += '"' + f + '":"' + fields.get(f) + '",' - return res.rstrip(',') + '},' - - @staticmethod - def extract_value_from_pnfRegistrationFields(content, name, key): - return '"' + name + '":"' + (content.get("event").get("pnfRegistrationFields").get(key) + '",' if key in content["event"]["pnfRegistrationFields"] else '",') - - @staticmethod - def extract_correlation_id_value(content, name): - return '"' + name + '":"' + (content.get("event").get("commonEventHeader").get("sourceName") + '",' if "sourceName" in content["event"]["commonEventHeader"] else '",') + output["additionalFields"] = PrhLibrary.__get_additional_fields_as_key_value_pairs(input) - @staticmethod - def create_pnf_name(json_file): - json_to_python = json.loads(json_file) - correlation_id = json_to_python.get("event").get("commonEventHeader").get("sourceName") + '",' if "sourceName" in json_to_python["event"]["commonEventHeader"] else '",' - return correlation_id + return json.dumps(output) @staticmethod def ensure_container_is_running(name): @@ -127,4 +116,55 @@ class PrhLibrary(object): @staticmethod def is_in_status(client, name, status): - return len(client.containers.list(all=True, filters={"name": "^/"+name+"$", "status": status})) == 1 \ No newline at end of file + return len(client.containers.list(all=True, filters={"name": "^/"+name+"$", "status": status})) == 1 + + @staticmethod + def create_pnf_name(json_file): + json_to_python = json.loads(json_file) + correlation_id = json_to_python.get("event").get("commonEventHeader").get("sourceName") + '",' if "sourceName" in json_to_python["event"]["commonEventHeader"] else '",' + return correlation_id + + @staticmethod + def __get_additional_fields_as_key_value_pairs(content): + return content.get("event").get("pnfRegistrationFields").get( + "additionalFields") if "additionalFields" in content["event"]["pnfRegistrationFields"] else {} + + @staticmethod + def __extract_value_from_pnfRegistrationFields(content, key): + return content["event"]["pnfRegistrationFields"][key] if key in content["event"]["pnfRegistrationFields"] else '' + + @staticmethod + def __extract_correlation_id_value(content): + return content["event"]["commonEventHeader"]["sourceName"] if "sourceName" in content["event"]["commonEventHeader"] else '' + + @staticmethod + def __extract_nf_role(content): + return content["event"]["commonEventHeader"]["nfNamingCode"] if "nfNamingCode" in content["event"]["commonEventHeader"] else '' + + @staticmethod + def __same_json_in_log(decoded_message, line, pattern): + extracted_json = PrhLibrary.__extract_json(line, pattern) + if extracted_json is not None: + print("Found json: " + extracted_json) + try: + if json.loads(extracted_json) == decoded_message: + return True + except json.JSONDecodeError: + print("Could not decode") + return False + + @staticmethod + def __extract_json(line, pattern): + full_message = PrhLibrary.__extract_full_message_from_line(line) + if full_message is not None: + match = pattern.match(full_message) + if match: + return match.group(1).replace("\\n", "\n").replace("\\t", "\t") + return None + + @staticmethod + def __extract_full_message_from_line(line): + split = line.split("|") + if len(split) > 3: + return split[3] + return None diff --git a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml index aba658b0..ca94dfb2 100644 --- a/tests/dcaegen2/prh-testcases/resources/docker-compose.yml +++ b/tests/dcaegen2/prh-testcases/resources/docker-compose.yml @@ -8,11 +8,10 @@ services: volumes: - ./simulator/certs:/tmp/certs environment: - - LOG_LEVEL - - PRH_LOG_LEVEL - - HOSTNAME - - CONSUL_HOST + - HOSTNAME=dcae-prh + - CONSUL_HOST # not in use, but still required by SDK - should be removed later on - CONFIG_BINDING_SERVICE + - CONFIG_BINDING_SERVICE_SERVICE_PORT container_name: prh depends_on: cbs: @@ -55,6 +54,10 @@ services: image: consul:1.0.6 restart: on-failure command: ["kv", "put", "-http-addr=http://consul:8500", "dcae-prh", '{ + "cbs.updates-interval": 0, + "logging.level.org.onap.dcaegen2.services.prh": "debug", + "logging.level.org.onap.dcaegen2.services.sdk": "debug", + "logging.level.org.onap.dcaegen2.services.prh.controllers.AppInfoController": "off", "dmaap.dmaapConsumerConfiguration.dmaapUserName":"admin", "dmaap.dmaapConsumerConfiguration.dmaapUserPassword":"admin", "dmaap.dmaapConsumerConfiguration.dmaapContentType": "application/json", diff --git a/tests/dcaegen2/prh-testcases/resources/prh_config_library.robot b/tests/dcaegen2/prh-testcases/resources/prh_config_library.robot new file mode 100644 index 00000000..26a62704 --- /dev/null +++ b/tests/dcaegen2/prh-testcases/resources/prh_config_library.robot @@ -0,0 +1,43 @@ +*** Settings *** +Documentation Keywords related to checking and updating PRH app config based on CBS config +Library RequestsLibrary +Library Collections + +*** Keywords *** + +Put key-value to consul + [Arguments] ${key} ${value} + ${prh_config}= Get PRH config from consul + set to dictionary ${prh_config} ${key} ${value} + put request consul_session /v1/kv/dcae-prh json=${prh_config} + Get PRH config from consul prh config in consul after update + +Get PRH config from consul + [Arguments] ${logMessage}=prh config in consul + ${phr_config_response}= get request consul_session /v1/kv/dcae-prh?raw + log ${logMessage}: ${phr_config_response.content} + [Return] ${phr_config_response.json()} + +Force PRH config refresh + ${refresh_response}= post request prh_session /actuator/refresh + should be equal as integers ${refresh_response.status_code} 200 + +Check key-value in PRH app environment + [Arguments] ${key} ${expected_value} + ${env_response}= get request prh_session /actuator/env/${key} + should be equal as integers ${env_response.status_code} 200 + log ${env_response.content} + should be equal ${env_response.json()["property"]["value"]} ${expected_value} + +Set scheduled CBS updates interval + [Arguments] ${cbs_updates_interval} + Put key-value to consul cbs.updates-interval ${cbs_updates_interval} + Force PRH config refresh + +Set logging level in CBS + [Arguments] ${logger} ${level} + Put key-value to consul logging.level.${logger} ${level} + +Generate random value + ${some_random_value} evaluate random.randint(sys.maxint/10, sys.maxint) modules=random,sys + [Return] ${some_random_value} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/resources/prh_library.robot b/tests/dcaegen2/prh-testcases/resources/prh_library.robot index 1fae1005..3ed377c7 100644 --- a/tests/dcaegen2/prh-testcases/resources/prh_library.robot +++ b/tests/dcaegen2/prh-testcases/resources/prh_library.robot @@ -13,27 +13,29 @@ Verify PNF ready sent Add PNF entry in AAI ${pnf_entry} Set VES event in DMaaP ${ves_event} Wait Until Keyword Succeeds 10x 3000ms Check CBS ready - Wait Until Keyword Succeeds 10x 3000ms Check recorded PNF_READY notification ${expected_pnf_ready_event} + Wait Until Keyword Succeeds 10x 3000ms Check created PNF_READY notification ${expected_pnf_ready_event} Verify PNF ready sent and logical link created [Arguments] ${test_case_directory} ${expected_logical_link}= Get Data From File ${test_case_directory}/expected-logical-link.json Verify PNF ready sent ${test_case_directory} - Check recorded Logical Link ${expected_logical_link} + Check created Logical Link ${expected_logical_link} Verify event with missing required field is logged [Arguments] ${test_case_directory} ${invalid_ves_event}= Get Data From File ${test_case_directory}/invalid-ves-event.json Set VES event in DMaaP ${invalid_ves_event} - ${error_msg}= Create event parsing error ${invalid_ves_event} - Wait Until Keyword Succeeds 10x 3000ms Check PRH log ${error_msg} + Log Invalid ves event: ${invalid_ves_event} + ${notification}= Create invalid notification ${invalid_ves_event} + ${error_msg}= Set Variable Incorrect json, consumerDmaapModel can not be created: + Wait Until Keyword Succeeds 10x 3000ms Check PRH json log ${error_msg} ${notification} Verify incorrect JSON event is logged [Timeout] 60s [Arguments] ${test_case_directory} ${invalid_ves_event}= Get Data From File ${test_case_directory}/invalid-ves-event.json Set VES event in DMaaP ${invalid_ves_event} - Wait Until Keyword Succeeds 10x 3000ms Check PRH log |com.google.gson.JsonSyntaxException: Expected a com.google.gson.JsonArray + Check PRH log |WARN |Incorrect json, consumerDmaapModel can not be created: Verify missing AAI record is logged [Timeout] 100s @@ -42,8 +44,7 @@ Verify missing AAI record is logged ${ves_event}= Get Data From File ${test_case_directory}/ves-event.json Add PNF entry in AAI ${incorrect_aai_entry} Set VES event in DMaaP ${ves_event} - Wait Until Keyword Succeeds 10x 3000ms Check PRH log |AAIProducerTask exception has been registered - Wait Until Keyword Succeeds 10x 3000ms Check PRH log |Chain of tasks have been aborted due to errors in PRH workflow + Check PRH log Request failed for URL 'https://aai:3334/aai/v12/network/pnfs/pnf/NOK6061ZW8'. Response code: 404 Not Found Verify AAI not responding is logged [Timeout] 100s @@ -51,30 +52,56 @@ Verify AAI not responding is logged ${ves_event}= Get Data From File ${test_case_directory}/ves-event.json Ensure Container Is Exited aai_simulator Set VES event in DMaaP ${ves_event} - Wait Until Keyword Succeeds 10x 3000ms Check PRH log java.net.UnknownHostException: aai + Check PRH log connection timed out: aai Host is unreachable: aai Ensure Container Is Running aai_simulator +Verify PNF re registration + [Timeout] 500s + [Arguments] ${test_case_directory} + ${aai_entry}= Get Data From File ${test_case_directory}/aai-entry.json + Log PNF Re-registration: AAI entry for AAI Simulator ${aai_entry} + Add PNF entry in AAI ${aai_entry} + ${service_instance}= Get Data From File ${test_case_directory}/aai-entry-service-instance.json + Add service instance entry in AAI ${service_instance} + + ${ves_event}= Get Data From File ${test_case_directory}/ves-event.json + Set VES event in DMaaP ${ves_event} + ${expected_pnf_update_event}= Get Data From File ${test_case_directory}/expected-pnf-update-event.json + Wait Until Keyword Succeeds 10x 3000ms Check created PNF_UPDATE notification ${expected_pnf_update_event} + Check CBS ready - ${resp}= Get Request ${consul_setup_session} /v1/catalog/services + ${resp}= Get Request ${consul_session} /v1/catalog/services Should Be Equal As Strings ${resp.status_code} 200 Log Service Catalog response: ${resp.content} Dictionary Should Contain Key ${resp.json()} cbs |Consul service catalog should contain CBS entry -Check recorded PNF_READY notification +Check created PNF_READY notification [Arguments] ${expected_event_pnf_ready_in_dpaap} - ${resp}= Get Request ${dmaap_setup_session} /setup/pnf_ready headers=${suite_headers} + ${resp}= Get Request ${dmaap_session} /verify/pnf_ready headers=${suite_headers} Should Be Equal As Strings ${resp.status_code} 200 Should Be Equal As JSON ${resp.content} ${expected_event_pnf_ready_in_dpaap} -Check recorded Logical Link +Check created PNF_UPDATE notification + [Arguments] ${expected_event_pnf_update_in_dpaap} + ${resp}= Get Request ${dmaap_session} /verify/pnf_update headers=${suite_headers} + Log Response from DMaaP: ${resp.content} + Should Be Equal As Strings ${resp.status_code} 200 + #Should Be Equal As JSON ${resp.content} ${expected_event_pnf_ready_in_dpaap} + +Check created Logical Link [Arguments] ${expected_logical_link_in_aai} - ${resp}= Get Request ${aai_setup_session} /setup/created_logical_link headers=${suite_headers} + ${resp}= Get Request ${aai_session} /verify/created_logical_link headers=${suite_headers} Should Be Equal As Strings ${resp.status_code} 200 Should Be Equal As JSON ${resp.content} ${expected_logical_link_in_aai} Check PRH log - [Arguments] ${log_entry} - ${found}= Find log entry ${log_entry} + [Arguments] @{log_entries} + ${found}= Find one of log entryies ${log_entries} + Should Be True ${found} + +Check PRH json log + [Arguments] ${prefix} ${json} + ${found}= Find log json ${prefix} ${json} Should Be True ${found} Create event parsing error @@ -87,12 +114,19 @@ Add PNF entry in AAI [Arguments] ${pnf_entry} ${headers}= Create Dictionary Accept=application/json Content-Type=application/json Log AAI url ${AAI_SIMULATOR_SETUP_URL} - ${resp}= Put Request ${aai_setup_session} /setup/add_pnf_entry headers=${suite_headers} data=${pnf_entry} + ${resp}= Put Request ${aai_session} /setup/add_pnf_entry headers=${suite_headers} data=${pnf_entry} + Should Be Equal As Strings ${resp.status_code} 200 + +Add service instance entry in AAI + [Arguments] ${aai_service_instance} + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Log AAI url ${AAI_SIMULATOR_SETUP_URL} + ${resp}= Put Request ${aai_session} /setup/add_service_instace headers=${suite_headers} data=${aai_service_instance} Should Be Equal As Strings ${resp.status_code} 200 Set VES event in DMaaP [Arguments] ${ves_event} - ${resp}= Put Request ${dmaap_setup_session} /setup/ves_event headers=${suite_headers} data=${ves_event} + ${resp}= Put Request ${dmaap_session} /setup/ves_event headers=${suite_headers} data=${ves_event} Should Be Equal As Strings ${resp.status_code} 200 Should Be Equal As JSON @@ -103,26 +137,39 @@ Should Be Equal As JSON ${actual_json}= Evaluate json.loads("""${actual}""") json Should Be Equal ${actual_json} ${expected_json} -Create sessions - Create Session dmaap_setup_session ${DMAAP_SIMULATOR_SETUP_URL} - Set Suite Variable ${dmaap_setup_session} dmaap_setup_session - Create Session aai_setup_session ${AAI_SIMULATOR_SETUP_URL} - Set Suite Variable ${aai_setup_session} aai_setup_session - Create Session consul_setup_session ${CONSUL_SETUP_URL} - Set Suite Variable ${consul_setup_session} consul_setup_session - Reset Simulators Reset AAI simulator Reset DMaaP simulator Reset AAI simulator - ${resp}= Post Request ${aai_setup_session} /reset + ${resp}= Post Request ${aai_session} /reset Should Be Equal As Strings ${resp.status_code} 200 Reset DMaaP simulator - ${resp}= Post Request ${dmaap_setup_session} /reset + ${resp}= Post Request ${dmaap_session} /reset Should Be Equal As Strings ${resp.status_code} 200 -Create headers - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json - Set Suite Variable ${suite_headers} ${headers} + +Verify change logging level + ${logger}= Set Variable org.onap.dcaegen2.services.prh.controllers.AppInfoController + Change logging level ${logger} TRACE + Verify logging level ${logger} TRACE + Verify logs with heartbeat + [Teardown] Change logging level ${logger} INFO + +Change logging level + [Arguments] ${logger} ${log_level} + ${request_body}= Create Dictionary configuredLevel=${log_level} + ${resp}= Post Request prh_session /actuator/loggers/${logger} json=${request_body} + Should Be Equal As Integers ${resp.status_code} 204 + +Verify logging level + [Arguments] ${logger} ${expected_log_level} + ${resp}= Get Request prh_session /actuator/loggers/${logger} + Should Be Equal As Integers ${resp.status_code} 200 + Log ${resp.content} + Should Be Equal As Strings ${resp.json()["configuredLevel"]} ${expected_log_level} ignore_case=true + +Verify logs with heartbeat + Get Request prh_session /heartbeat + Check PRH log Heartbeat request received \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot b/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot new file mode 100644 index 00000000..2fadbbae --- /dev/null +++ b/tests/dcaegen2/prh-testcases/resources/prh_sessions.robot @@ -0,0 +1,25 @@ +*** Settings *** +Library RequestsLibrary +Library Collections + +*** Variables *** +${DMAAP_SIMULATOR_SETUP_URL} http://${DMAAP_SIMULATOR_SETUP} +${AAI_SIMULATOR_SETUP_URL} http://${AAI_SIMULATOR_SETUP} +${CONSUL_SETUP_URL} http://${CONSUL_SETUP} +${PRH_SETUP_URL} http://${PRH_SETUP} + +*** Keywords *** +Create sessions + Create Session dmaap_session ${DMAAP_SIMULATOR_SETUP_URL} + Set Suite Variable ${dmaap_session} dmaap_session + Create Session aai_session ${AAI_SIMULATOR_SETUP_URL} + Set Suite Variable ${aai_session} aai_session + Create Session consul_session ${CONSUL_SETUP_URL} + Set Suite Variable ${consul_session} consul_session + Create Session prh_session ${PRH_SETUP_URL} + Set Suite Variable ${prh_session} prh_session + + +Create headers + ${headers}= Create Dictionary Accept=application/json Content-Type=application/json + Set Suite Variable ${suite_headers} ${headers} \ No newline at end of file diff --git a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py index ff368034..f6d3b1f6 100644 --- a/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py +++ b/tests/dcaegen2/prh-testcases/resources/simulator/AAI.py @@ -22,6 +22,7 @@ AAI_RESOURCE_NOT_FOUND = b'{}' pnf_entries = {} patched_pnf = AAI_RESOURCE_NOT_FOUND created_logical_link = AAI_RESOURCE_NOT_FOUND +service_instance = AAI_RESOURCE_NOT_FOUND class AAISetup(BaseHTTPRequestHandler): @@ -30,7 +31,7 @@ class AAISetup(BaseHTTPRequestHandler): if re.search('/setup/patched_pnf', self.path): httpServerLib.set_response_200_ok(self, payload = patched_pnf) logger.debug('AAISetup GET /setup/patched_pnf -> 200 OK') - elif re.search('/setup/created_logical_link', self.path): + elif re.search('/verify/created_logical_link', self.path): httpServerLib.set_response_200_ok(self, payload = created_logical_link) logger.debug('AAISetup GET /setup/created_logical_link -> 200 OK') else: @@ -53,6 +54,13 @@ class AAISetup(BaseHTTPRequestHandler): httpServerLib.set_response_200_ok(self) logger.debug('AAISetup PUT /setup/add_pnf_entry [' + pnf_name + '] -> 200 OK') + elif re.search('/setup/add_service_instace', self.path): + service_instance_payload = httpServerLib.get_payload(self) + global service_instance + service_instance = json.loads(service_instance_payload) + httpServerLib.set_response_200_ok(self) + logger.debug('AAISetup PUT /setup/add_service_instace -> 200 OK') + elif re.search('/set_pnf', self.path): pnf_name = httpServerLib.get_payload(self).decode() pnf_entries[pnf_name] = AAI_RESOURCE_NOT_FOUND @@ -70,9 +78,11 @@ class AAISetup(BaseHTTPRequestHandler): global pnf_entries global patched_pnf global created_logical_link + global service_instance pnf_entries = {} patched_pnf = AAI_RESOURCE_NOT_FOUND created_logical_link = AAI_RESOURCE_NOT_FOUND + service_instance = AAI_RESOURCE_NOT_FOUND httpServerLib.set_response_200_ok(self) logger.debug('AAISetup POST /reset -> 200 OK') @@ -95,6 +105,9 @@ class AAIHandler(BaseHTTPRequestHandler): else: httpServerLib.set_response_404_not_found(self) logger.info('AAIHandler GET /aai/v12/network/pnfs/pnf/' + pnf_name + ' -> 404 Not found, actual entries: ' + str(pnf_entries.keys())) + elif re.search('aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service', self.path): + httpServerLib.set_response_200_ok(self, payload = service_instance) + logger.debug('AAIHandler GET aai/v12/business/customers/customer/Demonstration/service-subscriptions/service-subscription/vFW/service-instances/service-instance/bbs_service -> 200 OK') else: httpServerLib.set_response_404_not_found(self) logger.info('AAIHandler GET ' + self.path + ' -> 404 Not found') @@ -142,7 +155,6 @@ class AAIHandler(BaseHTTPRequestHandler): def _main_(handler_class=AAIHandler, protocol="HTTP/1.0"): handler_class.protocol_version = protocol - httpServerLib.start_http_endpoint(3333, AAIHandler) httpServerLib.start_https_endpoint(3334, AAIHandler, keyfile="certs/aai.key", certfile="certs/aai.crt", ca_certs="certs/root.crt") httpServerLib.start_http_endpoint(3335, AAISetup) while 1: diff --git a/tests/dcaegen2/prh-testcases/resources/simulator/DMaaP.py b/tests/dcaegen2/prh-testcases/resources/simulator/DMaaP.py index ce9858d6..5ec601f6 100644 --- a/tests/dcaegen2/prh-testcases/resources/simulator/DMaaP.py +++ b/tests/dcaegen2/prh-testcases/resources/simulator/DMaaP.py @@ -2,6 +2,7 @@ import logging import re import sys import time +import json from http.server import BaseHTTPRequestHandler import httpServerLib @@ -17,17 +18,22 @@ logger = logging.getLogger('DMaaP-simulator-logger') DMAAP_EMPTY = b'[]' -ves_event = DMAAP_EMPTY -captured_prh_event = DMAAP_EMPTY +event_ves = DMAAP_EMPTY +event_pnf_ready = DMAAP_EMPTY +event_pnf_update = DMAAP_EMPTY class DmaapSetup(BaseHTTPRequestHandler): def do_GET(self): try: - if re.search('/setup/pnf_ready', self.path): - global captured_prh_event - httpServerLib.set_response_200_ok(self, payload = captured_prh_event) - logger.debug('DmaapSetup GET /setup/pnf_ready -> 200 OK') + if re.search('/verify/pnf_ready', self.path): + global event_pnf_ready + httpServerLib.set_response_200_ok(self, payload = event_pnf_ready) + logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK') + elif re.search('/verify/pnf_update', self.path): + global event_pnf_update + httpServerLib.set_response_200_ok(self, payload = event_pnf_update) + logger.debug('DmaapSetup GET /verify/pnf_ready -> 200 OK') else: httpServerLib.set_response_404_not_found(self) logger.info('DmaapSetup GET ' + self.path + ' -> 404 Not found') @@ -38,10 +44,10 @@ class DmaapSetup(BaseHTTPRequestHandler): def do_PUT(self): try: if re.search('/setup/ves_event', self.path): - global ves_event - ves_event = httpServerLib.get_payload(self) + global event_ves + event_ves = httpServerLib.get_payload(self) httpServerLib.set_response_200_ok(self) - logger.debug('DmaapSetup PUT /setup/ves_event -> 200 OK, content: ' + ves_event.decode("utf-8")) + logger.debug('DmaapSetup PUT /setup/ves_event -> 200 OK, content: ' + event_ves.decode("utf-8")) else: httpServerLib.set_response_404_not_found(self) logger.info('DmaapSetup PUT ' + self.path + ' -> 404 Not found') @@ -52,10 +58,12 @@ class DmaapSetup(BaseHTTPRequestHandler): def do_POST(self): try: if re.search('/reset', self.path): - global ves_event - global captured_prh_event - ves_event = DMAAP_EMPTY - captured_prh_event = DMAAP_EMPTY + global event_ves + global event_pnf_ready + global event_pnf_update + event_ves = DMAAP_EMPTY + event_pnf_ready = DMAAP_EMPTY + event_pnf_update = DMAAP_EMPTY httpServerLib.set_response_200_ok(self) logger.debug('DmaapSetup POST /reset -> 200 OK') else: @@ -70,11 +78,17 @@ class DMaaPHandler(BaseHTTPRequestHandler): def do_POST(self): try: if re.search('/events/unauthenticated.PNF_READY', self.path): - global captured_prh_event - captured_prh_event = httpServerLib.get_payload(self) + global event_pnf_ready + event_pnf_ready = httpServerLib.get_payload(self) httpServerLib.set_response_200_ok(self) logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: ' - + captured_prh_event.decode("utf-8")) + + event_pnf_ready.decode("utf-8")) + elif re.search('/events/unauthenticated.PNF_UPDATE', self.path): + global event_pnf_update + event_pnf_update = httpServerLib.get_payload(self) + httpServerLib.set_response_200_ok(self) + logger.debug('DMaaPHandler POST /events/unauthenticated.PNF_READY -> 200, content: ' + + event_pnf_update.decode("utf-8")) else: httpServerLib.set_response_404_not_found(self) logger.info('DMaaPHandler POST ' + self.path + ' -> 404 Not found') @@ -85,12 +99,12 @@ class DMaaPHandler(BaseHTTPRequestHandler): def do_GET(self): try: if re.search('/events/unauthenticated.VES_PNFREG_OUTPUT/OpenDCAE-c12/c12', self.path): - global ves_event - httpServerLib.set_response_200_ok(self, payload = ves_event) + global event_ves + httpServerLib.set_response_200_ok(self, payload=self.pack_event_json_as_quoted_string_into_array(event_ves)) logger.debug( 'DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200, content: ' - + ves_event.decode("utf-8")) - ves_event = DMAAP_EMPTY + + event_ves.decode("utf-8")) + event_ves = DMAAP_EMPTY logger.debug('DMaaPHandler GET /events/unauthenticated.VES_PNFREG_OUTPUT/OpenDcae-c12/c12 -> 200') else: httpServerLib.set_response_404_not_found(self) @@ -99,9 +113,18 @@ class DMaaPHandler(BaseHTTPRequestHandler): logger.error(e) httpServerLib.set_response_500_server_error(self) + def pack_event_json_as_quoted_string_into_array(self, event): + if event == DMAAP_EMPTY: + return DMAAP_EMPTY + else: + decoded = event_ves.decode("utf-8") + packed = '[' + json.dumps(decoded) + ']' + logger.info("prepared response: " + packed) + return packed.encode() + + def _main_(handler_class=DMaaPHandler, protocol="HTTP/1.0"): handler_class.protocol_version = protocol - httpServerLib.start_http_endpoint(2222, DMaaPHandler) httpServerLib.start_https_endpoint(2223, DMaaPHandler, keyfile="certs/dmaap-mr.key", certfile="certs/dmaap-mr.crt", ca_certs="certs/root.crt") httpServerLib.start_http_endpoint(2224, DmaapSetup) while 1: diff --git a/tests/integration/vCPE/test1.robot b/tests/integration/vCPE/test1.robot index 1dd7c1bb..d07bf6e4 100644 --- a/tests/integration/vCPE/test1.robot +++ b/tests/integration/vCPE/test1.robot @@ -4,7 +4,7 @@ Suite Teardown Suite Teardown Library OperatingSystem Library RequestsLibrary Library Process -Library eteutils/UUID.py +Library ONAPLibrary.Utilities *** Variables *** ${GLOBAL_APPLICATION_ID} csit-vCPE @@ -15,7 +15,7 @@ ${GLOBAL_MSO_PASSWORD} password1$ SO ServiceInstance health check ${auth}= Create List ${GLOBAL_MSO_USERNAME} ${GLOBAL_MSO_PASSWORD} ${session}= Create Session so http://${SO_IP}:8080 - ${uuid}= Generate UUID + ${uuid}= Generate UUID4 ${headers}= Create Dictionary Accept=text/html Content-Type=text/html X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Get Request so /ecomp/mso/infra/globalhealthcheck headers=${headers} &{headers}= Create Dictionary Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA== Content-Type=application/json Accept=application/json diff --git a/tests/optf-cmso/cmso/attlibs/CurlLibrary.py b/tests/optf-cmso/cmso/attlibs/CurlLibrary.py deleted file mode 100644 index 44c62293..00000000 --- a/tests/optf-cmso/cmso/attlibs/CurlLibrary.py +++ /dev/null @@ -1,13 +0,0 @@ -from curl import Curl - -class CurlLibrary: - - - def get_zip(self, url, filename): - fp = open(filename, "wb") - c = Curl() - c.get(url, ) - c.set_option(c.WRITEDATA, fp) - c.perform() - c.close() - fp.close() \ No newline at end of file diff --git a/tests/optf-cmso/cmso/attlibs/HTTPUtils.py b/tests/optf-cmso/cmso/attlibs/HTTPUtils.py deleted file mode 100644 index f9d380c9..00000000 --- a/tests/optf-cmso/cmso/attlibs/HTTPUtils.py +++ /dev/null @@ -1,21 +0,0 @@ -import urllib -from selenium import webdriver -import base64 - -class HTTPUtils: - """HTTPUtils is common resource for simple http helper keywords.""" - - def url_encode_string(self, barestring): - """URL Encode String takes in a string and converts into 'percent-encoded' string""" - return urllib.quote_plus(barestring) - - def ff_profile(self): - fp =webdriver.FirefoxProfile() - fp.set_preference("dom.max_script_run_time",120) - fp.update_preferences() - return fp.path - - def b64_encode(self, instring): - "" - return base64.b64encode(instring) - diff --git a/tests/optf-cmso/cmso/attlibs/JSONUtils.py b/tests/optf-cmso/cmso/attlibs/JSONUtils.py deleted file mode 100644 index 5df1e5c7..00000000 --- a/tests/optf-cmso/cmso/attlibs/JSONUtils.py +++ /dev/null @@ -1,37 +0,0 @@ -import json - -from deepdiff import DeepDiff - -class JSONUtils: - """JSONUtils is common resource for simple json helper keywords.""" - - def json_equals(self, left, right): - """JSON Equals takes in two strings or json objects, converts them into json if needed and then compares them, returning if they are equal or not.""" - if isinstance(left, basestring): - left_json = json.loads(left); - else: - left_json = left; - if isinstance(right, basestring): - right_json = json.loads(right); - else: - right_json = right; - - ddiff = DeepDiff(left_json, right_json, ignore_order=True); - if ddiff == {}: - return True; - else: - return False; - - def json_escape(self, jsonObject): - jsonstr = json.dumps(jsonObject) - outstr = jsonstr.replace('"', '\\"').replace('\n', '\\n') - return outstr - - def make_list_into_dict(self, listOfDicts, key): - """ Converts a list of dicts that contains a field that has a unique key into a dict of dicts """ - d = {} - if isinstance(listOfDicts, list): - for thisDict in listOfDicts: - v = thisDict[key] - d[v] = thisDict - return d \ No newline at end of file diff --git a/tests/optf-cmso/cmso/attlibs/OSUtils.py b/tests/optf-cmso/cmso/attlibs/OSUtils.py deleted file mode 100644 index 78968f03..00000000 --- a/tests/optf-cmso/cmso/attlibs/OSUtils.py +++ /dev/null @@ -1,14 +0,0 @@ -from sys import platform - -class OSUtils: - """ Utilities useful for constructing OpenStack HEAT requests """ - - def get_normalized_os(self): - os = platform - if platform == "linux" or platform == "linux2": - os = 'linux64' - elif platform == "darwin": - os = 'mac64' - elif platform == "win32": - os = platform - return os diff --git a/tests/optf-cmso/cmso/attlibs/RequestsClientCert.py b/tests/optf-cmso/cmso/attlibs/RequestsClientCert.py deleted file mode 100644 index e1fd66ff..00000000 --- a/tests/optf-cmso/cmso/attlibs/RequestsClientCert.py +++ /dev/null @@ -1,7 +0,0 @@ - -class RequestsClientCert: - """RequestsClientCert allows adding a client cert to the Requests Robot Library.""" - - def add_client_cert(self, session, cert): - """Add Client Cert takes in a requests session object and a string path to the cert""" - session.cert = cert \ No newline at end of file diff --git a/tests/optf-cmso/cmso/attlibs/StringTemplater.py b/tests/optf-cmso/cmso/attlibs/StringTemplater.py deleted file mode 100644 index 680600fd..00000000 --- a/tests/optf-cmso/cmso/attlibs/StringTemplater.py +++ /dev/null @@ -1,8 +0,0 @@ -from string import Template - -class StringTemplater: - """StringTemplater is common resource for templating with strings.""" - - def template_string(self, template, values): - """Template String takes in a string and its values and converts it using the string.Template class""" - return Template(template).substitute(values) \ No newline at end of file diff --git a/tests/optf-cmso/cmso/attlibs/UID.py b/tests/optf-cmso/cmso/attlibs/UID.py deleted file mode 100644 index 43748096..00000000 --- a/tests/optf-cmso/cmso/attlibs/UID.py +++ /dev/null @@ -1,8 +0,0 @@ -import uuid - -class UID: - """UUID is a simple library that generates a uuid""" - - def generate_UUID(self): - """generate a uuid""" - return uuid.uuid4() \ No newline at end of file diff --git a/tests/optf-cmso/cmso/resources/approval_requests.robot b/tests/optf-cmso/cmso/resources/approval_requests.robot deleted file mode 100644 index 9de1887c..00000000 --- a/tests/optf-cmso/cmso/resources/approval_requests.robot +++ /dev/null @@ -1,38 +0,0 @@ -*** Settings *** -Documentation Scheduler keywords - -#Library StringTemplater -#Library UUID -Library ../attlibs/UID.py -Library ../attlibs/StringTemplater.py -Library DateTime -Library Collections - -Resource scheduler_common.robot -Resource json_templater.robot - -*** Variables **** -${TEMPLATES} assets/templates/changemanagement -${UTC} %Y-%m-%dT%H:%M:%SZ - -*** Keywords *** -Wait For Pending Approval - [Documentation] Gets the schedule identified by the uuid and checks if it is in the Pending Approval state - [Arguments] ${uuid} ${status}=Pending Approval - ${resp}= Get Change Management auth schedules/${uuid} - ${json}= Catenate ${resp.json()} - Dictionary Should Contain Item ${resp.json()} status ${status} - -Send Tier2 Approval - [Documentation] Sends an approval post request for the given schedule using the UUID and User given and checks that request worked - [Arguments] ${uuid} ${user} ${status} - ${approval}= Create Dictionary approvalUserId=${user} approvalType=Tier 2 approvalStatus=${status} - ${resp}= Post Change Management auth schedules/${uuid}/approvals data=${approval} - Should Be Equal As Strings ${resp.status_code} 204 - - -Send Invalid Approval - [Arguments] ${uuid} ${user} - ${approval}= Create Dictionary approvalUserId=${user} approvalType=Tier 3 approvalStatus=Accepted - Run Keyword and Expect Error 400 Post Change Management auth schedules/${uuid}/approvals data=${approval} - diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyDomain.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyDomain.json.template deleted file mode 100644 index 1aea5ef7..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyDomain.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleID.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleID.json.template deleted file mode 100644 index 2733b076..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleID.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleName.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleName.json.template deleted file mode 100644 index 9d827bd5..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyScheduleName.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyUserID.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyUserID.json.template deleted file mode 100644 index d779f2cb..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowEmptyUserID.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectPolicyId.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectPolicyId.json.template deleted file mode 100644 index 061b6b7f..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectPolicyId.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "string", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectWorkflow.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectWorkflow.json.template deleted file mode 100644 index 87ab8f3a..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowIncorrectWorkflow.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Not A Workflow" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNegativeNormalDurationInSeconds.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNegativeNormalDurationInSeconds.json.template deleted file mode 100644 index 633ce466..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNegativeNormalDurationInSeconds.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : -5, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoEndTime.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoEndTime.json.template deleted file mode 100644 index 62dae5bd..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoEndTime.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoNodeName.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoNodeName.json.template deleted file mode 100644 index 22fc89ac..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoNodeName.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoStartTime.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoStartTime.json.template deleted file mode 100644 index 4f1f25b8..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowNoStartTime.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowSwitchedTime.json.template b/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowSwitchedTime.json.template deleted file mode 100644 index a7f19d42..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/FailureCasesChangeManagement/OneVnfOneChangeWindowSwitchedTime.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO.TimeLimitAndVerticalTopology", - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "ZRDM1MMSC04${testid}" - ], - "changeWindow" : [{ - "startTime" : "${end_time1}", - "endTime" : "${start_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyAdditionalDuration.json.template b/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyAdditionalDuration.json.template deleted file mode 100644 index 5c9e0a32..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyAdditionalDuration.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "VNFName1${testid}", - "VNFName2${testid}", - "VNFName3${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyDomain.json.template b/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyDomain.json.template deleted file mode 100644 index 19c1d870..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyDomain.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "VNFName1${testid}", - "VNFName2${testid}", - "VNFName3${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyScheduleId.json.template b/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyScheduleId.json.template deleted file mode 100644 index ab92d185..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyScheduleId.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "VNFName1${testid}", - "VNFName2${testid}", - "VNFName3${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyUserId.json.template b/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyUserId.json.template deleted file mode 100644 index 9de749c6..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/MutipleVNFImmediateFailureCases/MultipleVnfImmediateEmptyUserId.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "groupId" : "", - "node" : [ - "VNFName1${testid}", - "VNFName2${testid}", - "VNFName3${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyDomain.json.template b/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyDomain.json.template deleted file mode 100644 index 8d2f09fe..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyDomain.json.template +++ /dev/null @@ -1,20 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "node" : [ - "ZRDM1MMSC04${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleId.json.template b/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleId.json.template deleted file mode 100644 index b363a27e..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleId.json.template +++ /dev/null @@ -1,20 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "node" : [ - "ZRDM1MMSC04${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleName.json.template b/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleName.json.template deleted file mode 100644 index 4bb70ec2..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyScheduleName.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - - "vnfDetails" : [{ - "node" : [ - "ZRDM1MMSC04${testid}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptySchedulingInfo.json.template b/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptySchedulingInfo.json.template deleted file mode 100644 index 461f1662..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptySchedulingInfo.json.template +++ /dev/null @@ -1,14 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyUserId.json.template b/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyUserId.json.template deleted file mode 100644 index a2a4ba4f..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/OneVNFImmediateFailureCases/OneVnfImmediateEmptyUserId.json.template +++ /dev/null @@ -1,14 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData1.json.template b/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData1.json.template deleted file mode 100644 index 73c2e341..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData1.json.template +++ /dev/null @@ -1,26 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}", - "plans" : "Run ${workflow}", - "question.000000000000001" : "Yes", - "domainName1" : "domainValue1" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group1", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData2.json.template b/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData2.json.template deleted file mode 100644 index 0f021168..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData2.json.template +++ /dev/null @@ -1,27 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}", - "plans" : "Run ${workflow}", - "question.000000000000001" : "Yes", - "domainName1" : "domainValue1", - "domainName2" : "domainValue2" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group1", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData3.json.template b/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData3.json.template deleted file mode 100644 index dc64483e..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/SearchSchedulerDetails/OneVnfImmediate_domainData3.json.template +++ /dev/null @@ -1,29 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}", - "plans" : "Run ${workflow}", - "question.000000000000001" : "Yes", - "domainName1" : "domainValue1", - "domainName2" : "domainValue2", - "domainName3" : "domainValue3" - - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group1", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/MultipleVnfImmediate.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/MultipleVnfImmediate.json.template deleted file mode 100644 index 542e19e2..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/MultipleVnfImmediate.json.template +++ /dev/null @@ -1,24 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}", - "${node2}", - "${node3}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNFsOneChangeWindow.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNFsOneChangeWindow.json.template deleted file mode 100644 index 9bfd3d2d..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNFsOneChangeWindow.json.template +++ /dev/null @@ -1,32 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_pserver", - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}", - "${node2}", - "${node3}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNSsTwoChangeWindows.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNSsTwoChangeWindows.json.template deleted file mode 100644 index a3cef8a9..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneGroupMultipleVNSsTwoChangeWindows.json.template +++ /dev/null @@ -1,37 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_pserver", - "vnfDetails" : [{ - "groupId" : "Group1", - "node" : [ - "${node1}", - "${node2}", - "${node3}", - "${node4}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - },{ - "startTime" : "${start_time2}", - "endTime" : "${end_time2}" - } - ] - } - ] - } -} - diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediate.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediate.json.template deleted file mode 100644 index c108c152..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediate.json.template +++ /dev/null @@ -1,25 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}", - "plans" : "Run ${workflow}", - "question.000000000000001" : "Yes" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group1", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateIncorrectWorkflow.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateIncorrectWorkflow.json.template deleted file mode 100644 index e91c653c..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateIncorrectWorkflow.json.template +++ /dev/null @@ -1,21 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Not A Workflow" - } - ], - "schedulingInfo" : { - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateReplaceVNFInfra.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateReplaceVNFInfra.json.template deleted file mode 100644 index d896a62e..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfImmediateReplaceVNFInfra.json.template +++ /dev/null @@ -1,23 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "ReplaceVnfInfra" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindow.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindow.json.template deleted file mode 100644 index 93bb2ac2..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindow.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "${workflow}" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_pserver", - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackData.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackData.json.template deleted file mode 100644 index e6e584b7..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackData.json.template +++ /dev/null @@ -1,25 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "", - "WorkflowName" : "Build Software Upgrade for vNFs" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_v2_split_1", - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackURL.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackURL.json.template deleted file mode 100644 index 57634d61..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowEmptyCallbackURL.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Build Software Upgrade for vNFs" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_v2_split_1", - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowReplaceVNFInfra.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowReplaceVNFInfra.json.template deleted file mode 100644 index e5d62bf8..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/OneVnfOneChangeWindowReplaceVNFInfra.json.template +++ /dev/null @@ -1,30 +0,0 @@ -{ - "domain" : "ChangeManagement", - "scheduleId" : "${uuid}", - "scheduleName" : "${uuid}", - "userId" : "${userId}", - "domainData" : [{ - "CallbackUrl" : "${callbackUrl}", - "CallbackData" : "${callbackData}", - "WorkflowName" : "Replace" - } - ], - "schedulingInfo" : { - "normalDurationInSeconds" : 100, - "additionalDurationInSeconds" : 10, - "concurrencyLimit" : 10, - "policyId" : "SNIRO_CM.TimeLimitAndVerticalTopology_v2_split_1", - "vnfDetails" : [{ - "groupId" : "group", - "node" : [ - "${node1}" - ], - "changeWindow" : [{ - "startTime" : "${start_time1}", - "endTime" : "${end_time1}" - } - ] - } - ] - } -} diff --git a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/VidCallbackData.json.template b/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/VidCallbackData.json.template deleted file mode 100644 index 177b55af..00000000 --- a/tests/optf-cmso/cmso/resources/assets/templates/changemanagement/VidCallbackData.json.template +++ /dev/null @@ -1,40 +0,0 @@ -{ - "requestType" : "Update", - "requestDetails" : [{ - "vnfName" : "mdns_2017_1011_oh22u_20171103", - "vnfInstanceId" : "b8d99523-1e83-4fd1-b42f-849361ef7024", - "modelInfo" : { - "modelType" : "vnf", - "modelInvariantId" : "93e16072-715a-42ef-9d0a-080052d6b716", - "modelVersionId" : "4ec07a2d-6bb5-4373-8ed6-4bc7ac1246fd", - "modelName" : "mdns_2017_1011_oh22u_20171103", - "modelCustomizationId" : "1779a999-ea17-4f31-98e9-75b6fbdd0acb" - }, - "cloudConfiguration" : { - "lcpCloudRegionId" : "mdt1", - "tenantId" : "88a6ca3ee0394ade9403f075db23167e" - }, - "requestInfo" : { - "source" : "VID", - "suppressRollback" : false, - "requestorId" : "az2016" - }, - "relatedInstanceList" : [{ - "relatedInstance" : { - "instanceId" : "54ba3628-9ee5-4b32-8a2a-3abf001bed4e", - "modelInfo" : { - "modelType" : "service", - "modelInvariantId" : "e58733ef-43cb-4b6b-b641-922078b6c88b", - "modelVersionId" : "4ec07a2d-6bb5-4373-8ed6-4bc7ac1246fd", - "modelName" : "mdns_2017_1011", - "modelVersion" : "4.0" - } - } - } - ], - "requestParameters" : { - "usePreload" : true - } - } - ] -} diff --git a/tests/optf-cmso/cmso/resources/browser_setup.robot b/tests/optf-cmso/cmso/resources/browser_setup.robot deleted file mode 100644 index 032759ea..00000000 --- a/tests/optf-cmso/cmso/resources/browser_setup.robot +++ /dev/null @@ -1,50 +0,0 @@ -*** Settings *** -Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps -Library Collections -Library OSUtils -Library OperatingSystem -Library Selenium2Library - -*** Variables *** -${CHROME_DRIVER_WIN32_PATH} drivers/win32 -${CHROME_DRIVER_MAC64_PATH} drivers/mac64 -${CHROME_DRIVER_LINUX64_PATH} drivers/linux64 -${CHROME_DRIVER_WIN32} ${CHROME_DRIVER_WIN32_PATH}/chromedriver.exe -${CHROME_DRIVER_MAC64} ${CHROME_DRIVER_MAC64_PATH} /chromedriver -${CHROME_DRIVER_LINUX64} ${CHROME_DRIVER_LINUX64_PATH}/chromedriver - -*** Keywords *** -Setup Browser - [Documentation] Sets up browser based upon the value of - [Arguments] ${browser} - Run Keyword If '${browser}' == 'firefox' Setup Browser Firefox - Run Keyword If '${browser}' == 'chrome' Setup Browser Chrome - Log Running with ${browser} - -Setup Browser Firefox - ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.FIREFOX sys, selenium.webdriver - Set To Dictionary ${dc} elementScrollBehavior 1 - Create Webdriver Firefox desired_capabilities=${dc} - ##Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc} - - - Setup Browser Chrome - ${os}= Get Normalized Os - Log Normalized OS=${os} - Run Keyword If '${os}' == 'win32' Append To Environment Variable PATH ${CHROME_DRIVER_WIN32_PATH} - ##Run Keyword If '${os}' == 'win32' Set Environment Variable webdriver.chrome.driver ${CHROME_DRIVER_WIN32} - Run Keyword If '${os}' == 'mac64' Append To Environment Variable PATH ${CHROME_DRIVER_MAC64_PATH} - #Run Keyword If '${os}' == 'mac64' Set Environment Variable webdriver.chrome.driver ${CHROME_DRIVER_MAC64} - Run Keyword If '${os}' == 'linux64' Append To Environment Variable PATH ${CHROME_DRIVER_LINUX64_PATH} - #Run Keyword if '${os}' == 'linux64' Set Environment Variable webdriver.chrome.driver ${CHROME_DRIVER_LINUX64} - ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys - Call Method ${chrome options} add_argument no-sandbox - ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver - Set To Dictionary ${dc} elementScrollBehavior 1 - Create Webdriver Chrome chrome_options=${chrome_options} desired_capabilities=${dc} - #Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc} - -Handle ATT Speed Bump - [Documentation] Handle AT&T Speed Bump when accessing Rackspace UI from AT&T network - ${test} ${value}= Run keyword and ignore error Title Should Be Notice - Uncategorized Site - Run keyword If '${test}' == 'PASS' Click Element xpath=//a[contains(@href, 'accepted-Notify-Uncategorized')] \ No newline at end of file diff --git a/tests/optf-cmso/cmso/resources/change_management_ete.robot b/tests/optf-cmso/cmso/resources/change_management_ete.robot deleted file mode 100644 index 2b1ff540..00000000 --- a/tests/optf-cmso/cmso/resources/change_management_ete.robot +++ /dev/null @@ -1,103 +0,0 @@ -*** Settings *** -Documentation Creates VID VNF Instance - -#Library StringTemplater -#Library UUID -Library ../attlibs/UID.py -Library ../attlibs/StringTemplater.py -Library Collections -Library SSHLibrary - -Resource scheduler_common.robot -Resource json_templater.robot -Resource create_schedule.robot -Resource approval_requests.robot - -*** Variables **** -${TEMPLATES} /assets/templates - -*** Keywords *** -Change Management Template - [Arguments] ${request_file} ${workflow} ${minutesFromNow}=1 - ${template_folder}= Catenate ${TEMPLATES}/changemanagement - ${uuid}= Generate UUID - ${resp}= Create Schedule ${uuid} ${request_file} ${template_folder} workflow=${workflow} minutesFromNow=${minutesFromNow} - Should Be Equal as Strings ${resp.status_code} 202 - Validate Acknowledgment Response Headers ${resp} - Wait Until Keyword Succeeds 600s 30s Wait For Pending Approval ${uuid} - Send Tier2 Approval ${uuid} jf9860 Accepted - ${resp}= Get Change Management auth schedules/${uuid} - Wait Until Keyword Succeeds 120s 30s Wait For All VNFs Reach Status Completed ${uuid} - Wait Until Keyword Succeeds 120s 30s Wait for Schedule to Complete Completed ${uuid} - ${reps}= Delete Change Management auth schedules/${uuid} - -Change Management Immediate Template - [Arguments] ${request_file} ${workflow} - ${template_folder}= Catenate ${TEMPLATES}/changemanagement - ${uuid}= Generate UUID - ${resp}= Create Schedule ${uuid} ${request_file} ${template_folder} workflow=${workflow} - Should Be Equal as Strings ${resp.status_code} 202 - Validate Acknowledgment Response Headers ${resp} - Wait Until Keyword Succeeds 120s 30s Wait For All VNFs Reach Status Completed ${uuid} - Wait Until Keyword Succeeds 120s 30s Wait for Schedule to Complete Completed ${uuid} - ${reps}= Delete Change Management auth schedules/${uuid} - -Wait For All VNFs Reach Status - [Arguments] ${status} ${uuid} - ${resp}= Get Change Management auth schedules/scheduleDetails?request.scheduleId=${uuid} - : for ${vnf} in @{resp.json()} - \ Dictionary Should Contain Item ${vnf} status Completed - -Wait for Schedule to Complete - [Arguments] ${status} ${uuid} - ${resp}= Get Change Management auth schedules/${uuid} - Dictionary Should Contain Item ${resp.json()} status Completed - -Create and Approve - [Arguments] ${request_file} ${workflow} ${minutesFromNow}=5 - ${template_folder}= Catenate ${TEMPLATES}/changemanagement - ${uuid}= Generate UUID - ${resp}= Create Schedule ${uuid} ${request_file} ${template_folder} workflow=${workflow} minutesFromNow=${minutesFromNow} - Should Be Equal as Strings ${resp.status_code} 202 - Validate Acknowledgment Response Headers ${resp} - Wait Until Keyword Succeeds 300s 5s Wait For Pending Approval ${uuid} - Send Tier2 Approval ${uuid} jf9860 Accepted - -Change Management Cancel Template - [Arguments] ${request_file} ${workflow} ${minutesFromNow}=5 - ${template_folder}= Catenate ${TEMPLATES}/changemanagement - ${uuid}= Generate UUID - ${resp}= Create Schedule ${uuid} ${request_file} ${template_folder} workflow=${workflow} minutesFromNow=${minutesFromNow} - Should Be Equal as Strings ${resp.status_code} 202 - Validate Acknowledgment Response Headers ${resp} - Wait Until Keyword Succeeds 600s 5s Wait For Pending Approval ${uuid} - Send Tier2 Approval ${uuid} jf9860 Accepted - ${resp}= Delete Change Management auth schedules/${uuid} - Should Be Equal as Strings ${resp.status_code} 204 - Log ${resp.headers} - -Validate Acknowledgment Response Headers - [Arguments] ${Response} - Log ${Response.headers} - ${act_headers_keys} = Get Dictionary Keys ${Response.headers} - Dictionary Should Contain Key ${Response.headers} X-LatestVersion - Dictionary Should Contain Key ${Response.headers} X-MinorVersion - Dictionary Should Contain Key ${Response.headers} X-PatchVersion - - - -Change Management Immediate Template Query Data - [Arguments] ${request_file} ${workflow} - ${template_folder}= Catenate ${TEMPLATES}/SearchSchedulerDetails - ${uuid}= Generate UUID - ${resp}= Create Schedule ${uuid} ${request_file} ${template_folder} workflow=${workflow} - Should Be Equal as Strings ${resp.status_code} 202 - Validate Acknowledgment Response Headers ${resp} - Wait Until Keyword Succeeds 120s 30s Wait For All VNFs Reach Status Completed ${uuid} - Wait Until Keyword Succeeds 120s 30s Wait for Schedule to Complete Completed ${uuid} - [Return] ${uuid} - - - - - diff --git a/tests/optf-cmso/cmso/resources/create_schedule.robot b/tests/optf-cmso/cmso/resources/create_schedule.robot deleted file mode 100644 index 43d5ff10..00000000 --- a/tests/optf-cmso/cmso/resources/create_schedule.robot +++ /dev/null @@ -1,54 +0,0 @@ -*** Settings *** -Documentation SCheduler tests - -#Library StringTemplater -#Library UUID -Library ../attlibs/UID.py -Library ../attlibs/StringTemplater.py -Library ../attlibs/JSONUtils.py -Library String -Library DateTime -Library Collections -Library OperatingSystem -#Library JSONUtils - -Resource scheduler_common.robot -Resource json_templater.robot - -*** Variables **** -${VID_TEMPLATES} /assets/templates/changemanagement -${GLOBAL_VID_CALLBACK_URL} http://127.0.0.1:8080/scheduler/v1/loopbacktest/vid -${GLOBAL_VID_USERID} jf9860 -${NODES} aaiaic25ctsf0002v,dpa2bhsfe0001v,ctsf0008v,nsbg0002v -${UTC} %Y-%m-%dT%H:%M:%SZ - -*** Keywords *** -Create Schedule - [Arguments] ${uuid} ${request_file} ${TEMPLATES} ${workflow}=Unknown ${minutesFromNow}=5 - ${testid}= Catenate ${uuid} - ${testid}= Get Substring ${testid} -4 - ${dict}= Create Dictionary serviceInstanceId=${uuid} parent_service_model_name=${uuid} - ${callbackData}= Fill JSON Template File ${CURDIR}${VID_TEMPLATES}/VidCallbackData.json.template ${dict} - ${callbackDataString}= Json Escape ${callbackData} - ${map}= Create Dictionary uuid=${uuid} callbackUrl=${GLOBAL_VID_CALLBACK_URL} callbackData=${callbackDataString} testid=${testid} workflow=${workflow} userId=${GLOBAL_VID_USERID} - ${nodelist}= Split String ${NODES} , - ${nn}= Catenate 1 - # Support up to 4 ChangeWindows - : For ${i} in range 1 4 - \ ${today}= Evaluate ((${i}-1)*1440)+${minutesFromNow} - \ ${tomorrow} Evaluate ${today}+1440 - \ ${last_time} Evaluate ${today}+30 - \ ${start_time}= Get Current Date UTC + ${today} minutes result_format=${UTC} - \ ${end_time}= Get Current Date UTC + ${tomorrow} minutes result_format=${UTC} - \ Set To Dictionary ${map} start_time${i}=${start_time} end_time${i}=${end_time} - - : For ${vnf} in @{nodelist} - \ Set To Dictionary ${map} node${nn} ${vnf} - \ ${nn}= Evaluate ${nn}+1 - - ${data}= Fill JSON Template File ${CURDIR}${TEMPLATES}/${request_file} ${map} - ${resp}= Post Change Management auth schedules/${uuid} data=${data} - [Return] ${resp} - - - diff --git a/tests/optf-cmso/cmso/resources/files.robot b/tests/optf-cmso/cmso/resources/files.robot deleted file mode 100644 index fcfffbb3..00000000 --- a/tests/optf-cmso/cmso/resources/files.robot +++ /dev/null @@ -1,50 +0,0 @@ -*** Settings *** -Documentation Some handy Keywords for accessing log files over SSH. Assumptions are that logs will belong to users other than the currently logged in user and that sudo will be required -Library OperatingSystem -Library SSHLibrary -Library HttpLibrary.HTTP -Library String -Library Collections - -*** Variables *** - -*** Keywords *** -Open Connection And Log In - [Documentation] Open a connection using the passed user and SSH key. Connection alias will be the host name by default. - [Arguments] ${HOST} ${user} ${pvt} ${password}= ${alias}=${HOST} ${timeout}=120s - Open Connection ${HOST} alias=${alias} timeout=${timeout} - Login With Public Key ${user} ${pvt} password=${password} delay=0.5 seconds - -Grep Local File - [Documentation] Grep the passed file name and return all of the lines that match the passed pattern using the current connection - [Arguments] ${pattern} ${fullpath} - ${output}= Execute Command grep ${pattern} ${fullpath} - [Return] ${output} - - Grep File on Host - [Documentation] Grep the passed file name and return all of the lines that match the passed pattern using passed connection alias/host - [Arguments] ${host} ${pattern} ${fullpath} - Switch Connection ${host} - ${output}= Grep Local File ${pattern} ${fullpath} - @{lines}= Split To Lines ${output} - [Return] @{lines} - -Grep File on Hosts - [Documentation] Grep the passed file name and return all of the lines that match the passed pattern using passed list of connections - [Arguments] ${HOSTS} ${pattern} ${fullpath} - &{map}= Create Dictionary - :FOR ${HOST} IN @{HOSTS} - \ Log ${HOST} - \ @{lines}= Grep File on Host ${HOST} ${pattern} ${fullpath} - \ &{map}= Create Dictionary ${HOST}=@{lines} &{map} - [Return] &{map} - -Tail File on Host Until - [Documentation] Tail log file into grep which returns file lines containing the grep pattern. Will timeout after timeout= if expected pattern not received. - [Arguments] ${host} ${pattern} ${fullpath} ${expected} ${timeout}=60 ${options}=-c -0 - Switch Connection ${host} - ${tailcommand}= Catenate tail ${options} -f ${fullpath} | grep --color=never ${pattern} - Write ${tailcommand} - ${stdout}= Read Until Regexp ${expected} - @{lines}= Split To Lines ${stdout} - [Return] @{lines} diff --git a/tests/optf-cmso/cmso/resources/json_templater.robot b/tests/optf-cmso/cmso/resources/json_templater.robot deleted file mode 100644 index ebbbf43d..00000000 --- a/tests/optf-cmso/cmso/resources/json_templater.robot +++ /dev/null @@ -1,21 +0,0 @@ -*** Settings *** -Documentation This resource is filling out json string templates and returning the json back -Library RequestsLibrary -#Library StringTemplater -Library ../attlibs/StringTemplater.py -Library OperatingSystem - -*** Keywords *** -Fill JSON Template - [Documentation] Runs substitution on template to return a filled in json - [Arguments] ${json} ${arguments} - ${returned_string}= Template String ${json} ${arguments} - ${returned_json}= To Json ${returned_string} - [Return] ${returned_json} - -Fill JSON Template File - [Documentation] Runs substitution on template to return a filled in json - [Arguments] ${json_file} ${arguments} - ${json}= OperatingSystem.Get File ${json_file} - ${returned_json}= Fill JSON Template ${json} ${arguments} - [Return] ${returned_json} diff --git a/tests/optf-cmso/cmso/resources/misc.robot b/tests/optf-cmso/cmso/resources/misc.robot deleted file mode 100644 index e20640c0..00000000 --- a/tests/optf-cmso/cmso/resources/misc.robot +++ /dev/null @@ -1,43 +0,0 @@ -*** Settings *** -Library Collections -Library String -#Library UUID -Library ../attlibs/UID.py -Library Process -Library HttpLibrary.HTTP -Documentation Miscellaneous keywords - -Resource json_templater.robot -Resource create_schedule.robot - - -*** Variables *** - -*** Keywords *** - -Validate Status - [Documentation] Fail unless the Request response is in the passed list of valid HTTP status codes. - [Arguments] ${resp} ${valid_status_list} - ${status_code} Convert To String ${resp.status_code} - Return From Keyword If '${resp.status_code}' in ${valid_status_list} - Fail ${resp.status_code} - -Validate JSON Error - [Documentation] Fails if messageIds do not match. expected_errors should be a list but a string would likely work as well - [Arguments] ${resp_json} ${expected_errors} - ${result}= Get From Dictionary ${resp_json['requestError']} messageId - Should Contain ${expected_errors} ${result} #checks expected_errors list for the actual error received from schedule - -Check ATTIDs Template - [Documentation] This just checks a list of uuids - [Arguments] ${expected_status_code} ${template_folder} - ${request_file}= Convert to String OneVnfImmediateATTID.json.template - ${attid_file}= OperatingSystem.Get File robot/assets/AOTS_CM_IDs.txt - @{attids}= Split to lines ${attid_file} - :for ${attid} in @{attids} - \ ${uuid}= Generate UUID - \ ${resp}= Run Keyword and Continue on Failure Create Schedule ${uuid} ${request_file} ${template_folder} attid=${attid} - \ Run Keyword and Continue on Failure Should Be Equal as Strings ${resp.status_code} ${expected_status_code} - \ ${reps}= Delete Change Management auth schedules/${uuid} - - diff --git a/tests/optf-cmso/cmso/resources/scheduler_common.robot b/tests/optf-cmso/cmso/resources/scheduler_common.robot deleted file mode 100644 index dd2f6118..00000000 --- a/tests/optf-cmso/cmso/resources/scheduler_common.robot +++ /dev/null @@ -1,93 +0,0 @@ -*** Settings *** -Documentation The private interface for interacting with Openstack. It handles low level stuff like managing the authtoken and Openstack required fields - -Library Collections -Library RequestsLibrary -#Library UUID -Library ../attlibs/UID.py -#Library HTTPUtils -Library ../attlibs/HTTPUtils.py -Library String -Resource misc.robot -*** Variables *** -*** Variables *** -${GLOBAL_SCHEDULER_PORT} 8080 -${GLOBAL_SCHEDULER_PROTOCOL} http -#${GLOBAL_SCHEDULER_HOST} 127.0.0.1 -${GLOBAL_SCHEDULER_USER} jf9860@csp.att.com -${GLOBAL_SCHEDULER_PASSWORD} 45=Forty5 -${GLOBAL_APPLICATION_ID} schedulertest -${SCHEDULER_PATH} /cmso/v1 -${CHANGE_MANAGEMENT_PATH} ${SCHEDULER_PATH} -${valid_status_codes} 200 202 400 404 204 409 -#**************** Test Case Variables ****************** - -*** Keywords *** - - -Post Change Management - [Documentation] Runs a scheduler POST request - [Arguments] ${alias} ${resource} ${data}={} - ${data_path}= Catenate ${CHANGE_MANAGEMENT_PATH}/${resource} - ${resp}= Post Scheduler ${alias} ${data_path} ${data} - [Return] ${resp} - -Delete Change Management - [Documentation] Runs a scheduler DELETE request (this may need to be changed for 1802 US change Delete schedule to Cancel Schedule) - [Arguments] ${alias} ${resource} - ${data_path}= Catenate ${CHANGE_MANAGEMENT_PATH}/${resource} - ${resp}= Delete Scheduler ${alias} ${data_path} - [Return] ${resp} - -Get Change Management - [Documentation] Runs a scheduler GET request - [Arguments] ${alias} ${resource} - ${data_path}= Catenate ${CHANGE_MANAGEMENT_PATH}/${resource} - ${resp}= Get Scheduler ${alias} ${data_path} - [Return] ${resp} - -Post Scheduler - [Documentation] Runs a scheduler POST request - [Arguments] ${alias} ${data_path} ${data}={} - ${url}= Catenate ${GLOBAL_SCHEDULER_PROTOCOL}://${GLOBAL_SCHEDULER_HOST}:${GLOBAL_SCHEDULER_PORT} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} - ${auth_string}= B64 Encode ${GLOBAL_SCHEDULER_USER}:${GLOBAL_SCHEDULER_PASSWORD} - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} Authorization=Basic ${auth_string} - ${resp}= Post Request ${alias} ${data_path} headers=${headers} data=${data} - Log Received response from scheduler ${resp.text} - ${valid}= Split String ${valid_status_codes} - - Validate Status ${resp} ${valid} - [Return] ${resp} - -Delete Scheduler - [Documentation] Runs a scheduler POST request - [Arguments] ${alias} ${data_path} - ${url}= Catenate ${GLOBAL_SCHEDULER_PROTOCOL}://${GLOBAL_SCHEDULER_HOST}:${GLOBAL_SCHEDULER_PORT} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} - ${auth_string}= B64 Encode ${GLOBAL_SCHEDULER_USER}:${GLOBAL_SCHEDULER_PASSWORD} - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} Authorization=Basic ${auth_string} - ${resp}= Delete Request ${alias} ${data_path} headers=${headers} - Log Received response from scheduler ${resp.text} - ${valid}= Split String ${valid_status_codes} - Validate Status ${resp} ${valid} - [Return] ${resp} - -Get Scheduler - [Documentation] Runs a scheduler GET request - [Arguments] ${alias} ${data_path} - ${url}= Catenate ${GLOBAL_SCHEDULER_PROTOCOL}://${GLOBAL_SCHEDULER_HOST}:${GLOBAL_SCHEDULER_PORT} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} - ${auth_string}= B64 Encode ${GLOBAL_SCHEDULER_USER}:${GLOBAL_SCHEDULER_PASSWORD} - ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} Authorization=Basic ${auth_string} - ${resp}= Get Request ${alias} ${data_path} headers=${headers} - Log Received response from scheduler ${resp.json()} - ${valid}= Split String ${valid_status_codes} - Validate Status ${resp} ${valid} - [Return] ${resp} diff --git a/tests/optf-cmso/cmso/resources/vtm_common.robot b/tests/optf-cmso/cmso/resources/vtm_common.robot deleted file mode 100644 index 3d5b50ab..00000000 --- a/tests/optf-cmso/cmso/resources/vtm_common.robot +++ /dev/null @@ -1,93 +0,0 @@ -*** Settings *** -Documentation The private interface for interacting with Openstack. It handles low level stuff like managing the authtoken and Openstack required fields - -Library Collections -Library RequestsLibrary -Library ../attlibs/UID.py -Library HTTPUtils -Library DateTime - -Resource misc.robot -*** Variables *** -*** Variables *** -# http://zld03290.vci.att.com:9018 -# -${CLOSE_PATH} /vtm/manageChangeRecord/v1/closeCancelChangeRecord -${CLOSE_PORT} 31127 - - -#**************** Test Case Variables ****************** - -*** Keywords *** - -vTM Query Template - [Documentation] - [Arguments] ${alias} ${offset}=0 ${numOfrows}=100 ${display}=[] ${filter}={} - ${request}= Create Dictionary offset=${offset} numOfRows=${numOfRows} displayTuple=${display} filterTuple=${filter} - Log ${request} - ${resp}= vTM Query ${alias} ${request} - [Return] ${resp} - - -vTM Query - [Documentation] - [Arguments] ${alias} ${request} - ${url}= Catenate ${GLOBAL_VTM_URL} - ${data_path}= Catenate ${GLOBAL_LISTCHANGE_PATH} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} verify=True - ${auth_string}= B64 Encode ${GLOBAL_VTM_USER}:${GLOBAL_VTM_PASSWORD} - #Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} - ${headers}= Create Dictionary Authorization=Basic ${auth_string} Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request ${alias} ${data_path} headers=${headers} data=${request} - Log Received response from vTM ${resp.text} - ${valid}= Create List 200 404 - Validate Status ${resp} ${valid} - [Return] ${resp} - - -vTM Close Ticket - [Documentation] - [Arguments] ${alias} ${ticket} ${changeClosedBy}=jf9860 - ${url}= Catenate ${GLOBAL_VTM_PROTO}://${GLOBAL_VTM_HOST}:${CLOSE_PORT} - ${data_path}= Catenate ${CLOSE_PATH} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} verify=True - ${auth_string}= B64 Encode ${GLOBAL_VTM_USER}:${GLOBAL_VTM_PASSWORD} - ${end}= Get Current Date result_format=epoch exclude_millis=True - ${end}= Convert To Integer ${end} - ${start}= Evaluate ${end}-60 - ${request}= Create Dictionary changeId=${ticket} status=Closed changeClosedBy=${changeClosedBy} closureCode=Successful As Scheduled - Set To Dictionary ${request} customerImpacted=Unknown actualStartDate=${start} actualEndDate=${end} - - #Authorization=Basic ${GLOBAL_POLICY_AUTH} ClientAuth=${GLOBAL_POLICY_CLIENTAUTH} - ${headers}= Create Dictionary Authorization=Basic ${auth_string} Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request ${alias} ${data_path} headers=${headers} data=${request} - Log Received response from vTM ${resp.json()} - ${valid}= Create List 200 404 - Validate Status ${resp} ${valid} - [Return] ${resp} - - -vTM Cancel Ticket - [Documentation] - [Arguments] ${alias} ${ticket} - ${url}= Catenate ${GLOBAL_VTM_PROTO}://${GLOBAL_VTM_HOST}:${CLOSE_PORT} - ${data_path}= Catenate ${CLOSE_PATH} - ${uuid}= Generate UUID - ${proxies}= Create Dictionary no=pass - ${session}= Create Session ${alias} ${url} verify=True - ${auth_string}= B64 Encode ${GLOBAL_VTM_USER}:${GLOBAL_VTM_PASSWORD} - ${end}= Get Current Date result_format=epoch exclude_millis=True - ${end}= Convert To Integer ${end} - ${start}= Evaluate ${end}-60 - ${request}= Create Dictionary changeId=${ticket} status=Closed changeClosedBy=${GLOBAL_VID_USERID} closureCode=Cancelled closingComments=Cancel requested by user - Set To Dictionary ${request} customerImpacted=No - ${headers}= Create Dictionary Authorization=Basic ${auth_string} Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} - ${resp}= Post Request ${alias} ${data_path} headers=${headers} data=${request} - Log Received response from vTM ${resp.json()} - ${valid}= Create List 200 404 - Validate Status ${resp} ${valid} - [Return] ${resp} diff --git a/tests/optf-cmso/cmso/testsuites/ChangeManagementImmediate.robot b/tests/optf-cmso/cmso/testsuites/ChangeManagementImmediate.robot deleted file mode 100644 index 6990cf46..00000000 --- a/tests/optf-cmso/cmso/testsuites/ChangeManagementImmediate.robot +++ /dev/null @@ -1,6 +0,0 @@ -*** Settings *** -Documentation Placeholder for running CMSO IT - -*** Test Cases *** -CMSO Robot Test - Log CMSO IT tests run via cmso-robot docker container. \ No newline at end of file diff --git a/tests/optf-cmso/cmso/testsuites/CmsoCsit.robot b/tests/optf-cmso/cmso/testsuites/CmsoCsit.robot new file mode 100644 index 00000000..1d57b53e --- /dev/null +++ b/tests/optf-cmso/cmso/testsuites/CmsoCsit.robot @@ -0,0 +1,3 @@ +*** Test Cases *** +CSIT Test Case + Log See output of cmso-robot \ No newline at end of file diff --git a/tests/optf-cmso/cmso/testsuites/__init__.robot b/tests/optf-cmso/cmso/testsuites/__init__.robot deleted file mode 100644 index baa56c7b..00000000 --- a/tests/optf-cmso/cmso/testsuites/__init__.robot +++ /dev/null @@ -1,4 +0,0 @@ -*** Settings *** -Documentation Scheduler - -*** Variables *** diff --git a/tests/portal/testsuites/browser_setup.robot b/tests/portal/testsuites/browser_setup.robot index 6ef4f726..dfa6ab68 100644 --- a/tests/portal/testsuites/browser_setup.robot +++ b/tests/portal/testsuites/browser_setup.robot @@ -1,7 +1,6 @@ *** Settings *** Documentation The main interface for interacting with VID. It handles low level stuff like managing the selenium request library and VID required steps Library Collections -Library OSUtils Library OperatingSystem Library ExtendedSelenium2Library Resource global_properties.robot @@ -22,8 +21,6 @@ Setup Browser Firefox Set Global Variable ${GLOBAL_SELENIUM_BROWSER_CAPABILITIES} ${dc} Setup Browser Chrome - ${os}= Get Normalized Os - Log Normalized OS=${os} ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys Call Method ${chrome options} add_argument no-sandbox ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver diff --git a/tests/portal/testsuites/portal_VID.robot b/tests/portal/testsuites/portal_VID.robot index 473a0464..fdfa4e79 100644 --- a/tests/portal/testsuites/portal_VID.robot +++ b/tests/portal/testsuites/portal_VID.robot @@ -3,7 +3,7 @@ Documentation The main interface for interacting with Portal. It handles low Library ExtendedSelenium2Library Library RequestsClientCert Library RequestsLibrary -Library UUID +Library ONAPLibrary.Utilities Library DateTime Resource ../global_properties.robot Resource ../browser_setup.robot @@ -50,7 +50,7 @@ Run Portal Get Request [Documentation] Runs Portal Get request [Arguments] ${data_path} ${session}= Create Session portal ${GLOBAL_PORTAL_URL} - ${uuid}= Generate UUID + ${uuid}= Generate UUID4 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Get Request portal ${data_path} headers=${headers} Log Received response from portal ${resp.text} diff --git a/tests/portal/testsuites/test1.robot b/tests/portal/testsuites/test1.robot index d0fef06a..d3196f83 100644 --- a/tests/portal/testsuites/test1.robot +++ b/tests/portal/testsuites/test1.robot @@ -4,10 +4,9 @@ Library ExtendedSelenium2Library Library OperatingSystem Library eteutils/RequestsClientCert.py Library RequestsLibrary -Library eteutils/UUID.py +Library ONAPLibrary.Utilities Library DateTime Library Collections -Library eteutils/OSUtils.py Library eteutils/StringTemplater.py Library String Library XvfbRobot @@ -231,8 +230,6 @@ Setup Browser Setup Browser Chrome - ${os}= Get Normalized Os - Log Normalized OS=${os} ${chrome options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys Call Method ${chrome options} add_argument no-sandbox ${dc} Evaluate sys.modules['selenium.webdriver'].DesiredCapabilities.CHROME sys, selenium.webdriver @@ -262,7 +259,7 @@ Run Portal Get Request [Documentation] Runs Portal Get request [Arguments] ${data_path} ${session}= Create Session portal ${PORTAL_URL} - ${uuid}= Generate UUID + ${uuid}= Generate UUID4 ${headers}= Create Dictionary Accept=application/json Content-Type=application/json X-TransactionId=${GLOBAL_APPLICATION_ID}-${uuid} X-FromAppId=${GLOBAL_APPLICATION_ID} ${resp}= Get Request portal ${data_path} headers=${headers} Log Received response from portal ${resp.text} diff --git a/tests/usecases/5G-bulkpm/BulkpmE2E.robot b/tests/usecases/5G-bulkpm/BulkpmE2E.robot index 84243cba..cac93f7f 100644 --- a/tests/usecases/5G-bulkpm/BulkpmE2E.robot +++ b/tests/usecases/5G-bulkpm/BulkpmE2E.robot @@ -19,7 +19,7 @@ ${TARGETURL_SUBSCR} http://${DMAAP_MR_IP}:3904/events/unaut ${CLI_EXEC_CLI} curl -k https://${DR_PROV_IP}:8443/internal/prov ${CLI_EXEC_CLI_FILECONSUMER} docker exec fileconsumer-node /bin/sh -c "ls /opt/app/subscriber/delivery | grep .xml" ${CLI_EXEC_CLI_DFC_LOG} docker exec dfc /bin/sh -c "cat /var/log/ONAP/application.log" > /tmp/dfc_docker.log.robot -${CLI_EXEC_CLI_DFC_LOG_GREP} grep "Publish to DR successful!" /tmp/dfc_docker.log.robot +${CLI_EXEC_CLI_DFC_LOG_GREP} grep "Datafile file published" /tmp/dfc_docker.log.robot ${CLI_EXEC_CLI_FILECONSUMER_CP} docker cp fileconsumer-node:/opt/app/subscriber/delivery/A20181002.0000-1000-0015-1000_5G.xml.M %{WORKSPACE} ${CLI_EXEC_RENAME_METADATA} mv %{WORKSPACE}/A20181002.0000-1000-0015-1000_5G.xml.M %{WORKSPACE}/metadata.json ${CLI_EXEC_CLI_PMMAPPER_LOG} docker exec pmmapper /bin/sh -c "cat /var/log/ONAP/dcaegen2/services/pm-mapper/pm-mapper_output.log" > /tmp/pmmapper_docker.log.robot @@ -71,7 +71,7 @@ Verify Data File Collector successfully publishes the PM XML file to the Data Ro ${cli_cmd_output}= Run Process ${CLI_EXEC_CLI_DFC_LOG_GREP} shell=yes Log ${cli_cmd_output.stdout} Should Be Equal As Strings ${cli_cmd_output.rc} 0 - Should Contain ${cli_cmd_output.stdout} Publish to DR successful! + Should Contain ${cli_cmd_output.stdout} Datafile file published Verify Default Feed And File Consumer Subscription On Datarouter diff --git a/tests/vid/resources/docker-compose.yml b/tests/vid/resources/docker-compose.yml index 6bd0c138..6aaa5a7e 100644 --- a/tests/vid/resources/docker-compose.yml +++ b/tests/vid/resources/docker-compose.yml @@ -1,7 +1,7 @@ version: '3' services: vid-server: - image: nexus3.onap.org:10001/onap/vid:4.3-STAGING-latest + image: nexus3.onap.org:10001/onap/vid:5.0-STAGING-latest environment: - VID_MYSQL_DBNAME=vid_openecomp_epsdk - VID_MYSQL_PASS=Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U