diff options
author | Gary Wu <gary.i.wu@huawei.com> | 2018-09-27 10:38:50 -0700 |
---|---|---|
committer | Gary Wu <gary.i.wu@huawei.com> | 2018-09-27 10:39:43 -0700 |
commit | 9abb61ca2cea1907cab2cec312d6dca6e53a93cd (patch) | |
tree | c8ff0718b6626832efd3ff3acc48590dbd6cb64c /plans | |
parent | a328a3e2e531240ea4a9ed2ce4a284af1be5e225 (diff) |
Move CSIT to integration/csit repo
To facilite branching of CSIT tests, all CSIT test
code and scripts are relocated to the integration/csit
repo.
Change-Id: I1e4c0eff44691f73f8098b3c52764107f6b8b8df
Issue-ID: INT-671
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
Diffstat (limited to 'plans')
271 files changed, 10301 insertions, 0 deletions
diff --git a/plans/aaf/aafapi/setup.sh b/plans/aaf/aafapi/setup.sh new file mode 100644 index 00000000..add9ae17 --- /dev/null +++ b/plans/aaf/aafapi/setup.sh @@ -0,0 +1,77 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# ONAP AAF +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# =================================================================== +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +# Clone AAF Authz repo +mkdir -p $WORKSPACE/archives/aafcsit +cd $WORKSPACE/archives/aafcsit +#unset http_proxy https_proxy +git clone --depth 1 http://gerrit.onap.org/r/aaf/authz -b master +git pull +cd $WORKSPACE/archives/aafcsit/authz/auth/auth-service/src/main/resources/docker-compose +pwd +chmod -R 777 $WORKSPACE/archives/aafcsit/authz/auth/auth-service/src/main/resources/docker-compose + + +# start aaf containers with docker compose and configuration from docker-compose.yml +docker-compose up -d +export aaf_service=$(get_docker_compose_service aaf_container) +export cassandra_service=$(get_docker_compose_service cassandra_container) + +# Wait for initialization of Docker container for AAF & Cassandra +for i in {1..12}; do + + if [ $(docker inspect --format '{{ .State.Running }}' $aaf_service) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' $cassandra_service) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' $aaf_service) ] + then + echo "AAF Service Running" + break + else + echo sleep $i + sleep $i + fi +done + + +AAF_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $aaf_service) +CASSANDRA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $cassandra_service) + +bypass_ip_adress $AAF_IP +bypass_ip_adress $CASSANDRA_IP + +echo AAF_IP=${AAF_IP} +echo CASSANDRA_IP=${CASSANDRA_IP} + + +# Wait for initialization of docker services +for i in {1..12}; do + curl -sS -m 1 ${AAF_IP}:8101 && break + echo sleep $i + sleep $i +done + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v AAF_IP:${AAF_IP}" diff --git a/plans/aaf/aafapi/teardown.sh b/plans/aaf/aafapi/teardown.sh new file mode 100644 index 00000000..41e0b00e --- /dev/null +++ b/plans/aaf/aafapi/teardown.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh $aaf_service +kill-instance.sh $cassandra_service + +unset aaf_service +unset cassandra_service diff --git a/plans/aaf/aafapi/testplan.txt b/plans/aaf/aafapi/testplan.txt new file mode 100644 index 00000000..ea18ca6d --- /dev/null +++ b/plans/aaf/aafapi/testplan.txt @@ -0,0 +1,2 @@ +# Place the suites in run order. +aaf/aafapi diff --git a/plans/aaf/sms-test-plan/setup.sh b/plans/aaf/sms-test-plan/setup.sh new file mode 100755 index 00000000..9b57d64c --- /dev/null +++ b/plans/aaf/sms-test-plan/setup.sh @@ -0,0 +1,71 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +# Not sure why this is needed. +source ${SCRIPTS}/common_functions.sh + +CONFIG_FILE=$(pwd)/config/smsconfig.json + +mkdir -p $(pwd)/config + +docker login -u docker -p docker nexus3.onap.org:10001 +docker pull nexus3.onap.org:10001/onap/aaf/sms +docker pull docker.io/vault:0.10.0 + +# +# Running vault in dev server mode here for CSIT +# In HELM it runs in production mode +# +docker run -e "VAULT_DEV_ROOT_TOKEN_ID=aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \ + -e SKIP_SETCAP=true \ + --name vault -d -p 8200:8200 vault:0.10.0 + +SMSDB_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vault) +cat << EOF > $CONFIG_FILE +{ + "cafile": "auth/selfsignedca.pem", + "servercert": "auth/server.cert", + "serverkey": "auth/server.key", + + "smsdbaddress": "http://$SMSDB_IP:8200", + "vaulttoken": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", + "disable_tls": true +} +EOF + +cat $CONFIG_FILE + +docker run --workdir /sms -v $CONFIG_FILE:/sms/smsconfig.json \ + --name sms -d -p 10443:10443 nexus3.onap.org:10001/onap/aaf/sms + +SMS_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sms) + +echo "###### WAITING FOR ALL CONTAINERS TO COME UP" +sleep 20 +for i in {1..20}; do + curl -sS -m 1 http://${SMSDB_IP}:8200/v1/sys/seal-status && break + echo sleep $i + sleep $i +done + +# +# add here all ROBOT_VARIABLES settings +# +echo "# sms robot variables settings"; +ROBOT_VARIABLES="-v SMS_HOSTNAME:http://${SMS_IP} -v SMS_PORT:10443" + +echo ${ROBOT_VARIABLES} diff --git a/plans/aaf/sms-test-plan/teardown.sh b/plans/aaf/sms-test-plan/teardown.sh new file mode 100644 index 00000000..2c8b3e89 --- /dev/null +++ b/plans/aaf/sms-test-plan/teardown.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +docker cp sms:/sms/sms.log . +cat sms.log +rm sms.log +rm -rf config +docker stop sms vault +docker rm sms vault +docker rmi nexus3.onap.org:10001/onap/aaf/sms +docker rmi docker.io/vault:0.10.0 diff --git a/plans/aaf/sms-test-plan/testplan.txt b/plans/aaf/sms-test-plan/testplan.txt new file mode 100644 index 00000000..c2b3b7b1 --- /dev/null +++ b/plans/aaf/sms-test-plan/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aaf/aaf-sms-suite
\ No newline at end of file diff --git a/plans/aai/esr-server/setup.sh b/plans/aai/esr-server/setup.sh new file mode 100644 index 00000000..42d9676d --- /dev/null +++ b/plans/aai/esr-server/setup.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Copyright 2017-2018 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: + + +#login to the onap nexus docker repo +docker login -u docker -p docker nexus3.onap.org:10001 + +# Start MSB +docker run -d -p 8500:8500 --name msb_consul nexus3.onap.org:10001/onap/msb/msb_base +CONSUL_IP=`get-instance-ip.sh msb_consul` +echo CONSUL_IP=${CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IP=${MSB_IP} + +# Start esr-server +#docker run -d --name esr-server --env msbDiscoveryIp=${DISCOVERY_IP} --env msbDiscoveryPort=10081 nexus3.onap.org:10001/onap/aai/esr-server +#sudo docker run -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/aai/esr-server -p 9518:9518 -d --net=host --name esr-server +docker run -d --name esr-server -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/aai/esr-server +#source ${SCRIPTS}/aai/esr-server/startup.sh i-esrserver ${MSB_IP} 80 +ESRSERVER_IP=`get-instance-ip.sh esr-server` +echo ESRSERVER_IP=${ESRSERVER_IP} + +# Wait for initialization +for i in {1..20}; do + curl -sS -m 1 ${ESRSERVER_IP}:9518 && curl -sS -m 1 ${MSB_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization +for i in {1..20}; do + HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${MSB_IP}:80/api/aai-esr-server/v1/test"` + if [ ${HTTP_CODE} -eq 200 ]; then + break; + else + sleep $i + fi +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v ESRSERVER_IP:${ESRSERVER_IP}" + + + diff --git a/plans/aai/esr-server/teardown.sh b/plans/aai/esr-server/teardown.sh new file mode 100644 index 00000000..93f41383 --- /dev/null +++ b/plans/aai/esr-server/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# This script is sourced by run-csit.sh after Robot test completion. + +kill-instance.sh esr-server +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul diff --git a/plans/aai/esr-server/testplan.txt b/plans/aai/esr-server/testplan.txt new file mode 100644 index 00000000..43ed23e9 --- /dev/null +++ b/plans/aai/esr-server/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aai/esr-server/startup + diff --git a/plans/aai/resources/aai-resources/appconfig/aai_keystore b/plans/aai/resources/aai-resources/appconfig/aai_keystore Binary files differnew file mode 100644 index 00000000..1ddef0c9 --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/aai_keystore diff --git a/plans/aai/resources/aai-resources/appconfig/aaiconfig.properties b/plans/aai/resources/aai-resources/appconfig/aaiconfig.properties new file mode 100644 index 00000000..435507a8 --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/aaiconfig.properties @@ -0,0 +1,119 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.api.simpledemo.onap.org:8443/aai/ +aai.server.url=https://aai.api.simpledemo.onap.org:8443/aai/v11/ +aai.global.callback.url=https://aai.api.simpledemo.onap.org:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for crud enabled flag +aai.crud.timeoutenabled=true + +#timeout app specific -1 to bypass for that app id, a whole number to override the timeout with that value (in ms) +aai.crud.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAIRctFeed,-1|NewvceCreator,-1|IANewvceCreator,-1|AAI-CSIOVALS,-1 + +#default timeout limit added for crud if not overridden (in ms) +aai.crud.timeoutlimit=100000 +#limit set for bulk consumer APIS +aai.bulkconsumer.payloadlimit=30 + +#uncomment and use header X-OverrideLimit with the value to override the bulk api limit +#aai.bulkconsumer.payloadoverride=E6F04B93462CB5B0EDF41C05A9DDF5C3FE59748F +aai.bulkconsumer.payloadoverride=false diff --git a/plans/aai/resources/aai-resources/appconfig/application.properties b/plans/aai/resources/aai-resources/appconfig/application.properties new file mode 100644 index 00000000..b9c51eaf --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-resources +info.build.name=resources +info.build.description=Resources Microservice +info.build.version=1.2.0 + +spring.application.name=aai-resources +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-resources/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8447 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=mr.api.simpledemo.onap.org:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/plans/aai/resources/aai-resources/appconfig/janusgraph-cached.properties b/plans/aai/resources/aai-resources/appconfig/janusgraph-cached.properties new file mode 100644 index 00000000..c2110f77 --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/janusgraph-cached.properties @@ -0,0 +1,43 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/resources/aai-resources/appconfig/janusgraph-realtime.properties b/plans/aai/resources/aai-resources/appconfig/janusgraph-realtime.properties new file mode 100644 index 00000000..4791431a --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/janusgraph-realtime.properties @@ -0,0 +1,40 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/resources/aai-resources/appconfig/localhost-access-logback.xml b/plans/aai/resources/aai-resources/appconfig/localhost-access-logback.xml new file mode 100644 index 00000000..a318796c --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/plans/aai/resources/aai-resources/appconfig/logback.xml b/plans/aai/resources/aai-resources/appconfig/logback.xml new file mode 100644 index 00000000..ee7ee61a --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/logback.xml @@ -0,0 +1,391 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + + <property resource="application.properties" /> + + <property name="namespace" value="aai-resources"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="OFF" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/plans/aai/resources/aai-resources/appconfig/realm.properties b/plans/aai/resources/aai-resources/appconfig/realm.properties new file mode 100644 index 00000000..fb692cc3 --- /dev/null +++ b/plans/aai/resources/aai-resources/appconfig/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/plans/aai/resources/aai-traversal/appconfig/aai_keystore b/plans/aai/resources/aai-traversal/appconfig/aai_keystore Binary files differnew file mode 100644 index 00000000..1ddef0c9 --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/aai_keystore diff --git a/plans/aai/resources/aai-traversal/appconfig/aaiconfig.properties b/plans/aai/resources/aai-traversal/appconfig/aaiconfig.properties new file mode 100644 index 00000000..cef10903 --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/aaiconfig.properties @@ -0,0 +1,114 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.api.simpledemo.onap.org:8443/aai/ +aai.server.url=https://aai.api.simpledemo.onap.org:8443/aai/v11/ +aai.global.callback.url=https://aai.api.simpledemo.onap.org:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for traversal enabled flag +aai.traversal.timeoutenabled=true + +#timeout app specific +aai.traversal.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1 + +#default timeout limit added for traversal if not overridden (in ms) +aai.traversal.timeoutlimit=180000 + diff --git a/plans/aai/resources/aai-traversal/appconfig/application.properties b/plans/aai/resources/aai-traversal/appconfig/application.properties new file mode 100644 index 00000000..0292512c --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-traversal +info.build.name=traversal +info.build.description=Traversal Microservice +info.build.version=1.2.0 + +spring.application.name=aai-traversal +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-traversal/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8446 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=mr.api.simpledemo.onap.org:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/plans/aai/resources/aai-traversal/appconfig/janusgraph-cached.properties b/plans/aai/resources/aai-traversal/appconfig/janusgraph-cached.properties new file mode 100644 index 00000000..c2110f77 --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/janusgraph-cached.properties @@ -0,0 +1,43 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/resources/aai-traversal/appconfig/janusgraph-realtime.properties b/plans/aai/resources/aai-traversal/appconfig/janusgraph-realtime.properties new file mode 100644 index 00000000..4791431a --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/janusgraph-realtime.properties @@ -0,0 +1,40 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/resources/aai-traversal/appconfig/localhost-access-logback.xml b/plans/aai/resources/aai-traversal/appconfig/localhost-access-logback.xml new file mode 100644 index 00000000..a318796c --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/plans/aai/resources/aai-traversal/appconfig/logback.xml b/plans/aai/resources/aai-traversal/appconfig/logback.xml new file mode 100644 index 00000000..31bfe10c --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/logback.xml @@ -0,0 +1,391 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + + <property resource="application.properties" /> + + <property name="namespace" value="aai-traversal"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="OFF" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/plans/aai/resources/aai-traversal/appconfig/realm.properties b/plans/aai/resources/aai-traversal/appconfig/realm.properties new file mode 100644 index 00000000..fb692cc3 --- /dev/null +++ b/plans/aai/resources/aai-traversal/appconfig/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/plans/aai/resources/docker-compose.yml b/plans/aai/resources/docker-compose.yml new file mode 100644 index 00000000..6f62e6ef --- /dev/null +++ b/plans/aai/resources/docker-compose.yml @@ -0,0 +1,86 @@ +version: '2' +services: + aai-resources.api.simpledemo.onap.org: + image: ${DOCKER_REGISTRY}/onap/aai-resources + hostname: aai-resources.api.simpledemo.onap.org + environment: + - LOCAL_USER_ID=${USER_ID} + - LOCAL_GROUP_ID=${GROUP_ID} + - SKIP_CREATE_DB_SCHEMA_AT_STARTUP=true + ports: + - 8447:8447 + volumes: + - ${CURRENT_PWD}/aai-resources/appconfig/janusgraph-realtime.properties:/opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties + - ${CURRENT_PWD}/aai-resources/appconfig/janusgraph-cached.properties:/opt/app/aai-resources/resources/etc/appprops/janusgraph-cached.properties + - ${CURRENT_PWD}/aai-resources/appconfig/aaiconfig.properties:/opt/app/aai-resources/resources/etc/appprops/aaiconfig.properties + - ${CURRENT_PWD}/aai-resources/appconfig/application.properties:/opt/app/aai-resources/resources/application.properties + - ${CURRENT_PWD}/aai-resources/appconfig/logback.xml:/opt/app/aai-resources/resources/logback.xml + - ${CURRENT_PWD}/aai-resources/appconfig/localhost-access-logback.xml:/opt/app/aai-resources/resources/localhost-access-logback.xml + - ${CURRENT_PWD}/aai-resources/appconfig/aai_keystore:/opt/app/aai-resources/resources/etc/auth/aai_keystore + - ${CURRENT_PWD}/aai-resources/appconfig/realm.properties:/opt/app/aai-resources/resources/etc/auth/realm.properties + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai-traversal.api.simpledemo.onap.org: + image: ${DOCKER_REGISTRY}/onap/aai-traversal + hostname: aai-traversal.api.simpledemo.onap.org + environment: + - LOCAL_USER_ID=${USER_ID} + - LOCAL_GROUP_ID=${GROUP_ID} + - DISABLE_UPDATE_QUERY=true + volumes: + - ${CURRENT_PWD}/aai-traversal/appconfig/janusgraph-realtime.properties:/opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/janusgraph-cached.properties:/opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/aaiconfig.properties:/opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/application.properties:/opt/app/aai-traversal/resources/application.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/logback.xml:/opt/app/aai-traversal/resources/logback.xml + - ${CURRENT_PWD}/aai-traversal/appconfig/localhost-access-logback.xml:/opt/app/aai-traversal/resources/localhost-access-logback.xml + - ${CURRENT_PWD}/aai-traversal/appconfig/aai_keystore:/opt/app/aai-traversal/resources/etc/auth/aai_keystore + - ${CURRENT_PWD}/aai-traversal/appconfig/realm.properties:/opt/app/aai-traversal/resources/etc/auth/realm.properties + ports: + - 8446:8446 + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai.api.simpledemo.onap.org: + image: ${AAI_HAPROXY_IMAGE}:${HAPROXY_VERSION} + hostname: aai.api.simpledemo.onap.org + ports: + - 8443:8443 + links: + - aai-resources.api.simpledemo.onap.org + - aai-traversal.api.simpledemo.onap.org + volumes: + - /dev/log:/dev/log + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai.hbase.simpledemo.onap.org: + image: cassandra:2.1 + hostname: aai.hbase.simpledemo.onap.org + ports: + - 7000:7000 + - 7001:7001 + - 7199:7199 + - 9042:9042 + environment: + - CASSANDRA_SEEDS=aai.hbase.simpledemo.onap.org + - CASSANDRA_DC=Heat + - CASSANDRA_RACK=Rack1 + - CASSANDRA_AUTO_BOOTSTRAP=true + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: ${MTU} diff --git a/plans/aai/resources/setup.sh b/plans/aai/resources/setup.sh new file mode 100644 index 00000000..bd5cb521 --- /dev/null +++ b/plans/aai/resources/setup.sh @@ -0,0 +1,113 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +source ${SCRIPTS}/common_functions.sh + +NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt) +NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt) +NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt) +DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt) +DOCKER_REGISTRY=${NEXUS_DOCKER_REPO} +DOCKER_IMAGE_VERSION=1.2-STAGING-latest + +export CURRENT_PWD=$(pwd); + +function wait_for_container() { + + CONTAINER_NAME="$1"; + START_TEXT="$2"; + + TIMEOUT=360 + + # wait for the real startup + AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l) + while [[ ${AMOUNT_STARTUP} -ne 1 ]]; + do + echo "Waiting for '$CONTAINER_NAME' deployment to finish ..." + AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l) + if [ "$TIMEOUT" = "0" ]; + then + docker logs ${CONTAINER_NAME}; + echo "ERROR: $CONTAINER_NAME deployment failed." + exit 1 + fi + let TIMEOUT-=1 + sleep 1 + done +} + +DOCKER_COMPOSE_CMD="docker-compose"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; +export AAI_HAPROXY_IMAGE="${AAI_HAPROXY_IMAGE:-aaionap/haproxy}"; +export HAPROXY_VERSION="${HAPROXY_VERSION:-1.2.0}"; +export HBASE_IMAGE="${HBASE_IMAGE:-aaionap/hbase}"; +export HBASE_VERSION="${HBASE_VERSION:-1.2.0}"; + +docker pull ${HBASE_IMAGE}:${HBASE_VERSION}; + +docker pull ${HBASE_IMAGE}:${HBASE_VERSION}; +docker pull ${DOCKER_REGISTRY}/onap/aai-resources:${DOCKER_IMAGE_VERSION}; +docker tag ${DOCKER_REGISTRY}/onap/aai-resources:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/onap/aai-resources:latest; + +docker pull ${DOCKER_REGISTRY}/onap/aai-traversal:${DOCKER_IMAGE_VERSION}; +docker tag ${DOCKER_REGISTRY}/onap/aai-traversal:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/onap/aai-traversal:latest; + +${DOCKER_COMPOSE_CMD} stop +${DOCKER_COMPOSE_CMD} rm -f -v + +# Start the hbase where the data will be stored +CASSANDRA_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai.hbase.simpledemo.onap.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1); +wait_for_container $CASSANDRA_CONTAINER_NAME 'Listening for thrift clients'; + +USER_EXISTS=$(check_if_user_exists aaiadmin); + +function check_if_user_exists(){ + local user_id=$1; + + if [ -z "$user_id" ]; then + echo "Needs to provide at least one argument for check_if_user_exists func"; + exit 1; + fi; + + id -u ${user_id} > /dev/null 2>&1 && { + echo "1"; + } || { + echo "0"; + } +} + + +if [ "${USER_EXISTS}" -eq 0 ]; then + export USER_ID=9000; +else + export USER_ID=$(id -u aaiadmin); +fi; + +$DOCKER_COMPOSE_CMD run --rm aai-resources.api.simpledemo.onap.org createDBSchema.sh + +RESOURCES_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai-resources.api.simpledemo.onap.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1); +wait_for_container $RESOURCES_CONTAINER_NAME 'Resources Microservice Started'; + +docker logs ${RESOURCES_CONTAINER_NAME}; + +${DOCKER_COMPOSE_CMD} up -d aai-traversal.api.simpledemo.onap.org aai.api.simpledemo.onap.org +echo "A&AI Microservices, resources and traversal, are up and running along with HAProxy"; +# Set the host ip for robot from the haproxy +ROBOT_VARIABLES="-v HOST_IP:`ip addr show docker0 | head -3 | tail -1 | cut -d' ' -f6 | cut -d'/' -f1`" diff --git a/plans/aai/resources/teardown.sh b/plans/aai/resources/teardown.sh new file mode 100644 index 00000000..8dd6358d --- /dev/null +++ b/plans/aai/resources/teardown.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# Copyright © 2017 Amdocs +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +DOCKER_COMPOSE_CMD="docker-compose"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; + +$DOCKER_COMPOSE_CMD stop +$DOCKER_COMPOSE_CMD rm -f -v + diff --git a/plans/aai/resources/testplan.txt b/plans/aai/resources/testplan.txt new file mode 100644 index 00000000..1e8902a5 --- /dev/null +++ b/plans/aai/resources/testplan.txt @@ -0,0 +1,6 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aai/resources/api_suite +aai/resources/relationship_suite +aai/resources/error_handling_suite +aai/resources/db_edge_rule
\ No newline at end of file diff --git a/plans/aai/search-data-service/appconfig/analysis-config.json b/plans/aai/search-data-service/appconfig/analysis-config.json new file mode 100644 index 00000000..f98ea379 --- /dev/null +++ b/plans/aai/search-data-service/appconfig/analysis-config.json @@ -0,0 +1,32 @@ +[ + { + "name": "whitespace_analyzer", + "description": "A standard whitespace analyzer.", + "behaviours": [ + "Tokenize the text using white space characters as delimeters.", + "Convert all characters to lower case.", + "Convert all alphanumeric and symbolic Unicode characters above the first 127 ASCII characters into their ASCII equivalents." + ], + "tokenizer": "whitespace", + "filters": [ + "lowercase", + "asciifolding" + ] + }, + { + "name": "ngram_analyzer", + "description": "An analyzer which performs ngram filtering on the data stream.", + "behaviours": [ + "Tokenize the text using white space characters as delimeters.", + "Convert all characters to lower case.", + "Convert all alphanumeric and symbolic Unicode characters above the first 127 ASCII characters into their ASCII equivalents.", + "Apply ngram filtering using the following values for minimum and maximum size in codepoints of a single n-gram: minimum = 1, maximum = 2." + ], + "tokenizer": "whitespace", + "filters": [ + "lowercase", + "asciifolding", + "ngram_filter" + ] + } +]
\ No newline at end of file diff --git a/plans/aai/search-data-service/appconfig/auth/search_policy.json b/plans/aai/search-data-service/appconfig/auth/search_policy.json new file mode 100644 index 00000000..72d8902f --- /dev/null +++ b/plans/aai/search-data-service/appconfig/auth/search_policy.json @@ -0,0 +1,18 @@ +{ + "roles": [ + { + "name": "admin", + "functions": [ + { + "name": "search", "methods": [ { "name": "GET" },{ "name": "DELETE" }, { "name": "PUT" }, { "name": "POST" } ] + } + ], + + "users": [ + { + "username": "CN=ONAP, OU=ONAP, O=ONAP, L=Ottawa, ST=Ontario, C=CA" + } + ] + } + ] +} diff --git a/plans/aai/search-data-service/appconfig/auth/tomcat_keystore b/plans/aai/search-data-service/appconfig/auth/tomcat_keystore Binary files differnew file mode 100644 index 00000000..9eec841a --- /dev/null +++ b/plans/aai/search-data-service/appconfig/auth/tomcat_keystore diff --git a/plans/aai/search-data-service/appconfig/elastic-search.properties b/plans/aai/search-data-service/appconfig/elastic-search.properties new file mode 100644 index 00000000..5d9a37c0 --- /dev/null +++ b/plans/aai/search-data-service/appconfig/elastic-search.properties @@ -0,0 +1,6 @@ +# ElasticSearch Configuration + +es.cluster-name=ES_AAI +es.http-port=9200 + +## The IP address will be injected by the csit setup script diff --git a/plans/aai/search-data-service/appconfig/filter-config.json b/plans/aai/search-data-service/appconfig/filter-config.json new file mode 100644 index 00000000..e2d52858 --- /dev/null +++ b/plans/aai/search-data-service/appconfig/filter-config.json @@ -0,0 +1,7 @@ +[ + { + "name": "ngram_filter", + "description": "Custom NGram Filter.", + "configuration": " \"type\": \"nGram\", \"min_gram\": 1, \"max_gram\": 50, \"token_chars\": [ \"letter\", \"digit\", \"punctuation\", \"symbol\" ]" + } +]
\ No newline at end of file diff --git a/plans/aai/search-data-service/docker-compose.yml b/plans/aai/search-data-service/docker-compose.yml new file mode 100644 index 00000000..d48c9fa0 --- /dev/null +++ b/plans/aai/search-data-service/docker-compose.yml @@ -0,0 +1,26 @@ +version: '2' +services: + aai.searchservice.simpledemo.openecomp.org: + image: ${DOCKER_REGISTRY}/openecomp/search-data-service + hostname: aai.searchservice.simpledemo.openecomp.org + container_name: search-service-container + volumes: + - ${SEARCH_LOGS}:/logs + - ./appconfig:/opt/app/search-data-service/config + ports: + - 9509:9509 + environment: + - CONFIG_HOME=/opt/app/search-data-service/config/ + - KEY_STORE_PASSWORD=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 + - KEY_MANAGER_PASSWORD=OBF:1y0q1uvc1uum1uvg1pil1pjl1uuq1uvk1uuu1y10 + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: ${MTU} diff --git a/plans/aai/search-data-service/setup.sh b/plans/aai/search-data-service/setup.sh new file mode 100644 index 00000000..60703b65 --- /dev/null +++ b/plans/aai/search-data-service/setup.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# Copyright © 2017 Amdocs +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +echo search service setup script running + +export SEARCH_LOGS="/opt/aai/logroot/AAI-SEARCH"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; + +# inject the current IP to the elastic-search config file +echo "es.ip-address="`ip addr show docker0 | head -3 | tail -1 | cut -d' ' -f6 | cut -d'/' -f1` >> appconfig/elastic-search.properties + +docker run -d --name "stretchy" -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" elasticsearch:2.4.6 +docker-compose -f docker-compose.yml up -d aai.searchservice.simpledemo.openecomp.org + +echo sleeping for 10 seconds while services start up +sleep 10 + +ROBOT_VARIABLES="-v HOST_IP:`ip addr show docker0 | head -3 | tail -1 | cut -d' ' -f6 | cut -d'/' -f1`" + diff --git a/plans/aai/search-data-service/teardown.sh b/plans/aai/search-data-service/teardown.sh new file mode 100644 index 00000000..36d3e1da --- /dev/null +++ b/plans/aai/search-data-service/teardown.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# Copyright © 2017 Amdocs +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + + +export SEARCH_LOGS="/opt/aai/logroot/AAI-SEARCH"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; + +docker-compose -f docker-compose.yml stop +docker stop stretchy +docker-compose -f docker-compose.yml rm -f -v +docker rm stretchy + +# remove the line we injected into the elastic-search config +sed -i '$ d' appconfig/elastic-search.properties diff --git a/plans/aai/search-data-service/testplan.txt b/plans/aai/search-data-service/testplan.txt new file mode 100644 index 00000000..b0a72a0f --- /dev/null +++ b/plans/aai/search-data-service/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aai/search-data-service/suite1 diff --git a/plans/aai/traversal/aai-resources/appconfig/aai_keystore b/plans/aai/traversal/aai-resources/appconfig/aai_keystore Binary files differnew file mode 100644 index 00000000..1ddef0c9 --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/aai_keystore diff --git a/plans/aai/traversal/aai-resources/appconfig/aaiconfig.properties b/plans/aai/traversal/aai-resources/appconfig/aaiconfig.properties new file mode 100644 index 00000000..435507a8 --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/aaiconfig.properties @@ -0,0 +1,119 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.api.simpledemo.onap.org:8443/aai/ +aai.server.url=https://aai.api.simpledemo.onap.org:8443/aai/v11/ +aai.global.callback.url=https://aai.api.simpledemo.onap.org:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for crud enabled flag +aai.crud.timeoutenabled=true + +#timeout app specific -1 to bypass for that app id, a whole number to override the timeout with that value (in ms) +aai.crud.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAIRctFeed,-1|NewvceCreator,-1|IANewvceCreator,-1|AAI-CSIOVALS,-1 + +#default timeout limit added for crud if not overridden (in ms) +aai.crud.timeoutlimit=100000 +#limit set for bulk consumer APIS +aai.bulkconsumer.payloadlimit=30 + +#uncomment and use header X-OverrideLimit with the value to override the bulk api limit +#aai.bulkconsumer.payloadoverride=E6F04B93462CB5B0EDF41C05A9DDF5C3FE59748F +aai.bulkconsumer.payloadoverride=false diff --git a/plans/aai/traversal/aai-resources/appconfig/application.properties b/plans/aai/traversal/aai-resources/appconfig/application.properties new file mode 100644 index 00000000..b9c51eaf --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-resources +info.build.name=resources +info.build.description=Resources Microservice +info.build.version=1.2.0 + +spring.application.name=aai-resources +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-resources/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8447 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=mr.api.simpledemo.onap.org:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/plans/aai/traversal/aai-resources/appconfig/janusgraph-cached.properties b/plans/aai/traversal/aai-resources/appconfig/janusgraph-cached.properties new file mode 100644 index 00000000..c2110f77 --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/janusgraph-cached.properties @@ -0,0 +1,43 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/traversal/aai-resources/appconfig/janusgraph-realtime.properties b/plans/aai/traversal/aai-resources/appconfig/janusgraph-realtime.properties new file mode 100644 index 00000000..4791431a --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/janusgraph-realtime.properties @@ -0,0 +1,40 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/traversal/aai-resources/appconfig/localhost-access-logback.xml b/plans/aai/traversal/aai-resources/appconfig/localhost-access-logback.xml new file mode 100644 index 00000000..a318796c --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/plans/aai/traversal/aai-resources/appconfig/logback.xml b/plans/aai/traversal/aai-resources/appconfig/logback.xml new file mode 100644 index 00000000..ee7ee61a --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/logback.xml @@ -0,0 +1,391 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + + <property resource="application.properties" /> + + <property name="namespace" value="aai-resources"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="OFF" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/plans/aai/traversal/aai-resources/appconfig/realm.properties b/plans/aai/traversal/aai-resources/appconfig/realm.properties new file mode 100644 index 00000000..fb692cc3 --- /dev/null +++ b/plans/aai/traversal/aai-resources/appconfig/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/plans/aai/traversal/aai-traversal/appconfig/aai_keystore b/plans/aai/traversal/aai-traversal/appconfig/aai_keystore Binary files differnew file mode 100644 index 00000000..1ddef0c9 --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/aai_keystore diff --git a/plans/aai/traversal/aai-traversal/appconfig/aaiconfig.properties b/plans/aai/traversal/aai-traversal/appconfig/aaiconfig.properties new file mode 100644 index 00000000..cef10903 --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/aaiconfig.properties @@ -0,0 +1,114 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +#################################################################### +# REMEMBER TO THINK ABOUT ENVIRONMENTAL DIFFERENCES AND CHANGE THE +# TEMPLATE AND *ALL* DATAFILES +#################################################################### + +aai.config.checktime=1000 + +# this could come from siteconfig.pl? +aai.config.nodename=AutomaticallyOverwritten + + + +aai.auth.cspcookies_on=false +aai.dbmodel.filename=ex5.json + +aai.server.url.base=https://aai.api.simpledemo.onap.org:8443/aai/ +aai.server.url=https://aai.api.simpledemo.onap.org:8443/aai/v11/ +aai.global.callback.url=https://aai.api.simpledemo.onap.org:8443/aai/ + +aai.tools.enableBasicAuth=true +aai.tools.username=AAI +aai.tools.password=AAI + +aai.truststore.filename=aai_keystore +aai.truststore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 +aai.keystore.filename=aai_keystore +aai.keystore.passwd.x=OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0 + + +aai.notification.current.version=v11 +aai.notificationEvent.default.status=UNPROCESSED +aai.notificationEvent.default.eventType=AAI-EVENT +aai.notificationEvent.default.domain=dev +aai.notificationEvent.default.sourceName=aai +aai.notificationEvent.default.sequenceNumber=0 +aai.notificationEvent.default.severity=NORMAL +aai.notificationEvent.default.version=v11 +# This one lets us enable/disable resource-version checking on updates/deletes +aai.resourceversion.enableflag=true +aai.logging.maxStackTraceEntries=10 +aai.default.api.version=v11 + + + +# Used by Model-processing code +aai.model.delete.sleep.per.vtx.msec=500 +aai.model.query.resultset.maxcount=50 +aai.model.query.timeout.sec=90 + +# Used by Data Grooming +aai.grooming.default.max.file=150 +aai.grooming.default.sleep.minutes=7 + +aai.model.proc.max.levels=50 +aai.edgeTag.proc.max.levels=50 + +# for transaction log +aai.logging.hbase.interceptor=true +aai.logging.hbase.enabled=true +aai.logging.hbase.logrequest=true +aai.logging.hbase.logresponse=true + +# for gremlin server +aai.server.rebind=g +hbase.table.name=aailogging.dev +hbase.table.timestamp.format=YYYYMMdd-HH:mm:ss:SSS +hbase.zookeeper.quorum=localhost +hbase.zookeeper.property.clientPort=2181 +hbase.zookeeper.znode.parent=/hbase + +aai.logging.trace.enabled=true +aai.logging.trace.logrequest=false +aai.logging.trace.logresponse=false + +aai.transaction.logging=true +aai.transaction.logging.get=false +aai.transaction.logging.post=false + +#timeout for traversal enabled flag +aai.traversal.timeoutenabled=true + +#timeout app specific +aai.traversal.timeout.appspecific=JUNITTESTAPP1,1|JUNITTESTAPP2,-1|DCAE-CCS,-1|DCAES,-1|AAI-FILEGEN-GFPIP,-1 + +#default timeout limit added for traversal if not overridden (in ms) +aai.traversal.timeoutlimit=180000 + diff --git a/plans/aai/traversal/aai-traversal/appconfig/application.properties b/plans/aai/traversal/aai-traversal/appconfig/application.properties new file mode 100644 index 00000000..0292512c --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/application.properties @@ -0,0 +1,72 @@ +# The following info parameters are being referenced by ajsc6 +info.build.artifact=aai-traversal +info.build.name=traversal +info.build.description=Traversal Microservice +info.build.version=1.2.0 + +spring.application.name=aai-traversal +spring.jersey.type=filter + +server.contextPath=/ +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration + +spring.profiles.active=production,dmaap +#The max number of active threads in this pool +server.tomcat.max-threads=200 +#The minimum number of threads always kept alive +server.tomcat.min-Spare-Threads=25 +#The number of milliseconds before an idle thread shutsdown, unless the number of active threads are less or equal to minSpareThreads +server.tomcat.max-idle-time=60000 + + +#Add this properties only if you want to change the URL, AJSC Framework interceptors will intercept +#com.att.ajsc.common.interceptors.PreInterceptor.url=/** +#com.att.ajsc.common.interceptors.PostInterceptor.url=/** + +#Servlet context parameters +server.context_parameters.p-name=value #context parameter with p-name as key and value as value. +kubernetes.namespace=org-onap-aai + +# If you get an application startup failure that the port is already taken +# If thats not it, please check if the key-store file path makes sense +server.local.startpath=aai-traversal/src/main/resources/ +server.basic.auth.location=${server.local.startpath}etc/auth/realm.properties + +server.port=8446 +server.ssl.enabled-protocols=TLSv1.1,TLSv1.2 +server.ssl.key-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.key-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.trust-store=${server.local.startpath}etc/auth/aai_keystore +server.ssl.trust-store-password=password(OBF:1vn21ugu1saj1v9i1v941sar1ugw1vo0) +server.ssl.client-auth=want +server.ssl.key-store-type=JKS + +# JMS bind address host port +jms.bind.address=tcp://localhost:61647 +dmaap.ribbon.eureka.enabled=false +dmaap.ribbon.listOfServers=mr.api.simpledemo.onap.org:3904 +# Number of milliseconds to wait before making ping requests again +dmaap.ribbon.ServerListRefreshInterval=75000 +dmaap.ribbon.NFLoadBalancerPingInterval=75000 +dmaap.ribbon.NFLoadBalancerRuleClassName=com.netflix.loadbalancer.AvailabilityFilteringRule +dmaap.ribbon.NFLoadBalancerPingClassName=org.onap.aai.config.HttpPingImpl +dmaap.ribbon.EnableMarkingServerDownOnReachingFailureLimit=true +dmaap.ribbon.ServerDownFailureLimit=1 +# This needs to be verified but it seems that adding this property should automatically +# Make the dmaap client change the url from http to https depending on the server +dmaap.ribbon.securePorts=3905 + +# Custom Dmaap Specific Configuration +dmaap.ribbon.username= +dmaap.ribbon.password= +dmaap.ribbon.health.endpoint=/topics/AAI-EVENT +# Number of seconds to wait for the ping to work and might need to increase this if the pings are all failing +dmaap.ribbon.pingport.timeout=3 + +niws.loadbalancer.dmaap.filterCircuitTripped=true +niws.loadbalancer.dmaap.connectionFailureCountThreshold=3 +niws.loadbalancer.dmaap.circuitTripMaxTimeoutSeconds=180 +#dmaap.ribbon.retryableStatusCodes=404,503 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetriesNextServer=2 +#dmaap.ribbon.retryableStatusCodes.MaxAutoRetries=2 +#dmaap.ribbon.retryableStatusCodes.OkToRetryOnAllOperations=true diff --git a/plans/aai/traversal/aai-traversal/appconfig/janusgraph-cached.properties b/plans/aai/traversal/aai-traversal/appconfig/janusgraph-cached.properties new file mode 100644 index 00000000..c2110f77 --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/janusgraph-cached.properties @@ -0,0 +1,43 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +#caching on +cache.db-cache = true +cache.db-cache-clean-wait = 20 +cache.db-cache-time = 180000 +cache.db-cache-size = 0.3 + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/traversal/aai-traversal/appconfig/janusgraph-realtime.properties b/plans/aai/traversal/aai-traversal/appconfig/janusgraph-realtime.properties new file mode 100644 index 00000000..4791431a --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/janusgraph-realtime.properties @@ -0,0 +1,40 @@ +# +# ============LICENSE_START======================================================= +# org.onap.aai +# ================================================================================ +# Copyright © 2017 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# + +query.fast-property=true +query.smart-limit=false + +# the following parameters are not reloaded automatically and require a manual bounce +storage.backend=cassandra +storage.hostname=aai.hbase.simpledemo.onap.org + +storage.cassandra.keyspace=aaigraph + +#schema.default=none +storage.lock.wait-time=300 +storage.hbase.table=aaigraph-dev1.dev +storage.hbase.ext.zookeeper.znode.parent=/hbase +# Setting db-cache to false ensure the fastest propagation of changes across servers +cache.db-cache = false + +#load graphson file on startup +load.snapshot.file=false diff --git a/plans/aai/traversal/aai-traversal/appconfig/localhost-access-logback.xml b/plans/aai/traversal/aai-traversal/appconfig/localhost-access-logback.xml new file mode 100644 index 00000000..a318796c --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/localhost-access-logback.xml @@ -0,0 +1,62 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration> + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <appender name="ACCESS" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${AJSC_HOME}/logs/ajsc-jetty/localhost_access.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.CustomLogPatternLayoutEncoder"> + <Pattern>%a %u %z [%t] "%m %U%q" %s %b %y %i{X-TransactionId} %i{X-FromAppId} %i{X-Forwarded-For} %i{X-AAI-SSL-Client-CN} %i{X-AAI-SSL-Client-OU} %i{X-AAI-SSL-Client-O} %i{X-AAI-SSL-Client-L} %i{X-AAI-SSL-Client-ST} %i{X-AAI-SSL-Client-C} %i{X-AAI-SSL-Client-NotBefore} %i{X-AAI-SSL-Client-NotAfter} %i{X-AAI-SSL-Client-DN} %D</Pattern> + </encoder> + </appender> + <appender-ref ref="ACCESS" /> +</configuration> + +<!-- +%a - Remote IP address +%A - Local IP address +%b - Bytes sent, excluding HTTP headers, or '-' if no bytes were sent +%B - Bytes sent, excluding HTTP headers +%h - Remote host name +%H - Request protocol +%l - Remote logical username from identd (always returns '-') +%m - Request method +%p - Local port +%q - Query string (prepended with a '?' if it exists, otherwise an empty string +%r - First line of the request +%s - HTTP status code of the response +%S - User session ID +%t - Date and time, in Common Log Format format +%u - Remote user that was authenticated +%U - Requested URL path +%v - Local server name +%I - current request thread name (can compare later with stacktraces) + +%z - Custom pattern that parses the cert for the subject +%y - Custom pattern determines rest or dme2 + -->
\ No newline at end of file diff --git a/plans/aai/traversal/aai-traversal/appconfig/logback.xml b/plans/aai/traversal/aai-traversal/appconfig/logback.xml new file mode 100644 index 00000000..31bfe10c --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/logback.xml @@ -0,0 +1,391 @@ +<!-- + + ============LICENSE_START======================================================= + org.onap.aai + ================================================================================ + Copyright © 2017 AT&T Intellectual Property. All rights reserved. + ================================================================================ + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + ============LICENSE_END========================================================= + + ECOMP is a trademark and service mark of AT&T Intellectual Property. + +--> +<configuration scan="true" scanPeriod="60 seconds" debug="false"> + <statusListener class="ch.qos.logback.core.status.NopStatusListener" /> + + <property resource="application.properties" /> + + <property name="namespace" value="aai-traversal"/> + + <property name="AJSC_HOME" value="${AJSC_HOME:-.}" /> + <jmxConfigurator /> + <property name="logDirectory" value="${AJSC_HOME}/logs" /> + <property name="eelfLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfAuditLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfMetricLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{targetVirtualEntity}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <!-- <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n|\r\n', '^'}|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> --> + <property name="eelfErrorLogPattern" value="%ecompStartTime|%X{requestId}|%-10t|%X{serviceName}|%X{partnerName}|%X{targetEntity}|%X{targetServiceName}|%ecompErrorCategory|%ecompResponseCode|%ecompResponseDescription|co=%X{component}:%replace(%replace(%m){'\\|', '!'}){'\r|\n', '^'}%n"/> + <property name="eelfTransLogPattern" value="%ecompStartTime|%date{yyyy-MM-dd'T'HH:mm:ss.SSSZ, UTC}|%X{requestId}|%X{serviceInstanceId}|%-10t|%X{serverName}|%X{serviceName}|%X{partnerName}|%X{statusCode}|%X{responseCode}|%replace(%replace(%X{responseDescription}){'\\|', '!'}){'\r|\n', '^'}|%X{instanceUUID}|%level|%X{severity}|%X{serverIpAddress}|%ecompElapsedTime|%X{server}|%X{clientIpAddress}|%eelfClassOfCaller|%X{unused}|%X{processKey}|%X{customField1}|%X{customField2}|%X{customField3}|%X{customField4}|co=%X{partnerName}:%m%n"/> + + <conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter" /> + <conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter" /> + <conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter" /> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <pattern> + %clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx} + </pattern> + </encoder> + </appender> + + <appender name="SANE" class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/sane.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/sane.log.%d{yyyy-MM-dd}</fileNamePattern> + </rollingPolicy> + <encoder> + <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{1024} - %msg%n + </pattern> + </encoder> + </appender> + + <appender name="asyncSANE" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="SANE" /> + </appender> + + <appender name="METRIC" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/metrics.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="asyncMETRIC" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="METRIC" /> + </appender> + + <appender name="DEBUG" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/debug.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncDEBUG" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="DEBUG" /> + </appender> + + <appender name="ERROR" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/rest/error.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfErrorLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncERROR" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="ERROR" /> + </appender> + + <appender name="AUDIT" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <file>${logDirectory}/rest/audit.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/audit.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfAuditLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asyncAUDIT" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="AUDIT" /> + </appender> + + <appender name="translog" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <file>${logDirectory}/rest/translog.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/rest/translog.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfTransLogPattern}</pattern> + </encoder> + </appender> + + <appender name="asynctranslog" class="ch.qos.logback.classic.AsyncAppender"> + <queueSize>1000</queueSize> + <includeCallerData>true</includeCallerData> + <appender-ref ref="translog" /> + </appender> + + <appender name="dmaapAAIEventConsumer" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/error.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/error.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + + <appender name="dmaapAAIEventConsumerDebug" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>DEBUG</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/debug.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/debug.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <appender name="dmaapAAIEventConsumerMetric" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.LevelFilter"> + <level>INFO</level> + <onMatch>ACCEPT</onMatch> + <onMismatch>DENY</onMismatch> + </filter> + <File>${logDirectory}/dmaapAAIEventConsumer/metrics.log</File> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/dmaapAAIEventConsumer/metrics.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfMetricLogPattern}</pattern> + </encoder> + </appender> + <appender name="external" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> + <level>WARN</level> + </filter> + <file>${logDirectory}/external/external.log</file> + <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> + <fileNamePattern>${logDirectory}/external/external.log.%d{yyyy-MM-dd} + </fileNamePattern> + </rollingPolicy> + <encoder class="org.onap.aai.logging.EcompEncoder"> + <pattern>${eelfLogPattern}</pattern> + </encoder> + </appender> + <logger name="org.onap.aai" level="DEBUG" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + <appender-ref ref="asyncSANE" /> + </logger> + + <!-- Spring related loggers --> + <logger name="org.springframework" level="WARN" /> + <logger name="org.springframework.beans" level="WARN" /> + <logger name="org.springframework.web" level="WARN" /> + <logger name="com.blog.spring.jms" level="WARN" /> + <logger name="com.jayway.jsonpath" level="WARN" /> + + <!-- AJSC Services (bootstrap services) --> + <logger name="ajsc" level="WARN" /> + <logger name="ajsc.RouteMgmtService" level="WARN" /> + <logger name="ajsc.ComputeService" level="WARN" /> + <logger name="ajsc.VandelayService" level="WARN" /> + <logger name="ajsc.FilePersistenceService" level="WARN" /> + <logger name="ajsc.UserDefinedJarService" level="WARN" /> + <logger name="ajsc.UserDefinedBeansDefService" level="WARN" /> + <logger name="ajsc.LoggingConfigurationService" level="WARN" /> + + <!-- AJSC related loggers (DME2 Registration, csi logging, restlet, servlet + logging) --> + <logger name="org.codehaus.groovy" level="WARN" /> + <logger name="com.att.scamper" level="WARN" /> + <logger name="ajsc.utils" level="WARN" /> + <logger name="ajsc.utils.DME2Helper" level="WARN" /> + <logger name="ajsc.filters" level="WARN" /> + <logger name="ajsc.beans.interceptors" level="WARN" /> + <logger name="ajsc.restlet" level="WARN" /> + <logger name="ajsc.servlet" level="WARN" /> + <logger name="com.att.ajsc" level="WARN" /> + <logger name="com.att.ajsc.csi.logging" level="WARN" /> + <logger name="com.att.ajsc.filemonitor" level="WARN" /> + <logger name="com.netflix.loadbalancer" level="WARN" /> + + <logger name="org.apache.zookeeper" level="OFF" /> + + <!-- Other Loggers that may help troubleshoot --> + <logger name="net.sf" level="WARN" /> + <logger name="org.apache.commons.httpclient" level="WARN" /> + <logger name="org.apache.commons" level="WARN" /> + <logger name="org.apache.coyote" level="WARN" /> + <logger name="org.apache.jasper" level="WARN" /> + + <!-- Camel Related Loggers (including restlet/servlet/jaxrs/cxf logging. + May aid in troubleshooting) --> + <logger name="org.apache.camel" level="WARN" /> + <logger name="org.apache.cxf" level="WARN" /> + <logger name="org.apache.camel.processor.interceptor" level="WARN" /> + <logger name="org.apache.cxf.jaxrs.interceptor" level="WARN" /> + <logger name="org.apache.cxf.service" level="WARN" /> + <logger name="org.restlet" level="WARN" /> + <logger name="org.apache.camel.component.restlet" level="WARN" /> + + <logger name="org.hibernate.validator" level="WARN" /> + <logger name="org.hibernate" level="WARN" /> + <logger name="org.hibernate.ejb" level="OFF" /> + + <!-- logback internals logging --> + <logger name="ch.qos.logback.classic" level="WARN" /> + <logger name="ch.qos.logback.core" level="WARN" /> + + <logger name="org.eclipse.jetty" level="WARN" /> + + <!-- logback jms appenders & loggers definition starts here --> + <appender name="auditLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Audit-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <appender name="perfLogs" + class="ch.qos.logback.core.rolling.RollingFileAppender"> + <filter class="ch.qos.logback.classic.filter.ThresholdFilter" /> + <file>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.log + </file> + <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy"> + <fileNamePattern>${logDirectory}/perf-audit/Perform-${lrmRVer}-${lrmRO}-${Pid}.%i.log.zip + </fileNamePattern> + <minIndex>1</minIndex> + <maxIndex>9</maxIndex> + </rollingPolicy> + <triggeringPolicy + class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy"> + <maxFileSize>5MB</maxFileSize> + </triggeringPolicy> + <encoder> + <pattern>"%d [%thread] %-5level %logger{1024} - %msg%n"</pattern> + </encoder> + </appender> + <logger name="AuditRecord" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="AuditRecord_DirectCall" level="INFO" additivity="false"> + <appender-ref ref="auditLogs" /> + </logger> + <logger name="PerfTrackerRecord" level="INFO" additivity="false"> + <appender-ref ref="perfLogs" /> + </logger> + <!-- logback jms appenders & loggers definition ends here --> + + <logger name="org.onap.aai.interceptors.post" level="DEBUG" + additivity="false"> + <appender-ref ref="asynctranslog" /> + </logger> + + <logger name="org.onap.aai.interceptors.pre.SetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.interceptors.post.ResetLoggingContext" level="DEBUG"> + <appender-ref ref="asyncAUDIT"/> + </logger> + + <logger name="org.onap.aai.dmaap" level="DEBUG" additivity="false"> + <appender-ref ref="dmaapAAIEventConsumer" /> + <appender-ref ref="dmaapAAIEventConsumerDebug" /> + <appender-ref ref="dmaapAAIEventConsumerMetric" /> + </logger> + + <logger name="org.apache" level="OFF" /> + <logger name="org.zookeeper" level="OFF" /> + <logger name="com.thinkaurelius" level="WARN" /> + <logger name="com.att.aft.dme2" level="WARN" /> + + <!-- ============================================================================ --> + <!-- General EELF logger --> + <!-- ============================================================================ --> + <logger name="com.att.eelf" level="WARN" additivity="false"> + <appender-ref ref="asyncDEBUG" /> + <appender-ref ref="asyncERROR" /> + <appender-ref ref="asyncMETRIC" /> + </logger> + + <root level="DEBUG"> + <appender-ref ref="external" /> + </root> +</configuration> diff --git a/plans/aai/traversal/aai-traversal/appconfig/realm.properties b/plans/aai/traversal/aai-traversal/appconfig/realm.properties new file mode 100644 index 00000000..fb692cc3 --- /dev/null +++ b/plans/aai/traversal/aai-traversal/appconfig/realm.properties @@ -0,0 +1,12 @@ +# format : username: password[,rolename ...] +# default username/password: AAI/AAI, MSO/MSO, ModelLoader/ModelLoader... +AAI:OBF:1gfr1ev31gg7,admin +MSO:OBF:1jzx1lz31k01,admin +SDNC:OBF:1itr1i0l1i151isv,admin +DCAE:OBF:1g8u1f9d1f991g8w,admin +POLICY:OBF:1mk61i171ima1im41i0j1mko,admin +ASDC:OBF:1f991j0u1j001f9d,admin +VID:OBF:1jm91i0v1jl9,admin +APPC:OBF:1f991ksf1ksf1f9d,admin +ModelLoader:OBF:1qvu1v2h1sov1sar1wfw1j7j1wg21saj1sov1v1x1qxw,admin +AaiUI:OBF:1gfr1p571unz1p4j1gg7,admin diff --git a/plans/aai/traversal/docker-compose.yml b/plans/aai/traversal/docker-compose.yml new file mode 100644 index 00000000..6f62e6ef --- /dev/null +++ b/plans/aai/traversal/docker-compose.yml @@ -0,0 +1,86 @@ +version: '2' +services: + aai-resources.api.simpledemo.onap.org: + image: ${DOCKER_REGISTRY}/onap/aai-resources + hostname: aai-resources.api.simpledemo.onap.org + environment: + - LOCAL_USER_ID=${USER_ID} + - LOCAL_GROUP_ID=${GROUP_ID} + - SKIP_CREATE_DB_SCHEMA_AT_STARTUP=true + ports: + - 8447:8447 + volumes: + - ${CURRENT_PWD}/aai-resources/appconfig/janusgraph-realtime.properties:/opt/app/aai-resources/resources/etc/appprops/janusgraph-realtime.properties + - ${CURRENT_PWD}/aai-resources/appconfig/janusgraph-cached.properties:/opt/app/aai-resources/resources/etc/appprops/janusgraph-cached.properties + - ${CURRENT_PWD}/aai-resources/appconfig/aaiconfig.properties:/opt/app/aai-resources/resources/etc/appprops/aaiconfig.properties + - ${CURRENT_PWD}/aai-resources/appconfig/application.properties:/opt/app/aai-resources/resources/application.properties + - ${CURRENT_PWD}/aai-resources/appconfig/logback.xml:/opt/app/aai-resources/resources/logback.xml + - ${CURRENT_PWD}/aai-resources/appconfig/localhost-access-logback.xml:/opt/app/aai-resources/resources/localhost-access-logback.xml + - ${CURRENT_PWD}/aai-resources/appconfig/aai_keystore:/opt/app/aai-resources/resources/etc/auth/aai_keystore + - ${CURRENT_PWD}/aai-resources/appconfig/realm.properties:/opt/app/aai-resources/resources/etc/auth/realm.properties + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai-traversal.api.simpledemo.onap.org: + image: ${DOCKER_REGISTRY}/onap/aai-traversal + hostname: aai-traversal.api.simpledemo.onap.org + environment: + - LOCAL_USER_ID=${USER_ID} + - LOCAL_GROUP_ID=${GROUP_ID} + - DISABLE_UPDATE_QUERY=true + volumes: + - ${CURRENT_PWD}/aai-traversal/appconfig/janusgraph-realtime.properties:/opt/app/aai-traversal/resources/etc/appprops/janusgraph-realtime.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/janusgraph-cached.properties:/opt/app/aai-traversal/resources/etc/appprops/janusgraph-cached.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/aaiconfig.properties:/opt/app/aai-traversal/resources/etc/appprops/aaiconfig.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/application.properties:/opt/app/aai-traversal/resources/application.properties + - ${CURRENT_PWD}/aai-traversal/appconfig/logback.xml:/opt/app/aai-traversal/resources/logback.xml + - ${CURRENT_PWD}/aai-traversal/appconfig/localhost-access-logback.xml:/opt/app/aai-traversal/resources/localhost-access-logback.xml + - ${CURRENT_PWD}/aai-traversal/appconfig/aai_keystore:/opt/app/aai-traversal/resources/etc/auth/aai_keystore + - ${CURRENT_PWD}/aai-traversal/appconfig/realm.properties:/opt/app/aai-traversal/resources/etc/auth/realm.properties + ports: + - 8446:8446 + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai.api.simpledemo.onap.org: + image: ${AAI_HAPROXY_IMAGE}:${HAPROXY_VERSION} + hostname: aai.api.simpledemo.onap.org + ports: + - 8443:8443 + links: + - aai-resources.api.simpledemo.onap.org + - aai-traversal.api.simpledemo.onap.org + volumes: + - /dev/log:/dev/log + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" + aai.hbase.simpledemo.onap.org: + image: cassandra:2.1 + hostname: aai.hbase.simpledemo.onap.org + ports: + - 7000:7000 + - 7001:7001 + - 7199:7199 + - 9042:9042 + environment: + - CASSANDRA_SEEDS=aai.hbase.simpledemo.onap.org + - CASSANDRA_DC=Heat + - CASSANDRA_RACK=Rack1 + - CASSANDRA_AUTO_BOOTSTRAP=true + logging: + driver: "json-file" + options: + max-size: "30m" + max-file: "5" +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: ${MTU} diff --git a/plans/aai/traversal/setup.sh b/plans/aai/traversal/setup.sh new file mode 100644 index 00000000..70dda84b --- /dev/null +++ b/plans/aai/traversal/setup.sh @@ -0,0 +1,119 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +source ${SCRIPTS}/common_functions.sh + +NEXUS_USERNAME=$(cat /opt/config/nexus_username.txt) +NEXUS_PASSWD=$(cat /opt/config/nexus_password.txt) +NEXUS_DOCKER_REPO=$(cat /opt/config/nexus_docker_repo.txt) +DOCKER_IMAGE_VERSION=$(cat /opt/config/docker_version.txt) +DOCKER_REGISTRY=${NEXUS_DOCKER_REPO} +DOCKER_IMAGE_VERSION=1.2-STAGING-latest + +export CURRENT_PWD=$(pwd); + +function wait_for_container() { + + CONTAINER_NAME="$1"; + START_TEXT="$2"; + + TIMEOUT=360 + + # wait for the real startup + AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l) + while [[ ${AMOUNT_STARTUP} -ne 1 ]]; + do + echo "Waiting for '$CONTAINER_NAME' deployment to finish ..." + AMOUNT_STARTUP=$(docker logs ${CONTAINER_NAME} 2>&1 | grep "$START_TEXT" | wc -l) + if [ "$TIMEOUT" = "0" ]; + then + docker logs ${CONTAINER_NAME}; + echo "ERROR: $CONTAINER_NAME deployment failed." + exit 1 + fi + let TIMEOUT-=1 + sleep 1 + done +} + +DOCKER_COMPOSE_CMD="docker-compose"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; +export AAI_HAPROXY_IMAGE="${AAI_HAPROXY_IMAGE:-aaionap/haproxy}"; +export HAPROXY_VERSION="${HAPROXY_VERSION:-1.2.0}"; +export HBASE_IMAGE="${HBASE_IMAGE:-aaionap/hbase}"; +export HBASE_VERSION="${HBASE_VERSION:-1.2.0}"; + +docker pull ${HBASE_IMAGE}:${HBASE_VERSION}; + +docker pull ${DOCKER_REGISTRY}/onap/aai-resources:${DOCKER_IMAGE_VERSION}; +docker tag ${DOCKER_REGISTRY}/onap/aai-resources:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/onap/aai-resources:latest; + +docker pull ${DOCKER_REGISTRY}/onap/aai-traversal:${DOCKER_IMAGE_VERSION}; +docker tag ${DOCKER_REGISTRY}/onap/aai-traversal:${DOCKER_IMAGE_VERSION} ${DOCKER_REGISTRY}/onap/aai-traversal:latest; + +${DOCKER_COMPOSE_CMD} stop +${DOCKER_COMPOSE_CMD} rm -f -v + +# Start the hbase where the data will be stored +CASSANDRA_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai.hbase.simpledemo.onap.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1); +wait_for_container $CASSANDRA_CONTAINER_NAME 'Listening for thrift clients'; + +USER_EXISTS=$(check_if_user_exists aaiadmin); + +function check_if_user_exists(){ + local user_id=$1; + + if [ -z "$user_id" ]; then + echo "Needs to provide at least one argument for check_if_user_exists func"; + exit 1; + fi; + + id -u ${user_id} > /dev/null 2>&1 && { + echo "1"; + } || { + echo "0"; + } +} + + +if [ "${USER_EXISTS}" -eq 0 ]; then + export USER_ID=9000; + export GROUP_ID=9000; +else + export USER_ID=$(id -u aaiadmin); + export GROUP_ID=$(id -g aaiadmin); +fi; + +$DOCKER_COMPOSE_CMD run --rm aai-resources.api.simpledemo.onap.org createDBSchema.sh + +RESOURCES_CONTAINER_NAME=$(${DOCKER_COMPOSE_CMD} up -d aai-resources.api.simpledemo.onap.org 2>&1 | grep 'Creating' | grep -v 'volume' | grep -v 'network' | awk '{ print $2; }' | head -1); +wait_for_container $RESOURCES_CONTAINER_NAME 'Resources Microservice Started'; + +${DOCKER_COMPOSE_CMD} up -d aai-traversal.api.simpledemo.onap.org aai.api.simpledemo.onap.org +TRAVERSAL_CONTAINER_NAME=$(echo $RESOURCES_CONTAINER_NAME | sed 's/aai-resources/aai-traversal/g'); + +$DOCKER_COMPOSE_CMD run --rm aai-traversal.api.simpledemo.onap.org install/updateQueryData.sh + +echo "A&AI Microservices, resources and traversal, are up and running along with HAProxy"; + +wait_for_container $TRAVERSAL_CONTAINER_NAME 'Traversal Microservice Started'; + +# Set the host ip for robot from the haproxy +ROBOT_VARIABLES="-v HOST_IP:`ip addr show docker0 | head -3 | tail -1 | cut -d' ' -f6 | cut -d'/' -f1`" diff --git a/plans/aai/traversal/teardown.sh b/plans/aai/traversal/teardown.sh new file mode 100644 index 00000000..8dd6358d --- /dev/null +++ b/plans/aai/traversal/teardown.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# Copyright © 2017 AT&T Intellectual Property. +# Copyright © 2017 Amdocs +# All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# ECOMP is a trademark and service mark of AT&T Intellectual Property. + +DOCKER_COMPOSE_CMD="docker-compose"; +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1); +export DOCKER_REGISTRY="nexus3.onap.org:10001"; + +$DOCKER_COMPOSE_CMD stop +$DOCKER_COMPOSE_CMD rm -f -v + diff --git a/plans/aai/traversal/testplan.txt b/plans/aai/traversal/testplan.txt new file mode 100644 index 00000000..9b48bf9b --- /dev/null +++ b/plans/aai/traversal/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +aai/traversal/suite1 diff --git a/plans/appc/healthcheck/bundle_query.sh b/plans/appc/healthcheck/bundle_query.sh new file mode 100755 index 00000000..3801d0a1 --- /dev/null +++ b/plans/appc/healthcheck/bundle_query.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPTS + + +num_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) +#num_failed_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) +num_failed_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) +failed_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) + +echo "There are $num_failed_bundles failed bundles out of $num_bundles installed bundles." + +if [ "$num_failed_bundles" -ge 1 ] || [ "$num_bundles" == "" ]; then + echo "There are $num_bundles bundles with $num_failed_bundles in a failed state. " + echo "The following bundle(s) are in a failed state: " + echo " $failed_bundles" + exit 1; +fi + +exit 0 diff --git a/plans/appc/healthcheck/db_query.sh b/plans/appc/healthcheck/db_query.sh new file mode 100755 index 00000000..70829a13 --- /dev/null +++ b/plans/appc/healthcheck/db_query.sh @@ -0,0 +1,66 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPTS + +sdnctl_num_tables=$(docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<'show tables;' 2>/dev/null | grep -v ERROR | wc -l) + +appcctl_num_tables=$(docker exec -i sdnc_db_container mysql -s -D appcctl -u appcctl -pappcctl <<<'show tables;' 2>/dev/null | grep -v ERROR | wc -l) + + + +docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<"show tables" 2>/dev/null | ( while read table_name; do +export $table_name="$(docker exec -i sdnc_db_container mysql -s -D sdnctl -u sdnctl -pgamma <<<"select count(*) from $table_name" 2>/dev/null)" +done + +if [ "$sdnctl_num_tables" -ge "1" ]; then + echo "There are $sdnctl_num_tables tables in the sdnctl database. " +else + echo "Database sdnctl is not available." + exit 1; +fi + +if [ "$appcctl_num_tables" -ge "1" ]; then + echo "There is $appcctl_num_tables table in the appcctl database. " +else + echo "Database appcctl is not available." + exit 1; +fi + +#if [ "$NODE_TYPES" -eq "0" ]; then +# echo "There is no data in table NODE_TYPES. " +# exit 1; +#fi + +#if [ "$SVC_LOGIC" -eq "0" ] ; then +# echo "There is no data in table SVC_LOGIC. " +# exit 1; +#fi + +#if [ "$VNF_DG_MAPPING" -eq "0" ]; then +# echo "There is no data in table VNF_DG_MAPPING. " +# exit 1; +#fi + +echo "Expected table data is present." +exit 0 ) + +if [ "$?" -eq "1" ]; then + exit 1; +fi + +exit 0 diff --git a/plans/appc/healthcheck/health_check.sh b/plans/appc/healthcheck/health_check.sh new file mode 100755 index 00000000..775188f6 --- /dev/null +++ b/plans/appc/healthcheck/health_check.sh @@ -0,0 +1,28 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2018 AT&T +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# 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. +############################################################################### +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPTS + +response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-appc" -H "X-TransactionId: csit-appc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck ) + +if [ "$response" == "200" ]; then + echo "APPC health check passed." + exit 0; +fi + +echo "APPC health check failed with response code ${response}." +exit 1 diff --git a/plans/appc/healthcheck/setup.sh b/plans/appc/healthcheck/setup.sh new file mode 100755 index 00000000..da441ea5 --- /dev/null +++ b/plans/appc/healthcheck/setup.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source ${WORKSPACE}/test/csit/scripts/appc/script1.sh + +export APPC_DOCKER_IMAGE_VERSION=1.4.0-SNAPSHOT-latest +export CCSDK_DOCKER_IMAGE_VERSION=0.2-STAGING-latest +export BRANCH=master +export SOLUTION_NAME=onap + +export NEXUS_USERNAME=docker +export NEXUS_PASSWD=docker +export NEXUS_DOCKER_REPO=nexus3.onap.org:10001 +export DMAAP_TOPIC=AUTO + +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) + +if [ "$MTU" == "" ]; then + export MTU="1450" +fi + + +# Clone APPC repo to get docker-compose for APPC +mkdir -p $WORKSPACE/archives/appc +cd $WORKSPACE/archives +git clone -b $BRANCH --single-branch http://gerrit.onap.org/r/appc/deployment.git appc +cd $WORKSPACE/archives/appc +git pull +cd $WORKSPACE/archives/appc/docker-compose +sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="$DMAAP_TOPIC"/g" docker-compose.yml +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO +docker pull $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-image:$APPC_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-image:$APPC_DOCKER_IMAGE_VERSION ${SOLUTION_NAME}/appc-image:latest +docker pull $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION ${SOLUTION_NAME}/ccsdk-dgbuilder-image:latest +docker pull $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-cdt-image:$APPC_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/${SOLUTION_NAME}/appc-cdt-image:$APPC_DOCKER_IMAGE_VERSION ${SOLUTION_NAME}/appc-cdt-image:latest + +# start APPC containers with docker compose and configuration from docker-compose.yml +docker-compose up -d +# WAIT 5 minutes maximum and test every 5 seconds if APPC is up using HealthCheck API +TIME_OUT=2000 +INTERVAL=30 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + +startODL_status=$(docker exec appc_controller_container ps -e | grep startODL | wc -l) +waiting_bundles=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Waiting | wc -l) +run_level=$(docker exec appc_controller_container /opt/opendaylight/current/bin/client system:start-level) + + if [ "$run_level" == "Level 100" ] && [ "$startODL_status" -lt "1" ] && [ "$waiting_bundles" -lt "1" ] ; then + echo APPC started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if APPC is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for testing activities... +fi + +sleep 300 + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" diff --git a/plans/appc/healthcheck/teardown.sh b/plans/appc/healthcheck/teardown.sh new file mode 100755 index 00000000..94d1bc77 --- /dev/null +++ b/plans/appc/healthcheck/teardown.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh appc_controller_container +kill-instance.sh ccsdk_dgbuilder_container +kill-instance.sh appc_cdt_container +kill-instance.sh sdnc_db_container + +# $WORKSPACE/archives/appc deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/appc/healthcheck/testplan.txt b/plans/appc/healthcheck/testplan.txt new file mode 100644 index 00000000..97d82786 --- /dev/null +++ b/plans/appc/healthcheck/testplan.txt @@ -0,0 +1,5 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +appc/healthcheck +appc/cdt + diff --git a/plans/ccsdk/healthcheck/health_check.sh b/plans/ccsdk/healthcheck/health_check.sh new file mode 100644 index 00000000..ffc766fe --- /dev/null +++ b/plans/ccsdk/healthcheck/health_check.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPTS + +unset http_proxy https_proxy + +response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-sdnc" -H "X-TransactionId: csit-ccsdk" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8383/restconf/operations/SLI-API:healthcheck ) + +if [ "$response" == "200" ]; then + echo "CCSDK health check passed." + exit 0; +fi + +echo "CCSDK health check failed with response code ${response}." +exit 1 diff --git a/plans/ccsdk/healthcheck/setup.sh b/plans/ccsdk/healthcheck/setup.sh new file mode 100644 index 00000000..bdb5b550 --- /dev/null +++ b/plans/ccsdk/healthcheck/setup.sh @@ -0,0 +1,125 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source ${WORKSPACE}/test/csit/scripts/ccsdk/script1.sh + +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) +export NEXUS_DOCKER_REPO="nexus3.onap.org:10001" +export NEXUS_USERNAME=docker +export NEXUS_PASSWD=docker +export DMAAP_TOPIC=AUTO +export CCSDK_DOCKER_IMAGE_VERSION=0.3-STAGING-latest + +if [ "$MTU" == "" ]; then + export MTU="1450" +fi + + +# Clone CCSDK repo to get docker-compose for CCSDK +mkdir -p $WORKSPACE/archives/ccsdk +cd $WORKSPACE/archives +git clone -b master --single-branch http://gerrit.onap.org/r/ccsdk/distribution.git ccsdk +cd $WORKSPACE/archives/ccsdk +git pull +unset http_proxy https_proxy +cd $WORKSPACE/archives/ccsdk/src/main/yaml + +sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="AUTO"/g" docker-compose.yml +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO + +docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-odl-image:$CCSDK_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odl-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odl-image:0.3-STAGING-latest + +docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:0.3-STAGING-latest + +docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-image:$CCSDK_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-odlsli-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-odlsli-image:0.3-STAGING-latest + +# start CCSDK containers with docker compose and configuration from docker-compose.yml +curl -L https://github.com/docker/compose/releases/download/1.9.0/docker-compose-`uname -s`-`uname -m` > docker-compose +chmod +x docker-compose +./docker-compose up -d + +# WAIT 5 minutes maximum and test every 5 seconds if CCSDK is up using HealthCheck API +TIME_OUT=500 +INTERVAL=30 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-ccsdk" -H "X-TransactionId: csit-ccsdk" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8383/restconf/operations/SLI-API:healthcheck ); echo $response + + if [ "$response" == "200" ]; then + echo CCSDK started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if CCSDK is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for testing activities... +fi + +#sleep 800 + +TIME_OUT=1500 +INTERVAL=60 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + +docker exec ccsdk_odlsli_container rm -f /opt/opendaylight/current/etc/host.key +response=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client system:start-level) +docker exec ccsdk_odlsli_container rm -f /opt/opendaylight/current/etc/host.key +num_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + + if [ "$response" == "Level 100" ] && [ "$num_bundles" -ge 333 ]; then + echo CCSDK karaf started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if CCSDK is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: karaf session not started in $TIME_OUT seconds... Could cause problems for testing activities... +fi + +response=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client system:start-level) +num_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + + if [ "$response" == "Level 100" ] && [ "$num_bundles" -ge 333 ]; then + num_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + num_failed_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) + failed_bundles=$(docker exec ccsdk_odlsli_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) + echo There is/are $num_failed_bundles failed bundles out of $num_bundles installed bundles. + fi + +if [ "$num_failed_bundles" -ge 1 ]; then + echo "The following bundle(s) are in a failed state: " + echo " $failed_bundles" +fi + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" + diff --git a/plans/ccsdk/healthcheck/teardown.sh b/plans/ccsdk/healthcheck/teardown.sh new file mode 100644 index 00000000..56820786 --- /dev/null +++ b/plans/ccsdk/healthcheck/teardown.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh ccsdk_db_container +kill-instance.sh ccsdk_dgbuilder_container +kill-instance.sh ccsdk_odlsli_container + +# $WORKSPACE/archives/appc deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/ccsdk/healthcheck/testplan.txt b/plans/ccsdk/healthcheck/testplan.txt new file mode 100644 index 00000000..affe635b --- /dev/null +++ b/plans/ccsdk/healthcheck/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +ccsdk/healthcheck + diff --git a/plans/clamp/APIs/setup.sh b/plans/clamp/APIs/setup.sh new file mode 100755 index 00000000..bb7a8144 --- /dev/null +++ b/plans/clamp/APIs/setup.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + +source ${WORKSPACE}/test/csit/scripts/clamp/clone_clamp_and_change_dockercompose.sh + +source ${WORKSPACE}/test/csit/scripts/clamp/start_clamp_containers.sh + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +#ROBOT_VARIABLES="-v TEST:${TEST}" + diff --git a/plans/clamp/APIs/teardown.sh b/plans/clamp/APIs/teardown.sh new file mode 100755 index 00000000..07067e60 --- /dev/null +++ b/plans/clamp/APIs/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +source ${WORKSPACE}/test/csit/scripts/clamp/kill_and_remove_clamp_and_db_containers.sh + +# $WORKSPACE/archives/clamp-clone deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/clamp/APIs/testplan.txt b/plans/clamp/APIs/testplan.txt new file mode 100644 index 00000000..9d328f52 --- /dev/null +++ b/plans/clamp/APIs/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +clamp/APIs + diff --git a/plans/clamp/UIs/setup.sh b/plans/clamp/UIs/setup.sh new file mode 100755 index 00000000..bb7a8144 --- /dev/null +++ b/plans/clamp/UIs/setup.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + +source ${WORKSPACE}/test/csit/scripts/clamp/clone_clamp_and_change_dockercompose.sh + +source ${WORKSPACE}/test/csit/scripts/clamp/start_clamp_containers.sh + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +#ROBOT_VARIABLES="-v TEST:${TEST}" + diff --git a/plans/clamp/UIs/teardown.sh b/plans/clamp/UIs/teardown.sh new file mode 100755 index 00000000..07067e60 --- /dev/null +++ b/plans/clamp/UIs/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +source ${WORKSPACE}/test/csit/scripts/clamp/kill_and_remove_clamp_and_db_containers.sh + +# $WORKSPACE/archives/clamp-clone deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/clamp/UIs/testplan.txt b/plans/clamp/UIs/testplan.txt new file mode 100644 index 00000000..9ec5b953 --- /dev/null +++ b/plans/clamp/UIs/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +clamp/UIs + diff --git a/plans/cli/sanity-check/setup.sh b/plans/cli/sanity-check/setup.sh new file mode 100644 index 00000000..7945ff56 --- /dev/null +++ b/plans/cli/sanity-check/setup.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +#Need some time for the initialization of MSB services +sleep 60 + +# Start cli +docker run -d --name cli -e CLI_MODE=daemon nexus3.onap.org:10001/onap/cli:v1.1.0 + +# Wait for cli initialization +echo Wait for CLI initialization +for i in {1..40}; do + sleep 1 +done + +CLI_IP=`get-instance-ip.sh cli` + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v CLI_IP:${CLI_IP} -v MSB_IAG_IP:${MSB_IAG_IP}" diff --git a/plans/cli/sanity-check/teardown.sh b/plans/cli/sanity-check/teardown.sh new file mode 100644 index 00000000..2135d001 --- /dev/null +++ b/plans/cli/sanity-check/teardown.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# +kill-instance.sh cli msb_consul msb_discovery msb_internal_apigateway diff --git a/plans/cli/sanity-check/testplan.txt b/plans/cli/sanity-check/testplan.txt new file mode 100644 index 00000000..477ddab1 --- /dev/null +++ b/plans/cli/sanity-check/testplan.txt @@ -0,0 +1,18 @@ +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +cli/startup/startup_check.robot diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml b/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml new file mode 100644 index 00000000..2a928217 --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/docker-compose.yml @@ -0,0 +1,100 @@ +version: "3" + +networks: + ves-hv-default: + external: + name: $CONTAINERS_NETWORK + +services: + zookeeper: + image: wurstmeister/zookeeper + ports: + - "2181:2181" + networks: + - ves-hv-default + + kafka: + image: wurstmeister/kafka + ports: + - "9092:9092" + environment: + KAFKA_ADVERTISED_HOST_NAME: "kafka" + KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true' + KAFKA_ZOOKEEPER_CONNECT: "zookeeper:2181" + KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://kafka:9092" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + depends_on: + - zookeeper + networks: + - ves-hv-default + + consul: + image: progrium/consul + ports: + - "8500:8500" + environment: + - CONSUL_BIND_INTERFACE=eth0 + networks: + ves-hv-default: + aliases: + - consul + command: ["-server", "-bootstrap"] + + ves-hv-collector: + image: ${DOCKER_REGISTRY_PREFIX}onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:latest + ports: + - "6060:6060" + - "6061:6061/tcp" + entrypoint: ["java", "-Dio.netty.leakDetection.level=paranoid", "-cp", "*:", "org.onap.dcae.collectors.veshv.main.MainKt"] + command: ["--listen-port", "6061", + "--config-url", "http://consul:8500/v1/kv/veshv-config", + "--key-store-password", "onaponap", + "--trust-store-password", "onaponap"] + healthcheck: + interval: 10s + timeout: 5s + retries: 2 + test: "curl --request GET --fail --silent --show-error localhost:6060/health/ready && nc -vz localhost 6061" + depends_on: + - kafka + volumes: + - ./ssl/:/etc/ves-hv/ + networks: + - ves-hv-default + + unencrypted-ves-hv-collector: + image: ${DOCKER_REGISTRY_PREFIX}onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:latest + ports: + - "7060:6060" + - "7061:6061/tcp" + entrypoint: ["java", "-Dio.netty.leakDetection.level=paranoid", "-cp", "*:", "org.onap.dcae.collectors.veshv.main.MainKt"] + command: ["--listen-port", "6061","--config-url", "http://consul:8500/v1/kv/veshv-config", "--ssl-disable"] + healthcheck: + interval: 10s + timeout: 5s + retries: 2 + test: "curl --request GET --fail --silent --show-error localhost:6060/health/ready && nc -vz localhost 6061" + depends_on: + - kafka + volumes: + - ./ssl/:/etc/ves-hv/ + networks: + - ves-hv-default + + dcae-app-simulator: + image: ${DOCKER_REGISTRY_PREFIX}onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-dcae-app-simulator:latest + ports: + - "6063:6063/tcp" + command: ["--listen-port", "6063", "--kafka-bootstrap-servers", "kafka:9092", "--kafka-topics", "ves_hvRanMeas"] + healthcheck: + interval: 10s + timeout: 5s + retries: 2 + test: "curl --request GET --fail --silent --show-error localhost:6063/healthcheck" + depends_on: + - kafka + networks: + ves-hv-default: + aliases: + - dcae-app-simulator
\ No newline at end of file diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/setup.sh b/plans/dcaegen2-collectors-hv-ves/testsuites/setup.sh new file mode 100755 index 00000000..6f72521a --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/setup.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +set -euo pipefail + +if [[ $# -eq 1 ]] && [[ $1 == "local-test-run" ]]; then + echo "Building locally - assuming all dependencies are installed" + export DOCKER_REGISTRY="" + export DOCKER_REGISTRY_PREFIX="" + export WORKSPACE=$(git rev-parse --show-toplevel) +else + echo "Default run - install all dependencies" + + pip uninstall -y docker-py + pip install docker + + COMPOSE_VERSION=1.22.0 + COMPOSE_LOCATION='/usr/local/bin/docker-compose' + sudo curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-$(uname -s)-$(uname -m) -o ${COMPOSE_LOCATION} + sudo chmod +x ${COMPOSE_LOCATION} + + export DOCKER_REGISTRY="nexus3.onap.org:10001" + export DOCKER_REGISTRY_PREFIX="${DOCKER_REGISTRY}/" +fi + +echo "Removing not used docker networks" +docker network prune -f + +export CONTAINERS_NETWORK=ves-hv-default +echo "Creating network for containers: ${CONTAINERS_NETWORK}" +docker network create ${CONTAINERS_NETWORK} + +cd ssl +./gen-certs.sh +cd .. + +docker-compose up -d + +mkdir -p ${WORKSPACE}/archives/containers_logs + +export ROBOT_VARIABLES="--pythonpath ${WORKSPACE}/test/csit/tests/dcaegen2-collectors-hv-ves/testcases/libraries" diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/.gitignore b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/.gitignore new file mode 100644 index 00000000..0729569c --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/.gitignore @@ -0,0 +1,6 @@ +*.crt +*.key +*.srl +*.csr +*.pkcs12 +*.p12 diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/Makefile-openssl b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/Makefile-openssl new file mode 100644 index 00000000..a32d30dd --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/Makefile-openssl @@ -0,0 +1,41 @@ +FILE=sample +PASSWD=onaponap +CA_PASSWD=onaponap +SUBJ=/C=PL/ST=DL/L=Wroclaw/O=Nokia/OU=MANO +CA=trust + +sign: $(FILE).crt + +clean: + rm -f *.crt *.key *.srl *.csr *.pkcs12 + +generate-ca-certificate: $(CA).crt + +generate-private-key: $(FILE).key + +create-public-key: $(FILE).pub + +create-sign-request: $(FILE).csr + +create-key-store: $(FILE).ks.pkcs12 + +create-trust-store: $(CA).crt + openssl pkcs12 -export -in $(CA).crt -CAfile $(CA).crt -out $(CA).pkcs12 -nokeys -noiter -nomaciter -passout pass:$(PASSWD) + +$(CA).crt: + openssl req -new -x509 -keyout $(CA).key -out $(CA).crt -days 365 -passout pass:$(CA_PASSWD) -subj "$(SUBJ)" + +$(FILE).key: + openssl genpkey -algorithm RSA -out $(FILE).key -pkeyopt rsa_keygen_bits:2048 + +$(FILE).pub: $(FILE).key + openssl x509 -req -days 360 -in client.csr -CA $(CA).crt -CAkey $(CA).key -CAcreateserial -out client.crt + +$(FILE).csr: $(FILE).key + openssl req -new -sha256 -key $(FILE).key -out $(FILE).csr -subj "$(SUBJ)" + +$(FILE).crt: $(CA).crt $(FILE).csr + openssl x509 -req -days 360 -in $(FILE).csr -CA $(CA).crt -CAkey $(CA).key -out $(FILE).crt -CAcreateserial -passin pass:$(CA_PASSWD) + +$(FILE).ks.pkcs12: $(FILE).key $(FILE).crt $(CA).crt + openssl pkcs12 -export -in $(FILE).crt -inkey $(FILE).key -CAfile $(CA).crt -out $(FILE).ks.pkcs12 -noiter -nomaciter -passout pass:$(PASSWD) diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/README.md b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/README.md new file mode 100644 index 00000000..c2819d24 --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/README.md @@ -0,0 +1,54 @@ +# Generating SSL certificates + +## Java keytool way (recommended) + +To generate: + +```shell +./gen-certs.sh +``` + +To clean (remove generated files): + +```shell +./gen-certs.sh clean +``` + +## OpenSSL way (currently might not work) + +> Add `-f Makefile-openssl` to each command + +Typical usage: + +```shell +make FILE=client +make FILE=server +``` + +or (to generate PKCS12 key and trust stores): + +```shell +make create-key-store FILE=client +make create-key-store FILE=server +make create-trust-store +``` + +Will generate CA certificate and signed client and server certificates. + +More "low-level" usage: + +```shell +make generate-ca-certificate +make generate-private-key FILE=client +make sign FILE=client +``` + +# Connecting to a server + +First generate *client* and *server* certificates. Then start a server with it's cert and make ca.crt a trusted certification authority. + +After that you can: + +```shell +./connect.sh client localhost:8600 < file_with_a_data_to_be_sent.dat +``` diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/gen-certs.sh b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/gen-certs.sh new file mode 100755 index 00000000..34572f7a --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/ssl/gen-certs.sh @@ -0,0 +1,59 @@ +#!/usr/bin/env bash + +set -eu -o pipefail -o xtrace + +STORE_PASS=onaponap +CN_PREFIX=dcaegen2-hvves +DNAME_PREFIX="C=PL,ST=DL,L=Wroclaw,O=Nokia,OU=MANO,CN=${CN_PREFIX}" + +store_opts="-storetype PKCS12 -storepass ${STORE_PASS} -noprompt" + +function gen_key() { + local key_name="$1" + local ca="$2" + local keystore="-keystore ${key_name}.p12 ${store_opts}" + keytool -genkey -alias ${key_name} \ + ${keystore} \ + -keyalg RSA \ + -validity 730 \ + -keysize 2048 \ + -dname "${DNAME_PREFIX}-${key_name}" + keytool -import -trustcacerts -alias ${ca} -file ${ca}.crt ${keystore} + + keytool -certreq -alias ${key_name} -keyalg RSA ${keystore} | \ + keytool -alias ${ca} -gencert -ext "san=dns:${CN_PREFIX}-${ca}" ${store_opts} -keystore ${ca}.p12 | \ + keytool -alias ${key_name} -importcert ${keystore} +} + + +function gen_ca() { + local ca="$1" + keytool -genkeypair ${store_opts} -alias ${ca} -dname "${DNAME_PREFIX}-${ca}" -keystore ${ca}.p12 + keytool -export -alias ${ca} -file ${ca}.crt ${store_opts} -keystore ${ca}.p12 +} + +function gen_truststore() { + local name="$1" + local trusted_ca="$2" + keytool -import -trustcacerts -alias ca -file ${trusted_ca}.crt ${store_opts} -keystore ${name}.p12 +} + +function clean() { + rm -f *.crt *.p12 +} + +if [[ $# -eq 0 ]]; then + gen_ca ca + gen_ca untrustedca + gen_truststore trust ca + gen_truststore untrustedtrust untrustedca + gen_key client ca + gen_key server ca + gen_key untrustedclient untrustedca +elif [[ $1 == "clean" ]]; then + clean +else + echo "usage: $0 [clean]" + exit 1 +fi + diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/teardown.sh b/plans/dcaegen2-collectors-hv-ves/testsuites/teardown.sh new file mode 100755 index 00000000..fe922ed0 --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/teardown.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +cd ssl +./gen-certs.sh clean +cd .. + +COMPOSE_LOGS_FILE=${WORKSPACE}/archives/containers_logs/docker-compose.log +docker-compose logs > ${COMPOSE_LOGS_FILE} +docker-compose down +docker-compose rm -f + +docker network rm ${CONTAINERS_NETWORK} + +if grep "LEAK:" ${COMPOSE_LOGS_FILE}; then + echo "WARNING: Memory leak detected in docker-compose logs." +fi diff --git a/plans/dcaegen2-collectors-hv-ves/testsuites/testplan.txt b/plans/dcaegen2-collectors-hv-ves/testsuites/testplan.txt new file mode 100644 index 00000000..e9a7f636 --- /dev/null +++ b/plans/dcaegen2-collectors-hv-ves/testsuites/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dcaegen2-collectors-hv-ves/testcases + diff --git a/plans/dcaegen2/prh-testsuites/setup.sh b/plans/dcaegen2/prh-testsuites/setup.sh new file mode 100644 index 00000000..52167bf5 --- /dev/null +++ b/plans/dcaegen2/prh-testsuites/setup.sh @@ -0,0 +1,36 @@ +#!/bin/bash + +source ${SCRIPTS}/common_functions.sh + +export PRH_SERVICE="prh" +export DMAAP_SIMULATOR="dmaap_simulator" +export AAI_SIMULATOR="aai_simulator" + +cd ${WORKSPACE}/test/csit/tests/dcaegen2/prh-testcases/resources/ + +pip uninstall -y docker-py +pip uninstall -y docker +pip install -U docker +docker-compose up -d --build + +PRH_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${PRH_SERVICE}) +DMAAP_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${DMAAP_SIMULATOR}) +AAI_SIMULATOR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' ${AAI_SIMULATOR}) + +bypass_ip_adress ${PRH_IP} +bypass_ip_adress ${DMAAP_SIMULATOR_IP} +bypass_ip_adress ${AAI_SIMULATOR_IP} + +echo PRH_IP=${PRH_IP} +echo DMAAP_SIMULATOR_IP=${DMAAP_SIMULATOR_IP} +echo AAI_SIMULATOR_IP=${AAI_SIMULATOR_IP} + +# Wait for initialization of PRH services +for i in {1..10}; do + curl -sS -m 1 localhost:8100/heartbeat && break + echo sleep ${i} + sleep ${i} +done + +# #Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v DMAAP_SIMULATOR:${DMAAP_SIMULATOR_IP}:2222 -v AAI_SIMULATOR:${AAI_SIMULATOR_IP}:3333 -v PRH:${PRH_IP}:8100" diff --git a/plans/dcaegen2/prh-testsuites/teardown.sh b/plans/dcaegen2/prh-testsuites/teardown.sh new file mode 100644 index 00000000..bd1e5ba0 --- /dev/null +++ b/plans/dcaegen2/prh-testsuites/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2017 Nokia, Inc. and others. +# +# 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. +# + +kill-instance.sh prh +kill-instance.sh dmaap_simulator +kill-instance.sh aai_simulator diff --git a/plans/dcaegen2/prh-testsuites/testplan.txt b/plans/dcaegen2/prh-testsuites/testplan.txt new file mode 100644 index 00000000..9007a64b --- /dev/null +++ b/plans/dcaegen2/prh-testsuites/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dcaegen2/prh-testcases diff --git a/plans/dcaegen2/testsuites/setup.sh b/plans/dcaegen2/testsuites/setup.sh new file mode 100755 index 00000000..8ee1309b --- /dev/null +++ b/plans/dcaegen2/testsuites/setup.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +#Make sure python-uuid is installed + + +#get current host IP addres +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') + +VESC_IMAGE=nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.2-latest +echo VESC_IMAGE=${VESC_IMAGE} + +# Start DCAE VES Collector +docker run -d -p 8080:8080/tcp -p 8443:8443/tcp -P --name vesc -e DMAAPHOST=${HOST_IP} ${VESC_IMAGE} + +VESC_IP=`get-instance-ip.sh vesc` +export VESC_IP=${VESC_IP} +export HOST_IP=${HOST_IP} + +export ROBOT_VARIABLES="--pythonpath ${WORKSPACE}/test/csit/tests/dcaegen2/testcases/resources" + +pip install jsonschema uuid +# Wait container ready +sleep 5 + diff --git a/plans/dcaegen2/testsuites/teardown.sh b/plans/dcaegen2/testsuites/teardown.sh new file mode 100755 index 00000000..2dc14870 --- /dev/null +++ b/plans/dcaegen2/testsuites/teardown.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +kill-instance.sh vesc
\ No newline at end of file diff --git a/plans/dcaegen2/testsuites/testplan.txt b/plans/dcaegen2/testsuites/testplan.txt new file mode 100755 index 00000000..fbf08839 --- /dev/null +++ b/plans/dcaegen2/testsuites/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dcaegen2/testcases diff --git a/plans/dmaap-buscontroller/mock_downstream/setup.sh b/plans/dmaap-buscontroller/mock_downstream/setup.sh new file mode 100755 index 00000000..d5c77b0b --- /dev/null +++ b/plans/dmaap-buscontroller/mock_downstream/setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# + + +# Place the scripts in run order: +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh +start_mock "aaf" +AAF_IP=${IP} +start_mock "mrc" 3904 +MRC_IP=${IP} +start_mock "drps" +DRPS_IP=${IP} + +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh +dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP +DMAAPBC_IP=${IP} + + +echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP" + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}" + +set -x +${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} +set +x diff --git a/plans/dmaap-buscontroller/mock_downstream/teardown.sh b/plans/dmaap-buscontroller/mock_downstream/teardown.sh new file mode 100644 index 00000000..1b041a42 --- /dev/null +++ b/plans/dmaap-buscontroller/mock_downstream/teardown.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# +kill-instance.sh aaf-mock +kill-instance.sh drps-mock +kill-instance.sh mrc-mock +kill-instance.sh dmaapbc + diff --git a/plans/dmaap-buscontroller/mock_downstream/testplan.txt b/plans/dmaap-buscontroller/mock_downstream/testplan.txt new file mode 100644 index 00000000..39a2f449 --- /dev/null +++ b/plans/dmaap-buscontroller/mock_downstream/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dmaap-buscontroller/suite1 + diff --git a/plans/dmaap-buscontroller/ssl/setup.sh b/plans/dmaap-buscontroller/ssl/setup.sh new file mode 100755 index 00000000..e40f62de --- /dev/null +++ b/plans/dmaap-buscontroller/ssl/setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# + + +# Place the scripts in run order: +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh +start_mock "aaf" +AAF_IP=${IP} +start_mock "mrc" 3905 +MRC_IP=${IP} +start_mock "drps" 8443 +DRPS_IP=${IP} + +source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh +dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP +DMAAPBC_IP=${IP} + + +echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP" + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}" + +set -x +${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} https +set +x diff --git a/plans/dmaap-buscontroller/ssl/teardown.sh b/plans/dmaap-buscontroller/ssl/teardown.sh new file mode 100644 index 00000000..1b041a42 --- /dev/null +++ b/plans/dmaap-buscontroller/ssl/teardown.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# +kill-instance.sh aaf-mock +kill-instance.sh drps-mock +kill-instance.sh mrc-mock +kill-instance.sh dmaapbc + diff --git a/plans/dmaap-buscontroller/ssl/testplan.txt b/plans/dmaap-buscontroller/ssl/testplan.txt new file mode 100644 index 00000000..e106e7b6 --- /dev/null +++ b/plans/dmaap-buscontroller/ssl/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dmaap-buscontroller/ssl_suite + diff --git a/plans/dmaap-buscontroller/with_dr/setup.sh b/plans/dmaap-buscontroller/with_dr/setup.sh new file mode 100755 index 00000000..7cefa727 --- /dev/null +++ b/plans/dmaap-buscontroller/with_dr/setup.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# + +source ${SCRIPTS}/common_functions.sh + + +if [ "$USE_EXISTING_DMAAP" = "Y" ] +then + ROBOT_VARIABLES="-v AAF_IP:0.0.0 -v MRC_IP:0.0.0.0 -v DRPS_IP:172.17.0.3 -v DMAAPBC_IP:172.17.0.4" +else + + # Place the scripts in run order: + source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dr-launch.sh + dmaap_dr_launch + DRPS_IP=${IP} + + #source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh + #start_mock "aaf" + #AAF_IP=${IP} + AAF_IP=0.0.0.0 + #start_mock "drps" + #DRPS_IP=${IP} + MRC_IP=0.0.0.0 + + source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh + dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP + DMAAPBC_IP=${IP} + + + echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP" + + # Pass any variables required by Robot test suites in ROBOT_VARIABLES + ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}" + set -x + ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} https + set +x +fi + diff --git a/plans/dmaap-buscontroller/with_dr/teardown.sh b/plans/dmaap-buscontroller/with_dr/teardown.sh new file mode 100755 index 00000000..23ae60a1 --- /dev/null +++ b/plans/dmaap-buscontroller/with_dr/teardown.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= + +if [ "$KEEP_DMAAP" != "Y" ] +then +kill-instance.sh dmaapbc +cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/ +docker-compose down -v +fi diff --git a/plans/dmaap-buscontroller/with_dr/testplan.txt b/plans/dmaap-buscontroller/with_dr/testplan.txt new file mode 100755 index 00000000..04c6838d --- /dev/null +++ b/plans/dmaap-buscontroller/with_dr/testplan.txt @@ -0,0 +1,2 @@ +# Place the suites in run order. +dmaap-buscontroller/with_dr diff --git a/plans/dmaap-buscontroller/with_mr/setup.sh b/plans/dmaap-buscontroller/with_mr/setup.sh new file mode 100755 index 00000000..bcd19b5a --- /dev/null +++ b/plans/dmaap-buscontroller/with_mr/setup.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# + +if [ "$USE_EXISTING_DMAAP" = "Y" ] +then + ROBOT_VARIABLES="-v AAF_IP:0.0.0 -v MRC_IP:172.18.0.3 -v DRPS_IP:0.0.0.0 -v DMAAPBC_IP:172.17.0.4" +else + + # Place the scripts in run order: + source ${WORKSPACE}/test/csit/scripts/dmaap-message-router/dmaap-mr-launch.sh + dmaap_mr_launch + MRC_IP=${IP} + + source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/start-mock.sh + start_mock "aaf" + AAF_IP=${IP} + #AAF_IP=0.0.0.0 + #start_mock "drps" + #DRPS_IP=${IP} + DRPS_IP=0.0.0.0 + + source ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-launch.sh + dmaapbc_launch $AAF_IP $MRC_IP $DRPS_IP + DMAAPBC_IP=${IP} + + + echo "AAF_IP=$AAF_IP MRC_IP=$MRC_IP DRPS_IP=$DRPS_IP DMAAPBC_IP=$DMAAPBC_IP" + + # Pass any variables required by Robot test suites in ROBOT_VARIABLES + ROBOT_VARIABLES="-v AAF_IP:${AAF_IP} -v MRC_IP:${MRC_IP} -v DRPS_IP:${DRPS_IP} -v DMAAPBC_IP:${DMAAPBC_IP}" + set -x + ${WORKSPACE}/test/csit/scripts/dmaap-buscontroller/dmaapbc-init.sh ${DMAAPBC_IP} ${DRPS_IP} ${MRC_IP} + set +x +fi + diff --git a/plans/dmaap-buscontroller/with_mr/teardown.sh b/plans/dmaap-buscontroller/with_mr/teardown.sh new file mode 100644 index 00000000..3feebe07 --- /dev/null +++ b/plans/dmaap-buscontroller/with_mr/teardown.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# org.onap.dmaap +# ================================================================================ +# Copyright (C) 2018 AT&T Intellectual Property. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END========================================================= +# +# +source ${WORKSPACE}/test/csit/scripts/dmaap-message-router/dmaap-mr-teardown.sh + +if [ "$KEEP_DMAAP" != "Y" ] +then +dmaap_mr_teardown +kill-instance.sh dmaapbc +kill-instance.sh aaf-mock +fi + diff --git a/plans/dmaap-buscontroller/with_mr/testplan.txt b/plans/dmaap-buscontroller/with_mr/testplan.txt new file mode 100644 index 00000000..4f4ff717 --- /dev/null +++ b/plans/dmaap-buscontroller/with_mr/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +dmaap-buscontroller/single-mr-suite diff --git a/plans/dmaap-datarouter/dr-suite/setup.sh b/plans/dmaap-datarouter/dr-suite/setup.sh new file mode 100755 index 00000000..e5debfc2 --- /dev/null +++ b/plans/dmaap-datarouter/dr-suite/setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash + +source ${SCRIPTS}/common_functions.sh + +# Clone DMaaP Data Router repo +mkdir -p $WORKSPACE/archives/dmaapdr +cd $WORKSPACE/archives/dmaapdr + +git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master +cd datarouter +git pull +cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/ + +sed -i 's/10003/10001/g' docker-compose.yml +# start DMaaP DR containers with docker compose and configuration from docker-compose.yml +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d + +# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' mariadb) ] + then + echo "DR Service Running" + break + else + echo sleep $i + sleep $i + fi +done + +DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov) +DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node) +DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov) + +echo DR_PROV_IP=${DR_PROV_IP} +echo DR_NODE_IP=${DR_NODE_IP} +echo DR_GATEWAY_IP=${DR_GATEWAY_IP} + +docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$DR_GATEWAY_IP" +docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$DR_GATEWAY_IP" + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP}" diff --git a/plans/dmaap-datarouter/dr-suite/teardown.sh b/plans/dmaap-datarouter/dr-suite/teardown.sh new file mode 100755 index 00000000..033a0015 --- /dev/null +++ b/plans/dmaap-datarouter/dr-suite/teardown.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/ +docker-compose down -v diff --git a/plans/dmaap-datarouter/dr-suite/testplan.txt b/plans/dmaap-datarouter/dr-suite/testplan.txt new file mode 100755 index 00000000..8349a056 --- /dev/null +++ b/plans/dmaap-datarouter/dr-suite/testplan.txt @@ -0,0 +1,2 @@ +# Place the suites in run order. +dmaap-datarouter/dr-suite diff --git a/plans/dmaap/mrpubsub/setup.sh b/plans/dmaap/mrpubsub/setup.sh new file mode 100755 index 00000000..0a1f9d35 --- /dev/null +++ b/plans/dmaap/mrpubsub/setup.sh @@ -0,0 +1,97 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# ONAP DMAAP MR +# ================================================================================ +# Copyright (C) 2017 AT&T Intellectual Property. All rights +# reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END============================================ +# =================================================================== +# ECOMP is a trademark and service mark of AT&T Intellectual Property. +# +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +# Clone DMaaP Message Router repo +mkdir -p $WORKSPACE/archives/dmaapmr +cd $WORKSPACE/archives/dmaapmr +#unset http_proxy https_proxy +git clone --depth 1 http://gerrit.onap.org/r/dmaap/messagerouter/messageservice -b master +git pull +cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose +cp $WORKSPACE/archives/dmaapmr/messageservice/bundleconfig-local/etc/appprops/MsgRtrApi.properties /var/tmp/ + + +# start DMaaP MR containers with docker compose and configuration from docker-compose.yml +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d + +# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] + then + echo "DMaaP Service Running" + break + else + echo sleep $i + sleep $i + fi +done + + +DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_dmaap_1) +KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_kafka_1) +ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' dockercompose_zookeeper_1) + +echo DMAAP_MR_IP=${DMAAP_MR_IP} +echo KAFKA_IP=${KAFKA_IP} +echo ZOOKEEPER_IP=${ZOOKEEPER_IP} + +# Initial docker-compose up and down is for populating kafka and zookeeper IPs in /var/tmp/MsgRtrApi.properites +docker-compose down + +# Update kafkfa and zookeeper properties in MsgRtrApi.propeties which will be copied to DMaaP Container +sed -i -e 's/<zookeeper_host>/'$ZOOKEEPER_IP'/' /var/tmp/MsgRtrApi.properties +sed -i -e 's/<kafka_host>:<kafka_port>/'$KAFKA_IP':9092/' /var/tmp/MsgRtrApi.properties + +docker-compose build +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d + +# Wait for initialization of Docker containers +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_zookeeper_1) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' dockercompose_dmaap_1) ] + then + echo "DMaaP Service Running" + break + else + echo sleep $i + sleep $i + fi +done + +# Wait for initialization of docker services +for i in {1..50}; do + curl -sS -m 1 ${DMAAP_MR_IP}:3904/events/TestTopic && break + echo sleep $i + sleep $i +done + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v DMAAP_MR_IP:${DMAAP_MR_IP}" diff --git a/plans/dmaap/mrpubsub/teardown.sh b/plans/dmaap/mrpubsub/teardown.sh new file mode 100755 index 00000000..1b430324 --- /dev/null +++ b/plans/dmaap/mrpubsub/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh dockercompose_dmaap_1 +kill-instance.sh dockercompose_kafka_1 +kill-instance.sh dockercompose_zookeeper_1 diff --git a/plans/dmaap/mrpubsub/testplan.txt b/plans/dmaap/mrpubsub/testplan.txt new file mode 100644 index 00000000..6a98eb79 --- /dev/null +++ b/plans/dmaap/mrpubsub/testplan.txt @@ -0,0 +1,2 @@ +# Place the suites in run order. +dmaap/mrpubsub diff --git a/plans/externalapi-nbi/healthcheck/setup.sh b/plans/externalapi-nbi/healthcheck/setup.sh new file mode 100644 index 00000000..50da7ad6 --- /dev/null +++ b/plans/externalapi-nbi/healthcheck/setup.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# ======================================================================== +# Copyright (c) 2018 Orange +# 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. +# ======================================================================== + +source ${WORKSPACE}/test/csit/scripts/externalapi-nbi/start_nbi_containers.sh diff --git a/plans/externalapi-nbi/healthcheck/teardown.sh b/plans/externalapi-nbi/healthcheck/teardown.sh new file mode 100644 index 00000000..83929723 --- /dev/null +++ b/plans/externalapi-nbi/healthcheck/teardown.sh @@ -0,0 +1,17 @@ +#!/bin/bash +# ======================================================================== +# Copyright (c) 2018 Orange +# 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. +# ======================================================================== + +source ${WORKSPACE}/test/csit/scripts/externalapi-nbi/delete_nbi_containers.sh
\ No newline at end of file diff --git a/plans/externalapi-nbi/healthcheck/testplan.txt b/plans/externalapi-nbi/healthcheck/testplan.txt new file mode 100644 index 00000000..06622ae7 --- /dev/null +++ b/plans/externalapi-nbi/healthcheck/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +externalapi-nbi/healthcheck diff --git a/plans/holmes-rule-management/sanity-check/setup.sh b/plans/holmes-rule-management/sanity-check/setup.sh new file mode 100644 index 00000000..89688eea --- /dev/null +++ b/plans/holmes-rule-management/sanity-check/setup.sh @@ -0,0 +1,72 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: + +# Download and start MySQL +docker pull postgres:9.5 +docker run --name postgres-holmes -p 5432:5432 -e POSTGRES_USER=holmes -e POSTGRES_PASSWORD=holmespwd -d postgres:9.5 +DB_IP=`get-instance-ip.sh postgres-holmes` +echo DB_IP=${DB_IP} + +#login to the onap nexus docker repo +docker login -u docker -p docker nexus3.onap.org:10001 + +# Start MSB +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +CONSUL_IP=`get-instance-ip.sh msb_consul` +echo CONSUL_IP=${CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IP=${MSB_IP} + +# Start rulemgt +source ${SCRIPTS}/holmes/rule-management/startup.sh i-rulemgt ${DB_IP} ${MSB_IP} 1 +RULEMGT_IP=`get-instance-ip.sh i-rulemgt` +echo RULEMGT_IP=${RULEMGT_IP} + +# Wait for initialization +for i in {1..20}; do + curl -sS -m 1 ${RULEMGT_IP}:9101 && curl -sS -m 1 ${MSB_IP}:80 && break + echo sleep $i + sleep $i +done + +# Start engine-d +source ${SCRIPTS}/holmes/engine-management/startup.sh i-engine-d ${DB_IP} ${MSB_IP} 1 +ENGINE_D_IP=`get-instance-ip.sh i-engine-d` +echo ENGINE_D_IP=${ENGINE_D_IP} + + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${ENGINE_D_IP}:9102 && break + echo sleep $i + sleep $i +done + +echo sleep 30s for service registration +sleep 30 + +docker logs i-rulemgt +docker logs i-engine-d + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v RULEMGT_IP:${RULEMGT_IP} -v ENGINE_D_IP:${ENGINE_D_IP}" + diff --git a/plans/holmes-rule-management/sanity-check/teardown.sh b/plans/holmes-rule-management/sanity-check/teardown.sh new file mode 100644 index 00000000..77652271 --- /dev/null +++ b/plans/holmes-rule-management/sanity-check/teardown.sh @@ -0,0 +1,25 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +#kill-instance.sh i-rulemgt +#kill-instance.sh i-engine-d +#kill-instance.sh msb_internal_apigateway +#kill-instance.sh msb_discovery +#kill-instance.sh msb_consul +#kill-instance.sh mysql-holmes + + diff --git a/plans/holmes-rule-management/sanity-check/testplan.txt b/plans/holmes-rule-management/sanity-check/testplan.txt new file mode 100644 index 00000000..e699512d --- /dev/null +++ b/plans/holmes-rule-management/sanity-check/testplan.txt @@ -0,0 +1,5 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. + +holmes/testcase/EngineMgt +holmes/testcase/RuleMgt diff --git a/plans/integration/functionality1/setup.sh b/plans/integration/functionality1/setup.sh new file mode 100755 index 00000000..c18f6220 --- /dev/null +++ b/plans/integration/functionality1/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +source ${WORKSPACE}/test/csit/scripts/integration/script1.sh + +docker run --name i-mock -d jamesdbloom/mockserver +MOCK_IP=`get-instance-ip.sh i-mock` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${MOCK_IP}:1080 && break + echo sleep $i + sleep $i +done + +${WORKSPACE}/test/csit/scripts/integration/mock-hello.sh ${MOCK_IP} + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP}" + diff --git a/plans/integration/functionality1/teardown.sh b/plans/integration/functionality1/teardown.sh new file mode 100755 index 00000000..acf2d097 --- /dev/null +++ b/plans/integration/functionality1/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +kill-instance.sh i-mock + + diff --git a/plans/integration/functionality1/testplan.txt b/plans/integration/functionality1/testplan.txt new file mode 100644 index 00000000..9221b475 --- /dev/null +++ b/plans/integration/functionality1/testplan.txt @@ -0,0 +1,5 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +# Temporary change to trigger verify job. +integration/suite1 +integration/suite2 diff --git a/plans/integration/vCPE/setup.sh b/plans/integration/vCPE/setup.sh new file mode 100755 index 00000000..1b9cc343 --- /dev/null +++ b/plans/integration/vCPE/setup.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="" + diff --git a/plans/integration/vCPE/teardown.sh b/plans/integration/vCPE/teardown.sh new file mode 100755 index 00000000..8beb6e1f --- /dev/null +++ b/plans/integration/vCPE/teardown.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + + diff --git a/plans/integration/vCPE/testplan.txt b/plans/integration/vCPE/testplan.txt new file mode 100644 index 00000000..2b3d4ad5 --- /dev/null +++ b/plans/integration/vCPE/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +integration/vCPE diff --git a/plans/modeling-toscaparsers-javatoscachecker/APIs/setup.sh b/plans/modeling-toscaparsers-javatoscachecker/APIs/setup.sh new file mode 100644 index 00000000..03d07def --- /dev/null +++ b/plans/modeling-toscaparsers-javatoscachecker/APIs/setup.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2017 AT&T +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + +source ${WORKSPACE}/test/csit/scripts/modeling-toscaparsers-javatoscachecker/setup_containers.sh + diff --git a/plans/modeling-toscaparsers-javatoscachecker/APIs/teardown.sh b/plans/modeling-toscaparsers-javatoscachecker/APIs/teardown.sh new file mode 100644 index 00000000..1ecaad4d --- /dev/null +++ b/plans/modeling-toscaparsers-javatoscachecker/APIs/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +source ${WORKSPACE}/test/csit/scripts/modeling-toscaparsers-javatoscachecker/teardown_containers.sh + diff --git a/plans/modeling-toscaparsers-javatoscachecker/APIs/testplan.txt b/plans/modeling-toscaparsers-javatoscachecker/APIs/testplan.txt new file mode 100644 index 00000000..f59237bd --- /dev/null +++ b/plans/modeling-toscaparsers-javatoscachecker/APIs/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +modeling-toscaparsers-javatoscachecker/APIs diff --git a/plans/msb/iag-redirect-discovery/setup.sh b/plans/msb/iag-redirect-discovery/setup.sh new file mode 100644 index 00000000..70614c5c --- /dev/null +++ b/plans/msb/iag-redirect-discovery/setup.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Start rest example service +docker run -d -p 9090:9090 --name i-rest-example zhaohuabing/rest-example +REST_EXAMPLE_IP=`get-instance-ip.sh i-rest-example` +echo REST_EXAMPLE_IP=${REST_EXAMPLE_IP} + + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +#Need some time for the initialization of MSB services +sleep 60 + +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"serviceName": "test", "version": "v1", "url": "/","protocol": "REST", "lb_policy":"round-robin","nodes": [ {"ip": "'${REST_EXAMPLE_IP}'","port": "9090"}]}' \ + "http://${MSB_IAG_IP}:80/api/microservices/v1/services" + +# Pass any variables required by Robot suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v REST_EXAMPLE_IP:${REST_EXAMPLE_IP}"
\ No newline at end of file diff --git a/plans/msb/iag-redirect-discovery/teardown.sh b/plans/msb/iag-redirect-discovery/teardown.sh new file mode 100644 index 00000000..b7945673 --- /dev/null +++ b/plans/msb/iag-redirect-discovery/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +kill-instance.sh msb_consul +kill-instance.sh msb_discovery +kill-instance.sh msb_internal_apigateway +kill-instance.sh i-rest-example diff --git a/plans/msb/iag-redirect-discovery/testplan.txt b/plans/msb/iag-redirect-discovery/testplan.txt new file mode 100644 index 00000000..54bb307b --- /dev/null +++ b/plans/msb/iag-redirect-discovery/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +msb/rest-service-discovery +msb/rest-service-api-gateway
\ No newline at end of file diff --git a/plans/msb/rest-service/setup.sh b/plans/msb/rest-service/setup.sh new file mode 100644 index 00000000..8d344db8 --- /dev/null +++ b/plans/msb/rest-service/setup.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Start rest example service +docker run -d -p 9090:9090 --name i-rest-example zhaohuabing/rest-example +REST_EXAMPLE_IP=`get-instance-ip.sh i-rest-example` +echo REST_EXAMPLE_IP=${REST_EXAMPLE_IP} + + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +#Need some time for the initialization of MSB services +sleep 60 + +curl -X POST \ + -H "Content-Type: application/json" \ + -d '{"serviceName": "test", "version": "v1", "url": "/","protocol": "REST", "lb_policy":"round-robin","nodes": [ {"ip": "'${REST_EXAMPLE_IP}'","port": "9090"}]}' \ + "http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services" + +# Pass any variables required by Robot suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v REST_EXAMPLE_IP:${REST_EXAMPLE_IP}"
\ No newline at end of file diff --git a/plans/msb/rest-service/teardown.sh b/plans/msb/rest-service/teardown.sh new file mode 100644 index 00000000..b7945673 --- /dev/null +++ b/plans/msb/rest-service/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +kill-instance.sh msb_consul +kill-instance.sh msb_discovery +kill-instance.sh msb_internal_apigateway +kill-instance.sh i-rest-example diff --git a/plans/msb/rest-service/testplan.txt b/plans/msb/rest-service/testplan.txt new file mode 100644 index 00000000..54bb307b --- /dev/null +++ b/plans/msb/rest-service/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +msb/rest-service-discovery +msb/rest-service-api-gateway
\ No newline at end of file diff --git a/plans/msb/sanity-check/setup.sh b/plans/msb/sanity-check/setup.sh new file mode 100644 index 00000000..e44f4371 --- /dev/null +++ b/plans/msb/sanity-check/setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +#wait for container initalization +sleep 30 + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP}" diff --git a/plans/msb/sanity-check/teardown.sh b/plans/msb/sanity-check/teardown.sh new file mode 100644 index 00000000..609eaf66 --- /dev/null +++ b/plans/msb/sanity-check/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +kill-instance.sh msb_consul +kill-instance.sh msb_discovery +kill-instance.sh msb_internal_apigateway
\ No newline at end of file diff --git a/plans/msb/sanity-check/testplan.txt b/plans/msb/sanity-check/testplan.txt new file mode 100644 index 00000000..0ef75071 --- /dev/null +++ b/plans/msb/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +msb/startup diff --git a/plans/msb/tcp-service/setup.sh b/plans/msb/tcp-service/setup.sh new file mode 100644 index 00000000..ea2bafdf --- /dev/null +++ b/plans/msb/tcp-service/setup.sh @@ -0,0 +1,53 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Start Message Broker +docker run -d -p 61616:61616 --name i-activemq webcenter/activemq + +ACTIVEMQ_IP=`get-instance-ip.sh i-activemq` +echo ACTIVEMQ_IP=${ACTIVEMQ_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +#wait for container initalization +sleep 30 + +curl -H "Content-Type: application/json" -X POST -d '{"serviceName": "ActiveMQ","protocol": "TCP","nodes": [{"ip": "'${ACTIVEMQ_IP}'","port": "61616"}]}' http://${MSB_DISCOVERY_IP}:10081/api/microservices/v1/services + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v ACTIVEMQ_IP:${ACTIVEMQ_IP}"
\ No newline at end of file diff --git a/plans/msb/tcp-service/teardown.sh b/plans/msb/tcp-service/teardown.sh new file mode 100644 index 00000000..36ee889f --- /dev/null +++ b/plans/msb/tcp-service/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2017 ZTE, Inc. and others. +# +# 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. +# + +kill-instance.sh msb_consul +kill-instance.sh msb_discovery +kill-instance.sh msb_internal_apigateway +kill-instance.sh i-activemq diff --git a/plans/msb/tcp-service/testplan.txt b/plans/msb/tcp-service/testplan.txt new file mode 100644 index 00000000..ba8f6f28 --- /dev/null +++ b/plans/msb/tcp-service/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +msb/tcp-service-discovery +msb/tcp-service-access
\ No newline at end of file diff --git a/plans/multicloud-ocata/functionality1/setup.sh b/plans/multicloud-ocata/functionality1/setup.sh new file mode 100644 index 00000000..3cba6813 --- /dev/null +++ b/plans/multicloud-ocata/functionality1/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright (c) 2017 Wind River Systems, Inc. +# +# 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. + +pushd ${SCRIPTS} + +# start multicloud-ocata +./run-instance.sh nexus3.onap.org:10001/onap/multicloud/openstack/openstack-ocata:latest multicloud-ocata +SERVICE_IP=$(./get-instance-ip.sh multicloud-ocata) +SERVICE_PORT=9006 +popd + +if [[ $no_proxy && $no_proxy != *$SERVICE_IP* ]]; then + export no_proxy+=$no_proxy,$SERVICE_IP +fi + +for i in {1..50}; do + curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-ocata/functionality1/teardown.sh b/plans/multicloud-ocata/functionality1/teardown.sh new file mode 100644 index 00000000..6ecb74eb --- /dev/null +++ b/plans/multicloud-ocata/functionality1/teardown.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# +# Copyright (c) 2017 Wind River Systems, Inc. +# +# 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. + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multicloud-ocata diff --git a/plans/multicloud-ocata/functionality1/testplan.txt b/plans/multicloud-ocata/functionality1/testplan.txt new file mode 100644 index 00000000..fcd795da --- /dev/null +++ b/plans/multicloud-ocata/functionality1/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-ocata/provision/sanity_test_multicloud.robot diff --git a/plans/multicloud-ocata/hpa-discovery/setup.sh b/plans/multicloud-ocata/hpa-discovery/setup.sh new file mode 100644 index 00000000..d17bec12 --- /dev/null +++ b/plans/multicloud-ocata/hpa-discovery/setup.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation, Inc +# 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. + +cd ${SCRIPTS} + +source common_functions.sh + +generic_sim_path=${WORKSPACE}/test/csit/scripts/multicloud-ocata/generic_sim +multicloud_provision_path=${WORKSPACE}/test/csit/tests/multicloud-ocata/provision +# start generic simulator for openstack mock and AAI mock +if [[ -z $(docker images -q generic_sim) ]]; then + pushd $generic_sim_path + docker build -t generic_sim . + popd +fi + +function start_simulator () +{ + local service_name=$1 + local service_port=$2 + + ./run-instance.sh generic_sim $service_name "-v ${multicloud_provision_path}/${service_name}/:/tmp/generic_sim/ -v ${generic_sim_path}/${service_name}/:/etc/generic_sim/ -p $service_port:8080" + wait_for_service_init localhost:$service_port + bypass_ip_adress $service_name +} + +start_simulator nova 8774 +start_simulator glance 9292 +start_simulator cinder 8776 +start_simulator keystone 5000 +start_simulator aai 8443 + +# start multicloud-ocata +./run-instance.sh nexus3.onap.org:10001/onap/multicloud/openstack/openstack-ocata multicloud-ocata "-t -e AAI_SERVICE_URL=http://aai:8080/aai -e no_proxy=$no_proxy -p 9006:9006" +SERVICE_IP=$(./get-instance-ip.sh multicloud-ocata) +SERVICE_PORT=9006 + +docker network create hpa-net +for container in aai keystone glance cinder nova multicloud-ocata; do + docker network connect hpa-net $container +done + +bypass_ip_adress $SERVICE_IP +wait_for_service_init ${SERVICE_IP}:${SERVICE_PORT} + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-ocata/hpa-discovery/teardown.sh b/plans/multicloud-ocata/hpa-discovery/teardown.sh new file mode 100644 index 00000000..b80f2e45 --- /dev/null +++ b/plans/multicloud-ocata/hpa-discovery/teardown.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation, Inc +# 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. + +for container in aai keystone cinder glance nova multicloud-ocata; do + kill-instance.sh $container +done +docker network rm hpa-net diff --git a/plans/multicloud-ocata/hpa-discovery/testplan.txt b/plans/multicloud-ocata/hpa-discovery/testplan.txt new file mode 100644 index 00000000..9394379e --- /dev/null +++ b/plans/multicloud-ocata/hpa-discovery/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-ocata/provision/hpa_multicloud.robot diff --git a/plans/multicloud-pike/functionality1/setup.sh b/plans/multicloud-pike/functionality1/setup.sh new file mode 100644 index 00000000..57e81812 --- /dev/null +++ b/plans/multicloud-pike/functionality1/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright (c) 2017-2018 Intel, Inc. +# +# 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. + +pushd ${SCRIPTS} + +# start multicloud-pike +./run-instance.sh nexus3.onap.org:10001/onap/multicloud/openstack-pike:latest multicloud-pike +SERVICE_IP=$(./get-instance-ip.sh multicloud-pike) +SERVICE_PORT=9007 +popd + +if [[ $no_proxy && $no_proxy != *$SERVICE_IP* ]]; then + export no_proxy+=$no_proxy,$SERVICE_IP +fi + +for i in {1..50}; do + curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-pike/functionality1/teardown.sh b/plans/multicloud-pike/functionality1/teardown.sh new file mode 100644 index 00000000..13b70628 --- /dev/null +++ b/plans/multicloud-pike/functionality1/teardown.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# +# Copyright (c) 2017-2018 Intel, Inc. +# +# 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. + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multicloud-pike diff --git a/plans/multicloud-pike/functionality1/testplan.txt b/plans/multicloud-pike/functionality1/testplan.txt new file mode 100644 index 00000000..7f460164 --- /dev/null +++ b/plans/multicloud-pike/functionality1/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-pike/provision/sanity_test_multicloud.robot diff --git a/plans/multicloud-pike/hpa-discovery/setup.sh b/plans/multicloud-pike/hpa-discovery/setup.sh new file mode 100644 index 00000000..cbcc302e --- /dev/null +++ b/plans/multicloud-pike/hpa-discovery/setup.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation, Inc +# 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. + +cd ${SCRIPTS} + +source common_functions.sh + +generic_sim_path=${WORKSPACE}/test/csit/scripts/multicloud-pike/generic_sim +multicloud_provision_path=${WORKSPACE}/test/csit/tests/multicloud-pike/provision +# start generic simulator for openstack mock and AAI mock +if [[ -z $(docker images -q generic_sim) ]]; then + pushd $generic_sim_path + docker build -t generic_sim . + popd +fi + +function start_simulator () +{ + local service_name=$1 + local service_port=$2 + + ./run-instance.sh generic_sim $service_name "-v ${multicloud_provision_path}/${service_name}/:/tmp/generic_sim/ -v ${generic_sim_path}/${service_name}/:/etc/generic_sim/ -p $service_port:8080" + wait_for_service_init localhost:$service_port + bypass_ip_adress $service_name +} + +start_simulator nova 8774 +start_simulator glance 9292 +start_simulator cinder 8776 +start_simulator keystone 5000 +start_simulator aai 8443 + +# start multicloud-pike +./run-instance.sh nexus3.onap.org:10001/onap/multicloud/openstack-pike multicloud-pike "-t -e AAI_SERVICE_URL=http://aai:8080/aai -e no_proxy=$no_proxy -p 9007:9007" +SERVICE_IP=$(./get-instance-ip.sh multicloud-pike) +SERVICE_PORT=9007 + +docker network create hpa-net +for container in aai keystone glance cinder nova multicloud-pike; do + docker network connect hpa-net $container +done + +bypass_ip_adress $SERVICE_IP +wait_for_service_init ${SERVICE_IP}:${SERVICE_PORT} + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-pike/hpa-discovery/teardown.sh b/plans/multicloud-pike/hpa-discovery/teardown.sh new file mode 100644 index 00000000..7d6c9535 --- /dev/null +++ b/plans/multicloud-pike/hpa-discovery/teardown.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation, Inc +# 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. + +for container in aai keystone cinder glance nova multicloud-pike; do + kill-instance.sh $container +done +docker network rm hpa-net diff --git a/plans/multicloud-pike/hpa-discovery/testplan.txt b/plans/multicloud-pike/hpa-discovery/testplan.txt new file mode 100644 index 00000000..5914cbba --- /dev/null +++ b/plans/multicloud-pike/hpa-discovery/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-pike/provision/hpa_multicloud.robot diff --git a/plans/multicloud-vmware/functionality1/setup.sh b/plans/multicloud-vmware/functionality1/setup.sh new file mode 100755 index 00000000..d71d5c42 --- /dev/null +++ b/plans/multicloud-vmware/functionality1/setup.sh @@ -0,0 +1,33 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +# start multicloud-vio +docker run -d --name multicloud-vio nexus3.onap.org:10001/onap/multicloud/vio +VIO_IP=`get-instance-ip.sh multicloud-vio` +for i in {1..50}; do + curl -sS ${VIO_IP}:9004 && break + echo sleep $i + sleep $i +done + +echo SCRIPTS +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v VIO_IP:${VIO_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/multicloud-vmware/functionality1/teardown.sh b/plans/multicloud-vmware/functionality1/teardown.sh new file mode 100755 index 00000000..546e0126 --- /dev/null +++ b/plans/multicloud-vmware/functionality1/teardown.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multicloud-vio diff --git a/plans/multicloud-vmware/functionality1/testplan.txt b/plans/multicloud-vmware/functionality1/testplan.txt new file mode 100644 index 00000000..0a2ad45a --- /dev/null +++ b/plans/multicloud-vmware/functionality1/testplan.txt @@ -0,0 +1,13 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-vmware/provision/sanity_test_vio.robot +multicloud-vmware/provision/sanity_test_tenant.robot +multicloud-vmware/provision/sanity_test_image.robot +multicloud-vmware/provision/sanity_test_neutron.robot +multicloud-vmware/nova/sanity-flavor.robot +multicloud-vmware/nova/sanity-host.robot +multicloud-vmware/nova/sanity-server.robot +multicloud-vmware/samples/sanity-sample.robot +multicloud-vmware/hosts/sanity-host.robot +multicloud-vmware/networks/sanity-network.robot +multicloud-vmware/images/sanity-image.robot diff --git a/plans/multicloud-windriver/functionality1/setup.sh b/plans/multicloud-windriver/functionality1/setup.sh new file mode 100644 index 00000000..f2025c98 --- /dev/null +++ b/plans/multicloud-windriver/functionality1/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright (c) 2017 Wind River Systems, Inc. +# +# 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. + +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +# start multicloud-windriver +docker run -d --name multicloud-windriver nexus3.onap.org:10001/onap/multicloud/openstack-windriver +SERVICE_IP=`get-instance-ip.sh multicloud-windriver` +SERVICE_PORT=9005 + +for i in {1..50}; do + curl -sS ${SERVICE_IP}:${SERVICE_PORT} && break + echo sleep $i + sleep $i +done + +echo SCRIPTS +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES+="-v SERVICE_IP:${SERVICE_IP} " +ROBOT_VARIABLES+="-v SERVICE_PORT:${SERVICE_PORT} " diff --git a/plans/multicloud-windriver/functionality1/teardown.sh b/plans/multicloud-windriver/functionality1/teardown.sh new file mode 100644 index 00000000..10a6bc05 --- /dev/null +++ b/plans/multicloud-windriver/functionality1/teardown.sh @@ -0,0 +1,15 @@ +#!/bin/bash +# +# Copyright (c) 2017 Wind River Systems, Inc. +# +# 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. + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multicloud-windriver diff --git a/plans/multicloud-windriver/functionality1/testplan.txt b/plans/multicloud-windriver/functionality1/testplan.txt new file mode 100644 index 00000000..e59320b1 --- /dev/null +++ b/plans/multicloud-windriver/functionality1/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud-windriver/provision/sanity_test_multicloud.robot diff --git a/plans/multicloud/functionality1/setup.sh b/plans/multicloud/functionality1/setup.sh new file mode 100755 index 00000000..50118a54 --- /dev/null +++ b/plans/multicloud/functionality1/setup.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +# start multivim-broker +docker run -d --name multivim-vio nexus3.onap.org:10001/onap/multicloud/vio +docker run -d --name multivim-broker --link multivim-vio -e MSB_ADDR=multivim-vio -e MSB_PORT=9004 nexus3.onap.org:10001/onap/multicloud/framework + +BROKER_IP=`get-instance-ip.sh multivim-broker` +for i in {1..50}; do + curl -sS ${BROKER_IP}:9001 && break + echo sleep $i + sleep $i +done + +echo SCRIPTS +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v BROKER_IP:${BROKER_IP}" diff --git a/plans/multicloud/functionality1/teardown.sh b/plans/multicloud/functionality1/teardown.sh new file mode 100755 index 00000000..a2ef0e35 --- /dev/null +++ b/plans/multicloud/functionality1/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh multivim-vio +kill-instance.sh multivim-broker diff --git a/plans/multicloud/functionality1/testplan.txt b/plans/multicloud/functionality1/testplan.txt new file mode 100644 index 00000000..f515c64d --- /dev/null +++ b/plans/multicloud/functionality1/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +multicloud/provision/sanity_test_multivim.robot diff --git a/plans/music/music-distributed-kv-store-test-plan/setup.sh b/plans/music/music-distributed-kv-store-test-plan/setup.sh new file mode 100644 index 00000000..88becf69 --- /dev/null +++ b/plans/music/music-distributed-kv-store-test-plan/setup.sh @@ -0,0 +1,60 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +# Not sure why this is needed. +source ${SCRIPTS}/common_functions.sh + +# Initial Configuration. +DATASTORE="consul" +DATASTORE_IP="localhost" + +MOUNTPATH="/dkv_mount_path/configs/" +DEFAULT_CONFIGS=$(pwd)/mountpath/default + +mkdir -p mountpath/default + +pushd mountpath/default +cat << EOF > sampleConfig1.properties +foo1=bar1 +hello1=world1 +key1=value1 +EOF +cat << EOF > sampleConfig2.properties +foo2=bar2 +hello2=world2 +key2=value2 +EOF +popd + +docker login -u docker -p docker nexus3.onap.org:10001 +docker pull nexus3.onap.org:10001/onap/music/distributed-kv-store +docker run -e DATASTORE=$DATASTORE -e DATASTORE_IP=$DATASTORE_IP -e MOUNTPATH=$MOUNTPATH -d \ + --name dkv \ + -v $DEFAULT_CONFIGS:/dkv_mount_path/configs/default \ + -p 8200:8200 -p 8080:8080 nexus3.onap.org:10001/onap/music/distributed-kv-store + + +echo "###### WAITING FOR DISTRIBUTED KV STORE CONTAINER TO COME UP" +sleep 10 + +# +# add here all ROBOT_VARIABLES settings +# +echo "# music robot variables settings"; +ROBOT_VARIABLES="-v DKV_HOSTNAME:http://localhost -v DKV_PORT:8080" + +echo ${ROBOT_VARIABLES}
\ No newline at end of file diff --git a/plans/music/music-distributed-kv-store-test-plan/teardown.sh b/plans/music/music-distributed-kv-store-test-plan/teardown.sh new file mode 100644 index 00000000..0abf3a62 --- /dev/null +++ b/plans/music/music-distributed-kv-store-test-plan/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2018 Intel Corporation +# +# 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. +# + +rm -rf mountpath +docker stop dkv +docker rm dkv +docker rmi nexus3.onap.org:10001/onap/music/distributed-kv-store diff --git a/plans/music/music-distributed-kv-store-test-plan/testplan.txt b/plans/music/music-distributed-kv-store-test-plan/testplan.txt new file mode 100644 index 00000000..ac37bc5a --- /dev/null +++ b/plans/music/music-distributed-kv-store-test-plan/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +music/music-distributed-kv-store-suite
\ No newline at end of file diff --git a/plans/music/music-test-plan/setup.sh b/plans/music/music-test-plan/setup.sh new file mode 100755 index 00000000..7775bc52 --- /dev/null +++ b/plans/music/music-test-plan/setup.sh @@ -0,0 +1,164 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# +# add here eventual scripts needed for music +# +echo "########## music scripts calling ##########"; +source ${WORKSPACE}/test/csit/scripts/music/music-scripts/music_script.sh + +# +# add here all the configuration steps eventually needed to be carried out for music CSIT testing +# +echo "########## music configuration step ##########"; +CASS_IMG=nexus3.onap.org:10001/onap/music/cassandra_3_11:latest +CASS_IMG_JOB=nexus3.onap.org:10001/onap/music/cassandra_job:latest +TOMCAT_IMG=nexus3.onap.org:10001/library/tomcat:8.5 +ZK_IMG=nexus3.onap.org:10001/library/zookeeper:3.4 +BUSYBOX_IMG=nexus3.onap.org:10001/library/busybox:latest +MUSIC_IMG=nexus3.onap.org:10001/onap/music/music:latest +TT=10 +WORK_DIR=/tmp/music +CASS_USERNAME=nelson24 +CASS_PASSWORD=winman123 +MUSIC_SOURCE_PROPERTIES=${WORKSPACE}/test/csit/scripts/music/music-properties +MUSIC_PROPERTIES=/tmp/music/properties +MUSIC_LOGS=/tmp/music/logs +CQL_FILES=${WORKSPACE}/test/csit/scripts/music/cql +MUSIC_TRIGGER_DIR=/tmp/triggers +TRIGGER_JAR=musictrigger-0.1.0.jar +TRIGGER_JAR_URL=https://nexus.onap.org/service/local/repositories/autorelease-72298/content/org/onap/music/musictrigger/0.1.0/musictrigger-0.1.0.jar + +mkdir -p ${MUSIC_PROPERTIES} +mkdir -p ${MUSIC_LOGS} +mkdir -p ${MUSIC_LOGS}/MUSIC +mkdir -p /tmp/triggers + +# Get Trigger +echo "########## Get Trigger Jar ##########" +curl -o $MUSIC_TRIGGER_DIR/$TRIGGER_JAR $TRIGGER_JAR_URL + +cp ${MUSIC_SOURCE_PROPERTIES}/* ${WORK_DIR}/properties + +# Create Volume for mapping war file and tomcat +echo "########## create music-vol ##########" +docker volume create --name music-vol; + +# Create a network for all the containers to run in. +echo "########## create music-net ##########" +docker network create music-net; + +# Start Cassandra +echo "########## Start Cassandra (music-db) ##########" +docker run -d --name music-db --network music-net -p "7000:7000" -p "7001:7001" -p "7199:7199" -p "9042:9042" -p "9160:9160" \ +-v $MUSIC_TRIGGER_DIR/$TRIGGER_JAR:/etc/cassandra/triggers/$TRIGGER_JAR \ +${CASS_IMG}; + +CASSA_IP=`docker inspect -f '{{ $network := index .NetworkSettings.Networks "music-net" }}{{ $network.IPAddress}}' music-db` +echo "CASSANDRA_IP=${CASSA_IP}" +${WORKSPACE}/test/csit/scripts/optf-has/has/wait_for_port.sh ${CASSA_IP} 9042 + +# See if cassandra is up. +echo "########## Running Test to see if Cassandra is up ##########" +docker run --name music-casstest --network music-net \ +$BUSYBOX_IMG sh -c "until nc -z music-db 9042 && echo "success"; do echo 'No connection .. Sleeping for $TT seconds';sleep $TT; done;" + +# Check to see if Keyspaces are there. +docker exec music-db cqlsh -u cassandra -p cassandra -e "DESCRIBE keyspaces;" + +sleep 10; + +# Load data into Cassandra via Cassandra Job +echo "########## Running Cassandra Job (music-job) to load cql files ##########" +docker run -d --name music-job --network music-net \ +-v $CQL_FILES/admin.cql:/cql/admin.cql \ +-v $CQL_FILES/admin_pw.cql:/cql/admin_pw.cql \ +-v $CQL_FILES/extra:/cql/extra \ +-e PORT=9042 \ +-e CASS_HOSTNAME=music-db \ +-e USERNAME=$CASS_USERNAME \ +-e PASSWORD=$CASS_PASSWORD \ +$CASS_IMG_JOB +# Logs +echo "########## Cassandra Job logs ##########" +docker logs music-job + +# Start Music war +echo "########## Start music-war ##########" +docker run -d --name music-war -v music-vol:/app ${MUSIC_IMG}; + +# Start Zookeeper +echo "########## Start zookeeper (music-zk) ##########" +docker run -d --name music-zk --network music-net -p "2181:2181" -p "2888:2888" -p "3888:3888" ${ZK_IMG}; + +ZOO_IP=`docker inspect -f '{{ $network := index .NetworkSettings.Networks "music-net" }}{{ $network.IPAddress}}' music-zk` +echo "ZOOKEEPER_IP=${ZOO_IP}" + +# Delay between Cassandra/Zookeeper and Tomcat +sleep 10; + +# Start Up tomcat - Needs to have properties,logs dir and war file volume mapped. +echo "########## Start Tomcat (music-tomcat) ##########" +docker run -d --name music-tomcat --network music-net -p "8080:8080" -v music-vol:/usr/local/tomcat/webapps -v ${WORK_DIR}/properties:/opt/app/music/etc:ro -v ${WORK_DIR}/logs:/opt/app/music/logs ${TOMCAT_IMG}; + +# Connect tomcat to host bridge network so that its port can be seen. +echo "########## Create Bridge for Tomcat ##########" +docker network connect bridge music-tomcat; + +TOMCAT_IP=`docker inspect --format '{{ .NetworkSettings.Networks.bridge.IPAddress}}' music-tomcat` +echo "TOMCAT_IP=${TOMCAT_IP}" + +${WORKSPACE}/test/csit/scripts/music/music-scripts/wait_for_port.sh ${TOMCAT_IP} 8080 + +sleep 20; +echo "########## TOMCAT Logs ##########" +docker logs music-tomcat +# Needed only if we need to look at localhost logs. +echo "########## MUSIC localhost Log ##########" +docker exec music-tomcat /bin/bash -c "cat /usr/local/tomcat/logs/localhost*" + +echo "########## MUSIC Log ##########" +ls -al $MUSIC_LOGS/MUSIC +docker exec music-tomcat /bin/bash -c "cat /opt/app/music/logs/MUSIC/music.log" +#echo "########## MUSIC error log ##########" +#docker exec music-tomcat /bin/bash -c "cat /opt/app/music/logs/MUSIC/error.log" + +echo "########## inspect docker things for tracing purpose ##########" +docker inspect music-db +docker inspect music-zk +docker inspect music-tomcat +docker inspect music-war +docker volume inspect music-vol +docker network inspect music-net + +echo "########## dump music content just after music is started ##########" +docker exec music-db /usr/bin/nodetool status +docker exec music-db /usr/bin/cqlsh -unelson24 -pwinman123 -e 'SELECT * FROM system_schema.keyspaces' +docker exec music-db /usr/bin/cqlsh -unelson24 -pwinman123 -e 'DESCRIBE keyspace admin' +docker exec music-db /usr/bin/cqlsh -unelson24 -pwinman123 -e 'SELECT * FROM admin.keyspace_master' + + +# +# add here all ROBOT_VARIABLES settings +# +echo "########## music robot variables settings ##########"; +ROBOT_VARIABLES="-v MUSIC_HOSTNAME:http://${TOMCAT_IP} -v MUSIC_PORT:8080 -v COND_HOSTNAME:http://localhost -v COND_PORT:8091" + +echo ${ROBOT_VARIABLES} + + + diff --git a/plans/music/music-test-plan/teardown.sh b/plans/music/music-test-plan/teardown.sh new file mode 100755 index 00000000..e05ef9d1 --- /dev/null +++ b/plans/music/music-test-plan/teardown.sh @@ -0,0 +1,63 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + + +# +# add here below the killing of all docker containers used for music CSIT testing +# +echo "dump music.log files" +ls -alF /tmp/music +ls -alFR /tmp/music +ls -alF /tmp/music/properties +cat /tmp/music/properties/music.properties +echo "===== MUSIC log ==================" +docker exec music-tomcat /bin/bash -c "cat /opt/app/music/logs/MUSIC/music.log" +#cat /tmp/music/logs/MUSIC/music.log +echo "===== MUSIC error log ==================" +docker exec music-tomcat /bin/bash -c "cat /opt/app/music/logs/MUSIC/error.log" +#cat /tmp/music/logs/MUSIC/error.log + +echo "##########################################################"; +echo "#"; +echo "# music scripts docker containers killing"; +echo "#"; +echo "##########################################################"; +docker stop music-tomcat +docker stop music-war +docker stop music-zk +docker stop music-job +docker stop music-casstest +docker stop music-db + +docker rm music-zk +docker rm music-tomcat +docker rm music-war +docker rm music-job +docker rm music-casstest +docker rm music-db + +docker network rm music-net; +sleep 5; + +docker volume rm music-vol + +#rm -Rf /tmp/music + + + + + diff --git a/plans/music/music-test-plan/testplan.txt b/plans/music/music-test-plan/testplan.txt new file mode 100644 index 00000000..e53f3267 --- /dev/null +++ b/plans/music/music-test-plan/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +music/music-suite diff --git a/plans/optf-has/has/setup.sh b/plans/optf-has/has/setup.sh new file mode 100755 index 00000000..a0bef71d --- /dev/null +++ b/plans/optf-has/has/setup.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + + +# +# add here eventual scripts needed for music +# +echo "# music scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/music_script.sh + + +# +echo "# simulator scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/simulator_script.sh + +# add here eventual scripts needed for optf/has +# +echo "# optf/has scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/has_script.sh + +# +# add here below the start of all docker containers needed for optf/has CSIT testing +# +echo "# optf/has scripts docker containers spinoff"; + +# +# add here all the configuration steps eventually needed to be carried out for optf/has CSIT testing +# +echo "# optf/has configuration step"; + + +# +# add here all ROBOT_VARIABLES settings +# +echo "# optf/has robot variables settings"; +echo "conductor ip = ${COND_IP}" +echo "music ip = ${TOMCAT_IP}" + +ROBOT_VARIABLES="-v MUSIC_HOSTNAME:http://${TOMCAT_IP} -v MUSIC_PORT:8080 -v COND_HOSTNAME:http://${COND_IP} -v COND_PORT:8091" + +echo ${ROBOT_VARIABLES} + + + diff --git a/plans/optf-has/has/teardown.sh b/plans/optf-has/has/teardown.sh new file mode 100755 index 00000000..41d7aff2 --- /dev/null +++ b/plans/optf-has/has/teardown.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + + +# +# add here below the killing of all docker containers used for optf/has CSIT testing +# + +# +# optf/has scripts docker containers killing"; +# +echo "# optf/has has scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/has_teardown_script.sh + +echo "# optf/has simulator scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/simulator_teardown_script.sh + +echo "# optf/has music scripts calling"; +source ${WORKSPACE}/test/csit/scripts/optf-has/has/music_teardown_script.sh + diff --git a/plans/optf-has/has/testplan.txt b/plans/optf-has/has/testplan.txt new file mode 100644 index 00000000..980050c9 --- /dev/null +++ b/plans/optf-has/has/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +optf-has/has diff --git a/plans/optf-has/osdf/sample.txt b/plans/optf-has/osdf/sample.txt new file mode 100644 index 00000000..9f4e8d7d --- /dev/null +++ b/plans/optf-has/osdf/sample.txt @@ -0,0 +1 @@ +#test diff --git a/plans/policy/apex-pdp/setup.sh b/plans/policy/apex-pdp/setup.sh new file mode 100644 index 00000000..7ab5b9e2 --- /dev/null +++ b/plans/policy/apex-pdp/setup.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2018 Ericsson. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +docker run -d --name apex -p 12561:12561 -p 23324:23324 -it nexus3.onap.org:10001/onap/policy-apex-pdp:2.0-SNAPSHOT-latest /bin/bash -c "/opt/app/policy/apex-pdp/bin/apexEngine.sh -c /opt/app/policy/apex-pdp/examples/config/SampleDomain/RESTServerJsonEvent.json" + +APEX_IP=`get-instance-ip.sh apex` +echo APEX IP IS ${APEX_IP} +Wait for initialization +for i in {1..10}; do + curl -sS ${APEX_IP}:23324 && break + echo sleep $i + sleep $i +done + +ROBOT_VARIABLES="-v APEX_IP:${APEX_IP}" diff --git a/plans/policy/apex-pdp/teardown.sh b/plans/policy/apex-pdp/teardown.sh new file mode 100644 index 00000000..ca8e92e6 --- /dev/null +++ b/plans/policy/apex-pdp/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2018 Ericsson. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +kill-instance.sh apex diff --git a/plans/policy/apex-pdp/testplan.txt b/plans/policy/apex-pdp/testplan.txt new file mode 100644 index 00000000..cee9abda --- /dev/null +++ b/plans/policy/apex-pdp/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +policy/apex-pdp/apex-pdp-test.robot diff --git a/plans/policy/distribution/setup.sh b/plans/policy/distribution/setup.sh new file mode 100644 index 00000000..9b894e3d --- /dev/null +++ b/plans/policy/distribution/setup.sh @@ -0,0 +1,31 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2018 Ericsson. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +docker run -d --name policy-distribution -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-distribution:2.0.0-SNAPSHOT-latest + +POLICY_DISTRIBUTION_IP=`get-instance-ip.sh policy-distribution` +echo DISTRIBUTION IP IS ${POLICY_DISTRIBUTION_IP} +Wait for initialization +for i in {1..10}; do + curl -sS ${POLICY_DISTRIBUTION_IP}:6969 && break + echo sleep $i + sleep $i +done + +ROBOT_VARIABLES="-v POLICY_DISTRIBUTION_IP:${POLICY_DISTRIBUTION_IP}" diff --git a/plans/policy/distribution/teardown.sh b/plans/policy/distribution/teardown.sh new file mode 100644 index 00000000..562df6b3 --- /dev/null +++ b/plans/policy/distribution/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# ============LICENSE_START======================================================= +# Copyright (C) 2018 Ericsson. All rights reserved. +# ================================================================================ +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= + +kill-instance.sh policy-distribution diff --git a/plans/policy/distribution/testplan.txt b/plans/policy/distribution/testplan.txt new file mode 100644 index 00000000..6f74cce4 --- /dev/null +++ b/plans/policy/distribution/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +policy/distribution/distribution-test.robot diff --git a/plans/policy/health/setup.sh b/plans/policy/health/setup.sh new file mode 100755 index 00000000..21f58eb6 --- /dev/null +++ b/plans/policy/health/setup.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# +# Copyright 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +docker run --name i-mock -d jamesdbloom/mockserver +MOCK_IP=`get-instance-ip.sh i-mock` +echo ${MOCK_IP} + +docker inspect i-mock + +# Wait for initialization +for i in {1..10}; do + curl -sS ${MOCK_IP}:1080 && break + echo sleep $i + sleep $i +done + +${WORKSPACE}/test/csit/scripts/policy/mock-hello.sh ${MOCK_IP} + +source ${WORKSPACE}/test/csit/scripts/policy/script1.sh + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v POLICY_IP:${POLICY_IP} -v PDP_IP:${PDP_IP} -v DOCKER_IP:${DOCKER_IP}" +export PDP_IP=${PDP_IP} +export POLICY_IP=${POLICY_IP} +export DOCKER_IP=${DOCKER_IP} + +#Get current IP of VM +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +export HOST_IP=${HOST_IP} diff --git a/plans/policy/health/teardown.sh b/plans/policy/health/teardown.sh new file mode 100755 index 00000000..f1f0b21c --- /dev/null +++ b/plans/policy/health/teardown.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +function kill_instance() { +local name=$1 +docker logs "${name}" >> "${WORKSPACE}"/archives/"${name}".log +docker kill "${name}" +docker rm -v "${name}" +} + +mkdir -p "${WORKSPACE}"/archives + +kill_instance i-mock +kill_instance drools +kill_instance pdp +kill_instance brmsgw +kill_instance pap +kill_instance nexus +kill_instance mariadb + +rm -fr "${WORK_DIR}" + diff --git a/plans/policy/health/testplan.txt b/plans/policy/health/testplan.txt new file mode 100644 index 00000000..bb858748 --- /dev/null +++ b/plans/policy/health/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +policy/suite1 diff --git a/plans/portal-sdk/testsuite/.env b/plans/portal-sdk/testsuite/.env new file mode 100644 index 00000000..27e9aa3f --- /dev/null +++ b/plans/portal-sdk/testsuite/.env @@ -0,0 +1,42 @@ +# Environment settings +# used by docker-compose AND by other shell scripts +# Host directory with config files + +# Following are ALSO used in demo/boot/portal_vm_init.sh +EP_IMG_NAME=onap/portal-app +SDK_IMG_NAME=onap/portal-sdk +DB_IMG_NAME=onap/portal-db +CDR_IMG_NAME=onap/music/cassandra_music +ZK_IMG_NAME=zookeeper +WMS_IMG_NAME=onap/portal-wms +# Deployed with portal; built elsewhere +CLI_IMG_NAME=onap/cli + +# Tag all images with this +DOCKER_IMAGE_VERSION=2.1-STAGING-latest +CLI_DOCKER_VERSION=1.1-STAGING-latest +CDR_IMAGE_VERSION=latest +ZK_IMAGE_VERSION=3.4 +NEXUS_DOCKER_REPO=nexus3.onap.org:10003 + +# This is used during builds and in docker-compose; +# it is never published to the ONAP registry. +PORTAL_TAG=beijing + +# Name of directory in apps container (NOT host) +WEBAPPS_DIR=/opt/apache-tomcat-8.0.37/webapps + +# Required settings with default values. +# Export shell environment variables on ALL hosts. +LOGS_DIR=./logs +PROPS_DIR=./properties + +# Optional settings with no defaults. +EXTRA_HOST_IP="" +EXTRA_HOST_NAME="" +# Export shell environment variables on hosts with no DNS; +# a line is added to docker container's /etc/hosts. +# For example: +#EXTRA_HOST_IP="-i ${HOST_IP}" +#EXTRA_HOST_NAME="-n portal.api.simpledemo.openecomp.org" + diff --git a/plans/portal-sdk/testsuite/docker-compose.yml b/plans/portal-sdk/testsuite/docker-compose.yml new file mode 100644 index 00000000..dda74c91 --- /dev/null +++ b/plans/portal-sdk/testsuite/docker-compose.yml @@ -0,0 +1,151 @@ +# docker-compose for ONAP portal containers: database, microservice, portal apps. +# Relies on .env file, which CANNOT be specified via command-line option +# Works in multiple environments; does not pull from a Nexus registry. +# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network. +# Images must be pulled from ONAP Nexus registry after logging in like this: +# docker login -u USER -p PASS nexus3.onap.org:10001 +# Uses healthcheck feature added in docker-compose v2.1 + +version: '2.1' + +services: + + cli: + image: ${CLI_IMG_NAME}:${PORTAL_TAG} + environment: + CLI_MODE: 'daemon' + ports: + - 8080:80 + - 9090:8080 + logging: + driver: json-file + + # Config files may use hostname "portal-db" + portal-db: + image: ${DB_IMG_NAME}:${PORTAL_TAG} + environment: + MYSQL_ROOT_PASSWORD: 'Aa123456' + expose: + - 3306 + volumes: + # Just specify a path and let the Engine create a volume + - /var/lib/mysql + # Inject the onboarding script at start time + - ./Apps_Users_OnBoarding_Script.sql:/docker-entrypoint-initdb.d/zzz_apps_users_onboarding.sql + logging: + driver: json-file + healthcheck: + test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] + timeout: 10s + retries: 30 + + # Config files may use hostname "portal-cassandra" + portal-cassandra: + image: ${CDR_IMG_NAME}:${PORTAL_TAG} + environment: + - CASSUSER=root + - CASSPASS=Aa123456 + expose: + - 7000 + - 7001 + - 7199 + - 9042 + - 9160 + ports: + - 7000:7000 + - 7001:7001 + - 7199:7199 + - 9042:9042 + - 9160:9160 + volumes: + - ./portal.cql:/docker-entrypoint-initdb.d/zzz_portal.cql + - ./portalsdk.cql:/docker-entrypoint-initdb.d/zzz_portalsdk.cql + links: + - portal-db + depends_on: + portal-db: + condition: service_healthy + + # Config files may use hostname "portal-zk" + portal-zk: + image: ${ZK_IMG_NAME}:${PORTAL_TAG} + expose: + - 2181 + ports: + - 2181:2181 + + # The app config file uses the docker name above + portal-wms: + image: ${WMS_IMG_NAME}:${PORTAL_TAG} + expose: + - 8082 + links: + - portal-db + depends_on: + portal-db: + condition: service_healthy + volumes: + - ${PROPS_DIR}/ONAPWIDGETMS/application.properties:/application.properties + - ${PROPS_DIR}/ONAPWIDGETMS/application.yml:/application.yml + command: + - /start-wms.sh + logging: + driver: json-file + + portal-app: + image: ${EP_IMG_NAME}:${PORTAL_TAG} + ports: + - 8989:8080 + - 8010:8009 + - 8006:8005 + links: + - portal-db + - portal-wms + - portal-zk + - portal-cassandra + depends_on: + portal-db: + condition: service_healthy + portal-wms: + condition: service_started + volumes: + - ${PROPS_DIR}/ONAPPORTAL/system.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTAL/fusion.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTAL/portal.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTAL/music.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTAL/openid-connect.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties + - ${PROPS_DIR}/ONAPPORTAL/logback.xml:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/logback.xml + - ${LOGS_DIR}:/opt/apache-tomcat-8.0.37/logs + command: + - /start-apache-tomcat.sh + # see comments in .env file + - -i + - $EXTRA_HOST_IP + - -n + - $EXTRA_HOST_NAME + logging: + driver: json-file + + portal-sdk: + image: ${SDK_IMG_NAME}:${PORTAL_TAG} + ports: + - 8990:8080 + links: + - portal-db + - portal-wms + - portal-zk + - portal-cassandra + depends_on: + portal-db: + condition: service_healthy + volumes: + - ${PROPS_DIR}/ONAPPORTALSDK/fusion.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTALSDK/system.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTALSDK/portal.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTALSDK/music.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTALSDK/logback.xml:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/logback.xml + - ${LOGS_DIR}:/opt/apache-tomcat-8.0.37/logs + command: + - /start-apache-tomcat.sh + logging: + driver: json-file diff --git a/plans/portal-sdk/testsuite/setup.sh b/plans/portal-sdk/testsuite/setup.sh new file mode 100644 index 00000000..6510311c --- /dev/null +++ b/plans/portal-sdk/testsuite/setup.sh @@ -0,0 +1,184 @@ +#!/bin/bash +# Starts docker containers for ONAP Portal +# This version for Amsterdam/R1 of Portal, uses docker-compose. +# Temporarily maintained in portal/deliveries area; +# replicated from the ONAP demo/boot area due to release concerns. + +# Start Xvfb +echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" +Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & +XVFBPID=$! +# Get pid of this spawned process to make sure we kill the correct process later + +#Get current IP of VM +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +export HOST_IP=${HOST_IP} + + + +if ! ifconfig docker0; then +if ! ifconfig ens3; then +echo "Could not determine IP address" +exit 1 +fi +export DOCKER_IP_IP=`ifconfig ens3 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'` +else +export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'` +fi +echo $DOCKER_IP + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +#ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v POLICY_IP:${POLICY_IP} -v DOCKER_IP:${DOCKER_IP}" +#export PORTAL_IP=${PORTAL_IP} +ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v DOCKER_IP:${DOCKER_IP}" +export DOCKER_IP=${DOCKER_IP} + + + + +# be verbose +set -x + +# Establish environment variables +NEXUS_USERNAME=docker +NEXUS_PASSWD=docker +NEXUS_DOCKER_REPO=nexus3.onap.org:10003 + + + +CURR="$(pwd)" +git clone http://gerrit.onap.org/r/portal -b "master" + +# Refresh configuration and scripts +cd portal +git pull +cd deliveries +rm .env +#rm docker-compose.yml +cp $CURR/.env . +#cp $CURR/docker-compose.yml . +#cd properties_simpledemo/ECOMPPORTALAPP +#rm system.properties +#cp $CURR/system.properties . +#cd ../.. +# Get image names used below from docker-compose environment file +source $CURR/.env +#source .env + +# Make inter-app communication work in CSIT +export EXTRA_HOST_IP="-i ${HOST_IP}" +export EXTRA_HOST_NAME="-n portal.api.simpledemo.onap.org" + + +# Copy property files to new directory +mkdir -p $PROPS_DIR +cp -r properties_simpledemo/* $PROPS_DIR +# Also create logs directory +mkdir -p $LOGS_DIR + + +# Refresh images +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO +docker pull $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION +docker pull $ZK_IMG_NAME:$ZK_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION + +# Tag them as expected by docker-compose file +docker tag $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION $SDK_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION $CDR_IMG_NAME:$PORTAL_TAG +docker tag $ZK_IMG_NAME:$ZK_IMAGE_VERSION $ZK_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION $CLI_IMG_NAME:$PORTAL_TAG + + +# compose is not in /usr/bin +docker-compose down +docker-compose up -d + +#${HOSTNAME}="portal.api.simpledemo.openecomp.org" +#echo "$HOST_IP ${HOSTNAME}" >> /etc/hosts + +#echo "$HOST_IP portal.api.simpledemo.openecomp.org" >> /etc/hosts +#sudo sed -i "2i$HOST_IP portal.api.simpledemo.openecomp.org" /etc/hosts + +#HOST="portal.api.simpledemo.openecomp.org" +#sudo sed -i "/$HOST/ s/.*/$HOST_IP\t$HOST/g" /etc/hosts + +# insert/update hosts entry +ip_address=$HOST_IP +host_name="portal.api.simpledemo.onap.org" +# find existing instances in the host file and save the line numbers +matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)" +host_entry="${ip_address} ${host_name}" + +echo "$host_entry" + +if [ ! -z "$matches_in_hosts" ] +then +echo "Updating existing hosts entry." +# iterate over the line numbers on which matches were found +while read -r line_number; do +# replace the text of each line with the desired host entry +sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts +echo "${line_number} ${host_entry}" +done <<< "$matches_in_hosts" +else +echo "Adding new hosts entry." +echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null +fi + + + +sleep 6m + +# WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API +TIME_OUT=500 +INTERVAL=20 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + response=$(curl --write-out '%{http_code}' --silent --output /dev/null http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/portalApi/healthCheck); echo $response + + if [ "$response" == "200" ]; then + echo Portal and its database well started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if Portal is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests... +fi + +#sleep 3m + + + +#if [ "$TIME" -ge "$TIME_OUT" ]; then +# echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests... +#fi + + + + + +#Get current IP of VM +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +export HOST_IP=${HOST_IP} + +#docker logs deliveries_portal-db_1 +docker logs deliveries_portal-app_1 +docker logs deliveries_portal-wms_1 + + + + diff --git a/plans/portal-sdk/testsuite/teardown.sh b/plans/portal-sdk/testsuite/teardown.sh new file mode 100644 index 00000000..e0431a72 --- /dev/null +++ b/plans/portal-sdk/testsuite/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +docker kill $(docker ps -q) + + diff --git a/plans/portal-sdk/testsuite/testplan.txt b/plans/portal-sdk/testsuite/testplan.txt new file mode 100644 index 00000000..27f8af34 --- /dev/null +++ b/plans/portal-sdk/testsuite/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +portal-sdk/testsuites diff --git a/plans/portal/testsuite/.env b/plans/portal/testsuite/.env new file mode 100644 index 00000000..27e9aa3f --- /dev/null +++ b/plans/portal/testsuite/.env @@ -0,0 +1,42 @@ +# Environment settings +# used by docker-compose AND by other shell scripts +# Host directory with config files + +# Following are ALSO used in demo/boot/portal_vm_init.sh +EP_IMG_NAME=onap/portal-app +SDK_IMG_NAME=onap/portal-sdk +DB_IMG_NAME=onap/portal-db +CDR_IMG_NAME=onap/music/cassandra_music +ZK_IMG_NAME=zookeeper +WMS_IMG_NAME=onap/portal-wms +# Deployed with portal; built elsewhere +CLI_IMG_NAME=onap/cli + +# Tag all images with this +DOCKER_IMAGE_VERSION=2.1-STAGING-latest +CLI_DOCKER_VERSION=1.1-STAGING-latest +CDR_IMAGE_VERSION=latest +ZK_IMAGE_VERSION=3.4 +NEXUS_DOCKER_REPO=nexus3.onap.org:10003 + +# This is used during builds and in docker-compose; +# it is never published to the ONAP registry. +PORTAL_TAG=beijing + +# Name of directory in apps container (NOT host) +WEBAPPS_DIR=/opt/apache-tomcat-8.0.37/webapps + +# Required settings with default values. +# Export shell environment variables on ALL hosts. +LOGS_DIR=./logs +PROPS_DIR=./properties + +# Optional settings with no defaults. +EXTRA_HOST_IP="" +EXTRA_HOST_NAME="" +# Export shell environment variables on hosts with no DNS; +# a line is added to docker container's /etc/hosts. +# For example: +#EXTRA_HOST_IP="-i ${HOST_IP}" +#EXTRA_HOST_NAME="-n portal.api.simpledemo.openecomp.org" + diff --git a/plans/portal/testsuite/docker-compose.yml b/plans/portal/testsuite/docker-compose.yml new file mode 100644 index 00000000..dda74c91 --- /dev/null +++ b/plans/portal/testsuite/docker-compose.yml @@ -0,0 +1,151 @@ +# docker-compose for ONAP portal containers: database, microservice, portal apps. +# Relies on .env file, which CANNOT be specified via command-line option +# Works in multiple environments; does not pull from a Nexus registry. +# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network. +# Images must be pulled from ONAP Nexus registry after logging in like this: +# docker login -u USER -p PASS nexus3.onap.org:10001 +# Uses healthcheck feature added in docker-compose v2.1 + +version: '2.1' + +services: + + cli: + image: ${CLI_IMG_NAME}:${PORTAL_TAG} + environment: + CLI_MODE: 'daemon' + ports: + - 8080:80 + - 9090:8080 + logging: + driver: json-file + + # Config files may use hostname "portal-db" + portal-db: + image: ${DB_IMG_NAME}:${PORTAL_TAG} + environment: + MYSQL_ROOT_PASSWORD: 'Aa123456' + expose: + - 3306 + volumes: + # Just specify a path and let the Engine create a volume + - /var/lib/mysql + # Inject the onboarding script at start time + - ./Apps_Users_OnBoarding_Script.sql:/docker-entrypoint-initdb.d/zzz_apps_users_onboarding.sql + logging: + driver: json-file + healthcheck: + test: [ "CMD", "mysqladmin", "ping", "-h", "localhost" ] + timeout: 10s + retries: 30 + + # Config files may use hostname "portal-cassandra" + portal-cassandra: + image: ${CDR_IMG_NAME}:${PORTAL_TAG} + environment: + - CASSUSER=root + - CASSPASS=Aa123456 + expose: + - 7000 + - 7001 + - 7199 + - 9042 + - 9160 + ports: + - 7000:7000 + - 7001:7001 + - 7199:7199 + - 9042:9042 + - 9160:9160 + volumes: + - ./portal.cql:/docker-entrypoint-initdb.d/zzz_portal.cql + - ./portalsdk.cql:/docker-entrypoint-initdb.d/zzz_portalsdk.cql + links: + - portal-db + depends_on: + portal-db: + condition: service_healthy + + # Config files may use hostname "portal-zk" + portal-zk: + image: ${ZK_IMG_NAME}:${PORTAL_TAG} + expose: + - 2181 + ports: + - 2181:2181 + + # The app config file uses the docker name above + portal-wms: + image: ${WMS_IMG_NAME}:${PORTAL_TAG} + expose: + - 8082 + links: + - portal-db + depends_on: + portal-db: + condition: service_healthy + volumes: + - ${PROPS_DIR}/ONAPWIDGETMS/application.properties:/application.properties + - ${PROPS_DIR}/ONAPWIDGETMS/application.yml:/application.yml + command: + - /start-wms.sh + logging: + driver: json-file + + portal-app: + image: ${EP_IMG_NAME}:${PORTAL_TAG} + ports: + - 8989:8080 + - 8010:8009 + - 8006:8005 + links: + - portal-db + - portal-wms + - portal-zk + - portal-cassandra + depends_on: + portal-db: + condition: service_healthy + portal-wms: + condition: service_started + volumes: + - ${PROPS_DIR}/ONAPPORTAL/system.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTAL/fusion.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTAL/portal.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTAL/music.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTAL/openid-connect.properties:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/openid-connect.properties + - ${PROPS_DIR}/ONAPPORTAL/logback.xml:${WEBAPPS_DIR}/ONAPPORTAL/WEB-INF/classes/logback.xml + - ${LOGS_DIR}:/opt/apache-tomcat-8.0.37/logs + command: + - /start-apache-tomcat.sh + # see comments in .env file + - -i + - $EXTRA_HOST_IP + - -n + - $EXTRA_HOST_NAME + logging: + driver: json-file + + portal-sdk: + image: ${SDK_IMG_NAME}:${PORTAL_TAG} + ports: + - 8990:8080 + links: + - portal-db + - portal-wms + - portal-zk + - portal-cassandra + depends_on: + portal-db: + condition: service_healthy + volumes: + - ${PROPS_DIR}/ONAPPORTALSDK/fusion.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/fusion/conf/fusion.properties + - ${PROPS_DIR}/ONAPPORTALSDK/system.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/conf/system.properties + - ${PROPS_DIR}/ONAPPORTALSDK/portal.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/portal.properties + - ${PROPS_DIR}/ONAPPORTALSDK/music.properties:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/music.properties + - ${PROPS_DIR}/ONAPPORTALSDK/logback.xml:${WEBAPPS_DIR}/ONAPPORTALSDK/WEB-INF/classes/logback.xml + - ${LOGS_DIR}:/opt/apache-tomcat-8.0.37/logs + command: + - /start-apache-tomcat.sh + logging: + driver: json-file diff --git a/plans/portal/testsuite/setup.sh b/plans/portal/testsuite/setup.sh new file mode 100644 index 00000000..76cf5f37 --- /dev/null +++ b/plans/portal/testsuite/setup.sh @@ -0,0 +1,184 @@ +#!/bin/bash +# Starts docker containers for ONAP Portal +# This version for Amsterdam/R1 of Portal, uses docker-compose. +# Temporarily maintained in portal/deliveries area; +# replicated from the ONAP demo/boot area due to release concerns. + +# Start Xvfb +echo -e "Starting Xvfb on display ${DISPLAY} with res ${RES}" +Xvfb ${DISPLAY} -ac -screen 0 ${RES} +extension RANDR & +XVFBPID=$! +# Get pid of this spawned process to make sure we kill the correct process later + +#Get current IP of VM +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +export HOST_IP=${HOST_IP} + + + +if ! ifconfig docker0; then +if ! ifconfig ens3; then +echo "Could not determine IP address" +exit 1 +fi +export DOCKER_IP_IP=`ifconfig ens3 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'` +else +export DOCKER_IP=`ifconfig docker0 | awk -F: '/inet addr/ {gsub(/ .*/,"",$2); print $2}'` +fi +echo $DOCKER_IP + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +#ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v POLICY_IP:${POLICY_IP} -v DOCKER_IP:${DOCKER_IP}" +#export PORTAL_IP=${PORTAL_IP} +ROBOT_VARIABLES="-v MOCK_IP:${MOCK_IP} -v IP:${IP} -v DOCKER_IP:${DOCKER_IP}" +export DOCKER_IP=${DOCKER_IP} + + + + +# be verbose +set -x + +# Establish environment variables +NEXUS_USERNAME=docker +NEXUS_PASSWD=docker +NEXUS_DOCKER_REPO=nexus3.onap.org:10003 + + + +CURR="$(pwd)" +git clone http://gerrit.onap.org/r/portal -b "master" + +# Refresh configuration and scripts +cd portal +git pull +cd deliveries +rm .env +#rm docker-compose.yml +cp $CURR/.env . +#cp $CURR/docker-compose.yml . +#cd properties_simpledemo/ECOMPPORTALAPP +#rm system.properties +#cp $CURR/system.properties . +#cd ../.. +# Get image names used below from docker-compose environment file +source $CURR/.env +#source .env + +# Make inter-app communication work in CSIT +export EXTRA_HOST_IP="-i ${HOST_IP}" +export EXTRA_HOST_NAME="-n portal.api.simpledemo.onap.org" + + +# Copy property files to new directory +mkdir -p $PROPS_DIR +cp -r properties_simpledemo/* $PROPS_DIR +# Also create logs directory +mkdir -p $LOGS_DIR + + +# Refresh images +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO +docker pull $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION +docker pull $ZK_IMG_NAME:$ZK_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION +docker pull $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION + +# Tag them as expected by docker-compose file +docker tag $NEXUS_DOCKER_REPO/$DB_IMG_NAME:$DOCKER_IMAGE_VERSION $DB_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$EP_IMG_NAME:$DOCKER_IMAGE_VERSION $EP_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$SDK_IMG_NAME:$DOCKER_IMAGE_VERSION $SDK_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$CDR_IMG_NAME:$CDR_IMAGE_VERSION $CDR_IMG_NAME:$PORTAL_TAG +docker tag $ZK_IMG_NAME:$ZK_IMAGE_VERSION $ZK_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$WMS_IMG_NAME:$DOCKER_IMAGE_VERSION $WMS_IMG_NAME:$PORTAL_TAG +docker tag $NEXUS_DOCKER_REPO/$CLI_IMG_NAME:$CLI_DOCKER_VERSION $CLI_IMG_NAME:$PORTAL_TAG + + +# compose is not in /usr/bin +docker-compose down +docker-compose up -d + +#${HOSTNAME}="portal.api.simpledemo.openecomp.org" +#echo "$HOST_IP ${HOSTNAME}" >> /etc/hosts + +#echo "$HOST_IP portal.api.simpledemo.openecomp.org" >> /etc/hosts +#sudo sed -i "2i$HOST_IP portal.api.simpledemo.openecomp.org" /etc/hosts + +#HOST="portal.api.simpledemo.openecomp.org" +#sudo sed -i "/$HOST/ s/.*/$HOST_IP\t$HOST/g" /etc/hosts + +# insert/update hosts entry +ip_address=$HOST_IP +host_name="portal.api.simpledemo.onap.org" +# find existing instances in the host file and save the line numbers +matches_in_hosts="$(grep -n $host_name /etc/hosts | cut -f1 -d:)" +host_entry="${ip_address} ${host_name}" + +echo "$host_entry" + +if [ ! -z "$matches_in_hosts" ] +then +echo "Updating existing hosts entry." +# iterate over the line numbers on which matches were found +while read -r line_number; do +# replace the text of each line with the desired host entry +sudo sed -i '' "${line_number}s/.*/${host_entry} /" /etc/hosts +echo "${line_number} ${host_entry}" +done <<< "$matches_in_hosts" +else +echo "Adding new hosts entry." +echo "$host_entry" | sudo tee -a /etc/hosts > /dev/null +fi + + + +sleep 6m + +# WAIT 5 minutes maximum and test every 5 seconds if Portal up using HealthCheck API +TIME_OUT=500 +INTERVAL=20 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + response=$(curl --write-out '%{http_code}' --silent --output /dev/null http://portal.api.simpledemo.onap.org:8989/ONAPPORTAL/portalApi/healthCheck); echo $response + + if [ "$response" == "200" ]; then + echo Portal and its database well started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if Portal is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests... +fi + +#sleep 3m + + + +#if [ "$TIME" -ge "$TIME_OUT" ]; then +# echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for tests... +#fi + + + + + +#Get current IP of VM +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +export HOST_IP=${HOST_IP} + +docker logs deliveries_portal-db_1 +docker logs deliveries_portal-app_1 +docker logs deliveries_portal-wms_1 + + + + diff --git a/plans/portal/testsuite/teardown.sh b/plans/portal/testsuite/teardown.sh new file mode 100644 index 00000000..e0431a72 --- /dev/null +++ b/plans/portal/testsuite/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2017 AT&T Intellectual Property. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +docker kill $(docker ps -q) + + diff --git a/plans/portal/testsuite/testplan.txt b/plans/portal/testsuite/testplan.txt new file mode 100644 index 00000000..d7b18a5c --- /dev/null +++ b/plans/portal/testsuite/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +portal/testsuites diff --git a/plans/sdc/nightly/setup.sh b/plans/sdc/nightly/setup.sh new file mode 100644 index 00000000..a7bbaa8e --- /dev/null +++ b/plans/sdc/nightly/setup.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/setup_sdc_for_apis_sanity.sh + +BE_IP=`get-instance-ip.sh sdc-BE` +echo BE_IP=${BE_IP} + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v BE_IP:${BE_IP}" + diff --git a/plans/sdc/nightly/teardown.sh b/plans/sdc/nightly/teardown.sh new file mode 100644 index 00000000..2074d10f --- /dev/null +++ b/plans/sdc/nightly/teardown.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/kill_containers_and_remove_dataFolders.sh diff --git a/plans/sdc/nightly/testplan.txt b/plans/sdc/nightly/testplan.txt new file mode 100644 index 00000000..3011ad5c --- /dev/null +++ b/plans/sdc/nightly/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +sdc/nightly diff --git a/plans/sdc/sanity/setup.sh b/plans/sdc/sanity/setup.sh new file mode 100644 index 00000000..a7bbaa8e --- /dev/null +++ b/plans/sdc/sanity/setup.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/setup_sdc_for_apis_sanity.sh + +BE_IP=`get-instance-ip.sh sdc-BE` +echo BE_IP=${BE_IP} + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v BE_IP:${BE_IP}" + diff --git a/plans/sdc/sanity/teardown.sh b/plans/sdc/sanity/teardown.sh new file mode 100644 index 00000000..2074d10f --- /dev/null +++ b/plans/sdc/sanity/teardown.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/kill_containers_and_remove_dataFolders.sh diff --git a/plans/sdc/sanity/testplan.txt b/plans/sdc/sanity/testplan.txt new file mode 100644 index 00000000..801f37d3 --- /dev/null +++ b/plans/sdc/sanity/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +sdc/sanity diff --git a/plans/sdc/uiSanity/setup.sh b/plans/sdc/uiSanity/setup.sh new file mode 100644 index 00000000..8f2bafda --- /dev/null +++ b/plans/sdc/uiSanity/setup.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/setup_sdc_for_ui_sanity.sh + +BE_IP=`get-instance-ip.sh sdc-BE` +echo BE_IP=${BE_IP} + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v BE_IP:${BE_IP}" + diff --git a/plans/sdc/uiSanity/teardown.sh b/plans/sdc/uiSanity/teardown.sh new file mode 100644 index 00000000..2074d10f --- /dev/null +++ b/plans/sdc/uiSanity/teardown.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +source ${WORKSPACE}/test/csit/scripts/sdc/kill_containers_and_remove_dataFolders.sh diff --git a/plans/sdc/uiSanity/testplan.txt b/plans/sdc/uiSanity/testplan.txt new file mode 100644 index 00000000..801f37d3 --- /dev/null +++ b/plans/sdc/uiSanity/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +sdc/sanity diff --git a/plans/sdnc/healthcheck/health_check.sh b/plans/sdnc/healthcheck/health_check.sh new file mode 100644 index 00000000..e8b5056d --- /dev/null +++ b/plans/sdnc/healthcheck/health_check.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPTS + +unset http_proxy https_proxy + +response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-sdnc" -H "X-TransactionId: csit-sdnc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck ) + +if [ "$response" == "200" ]; then + echo "SDNC health check passed." + exit 0; +fi + +echo "SDNC health check failed with response code ${response}." +exit 1 diff --git a/plans/sdnc/healthcheck/setup.sh b/plans/sdnc/healthcheck/setup.sh new file mode 100644 index 00000000..991ba18b --- /dev/null +++ b/plans/sdnc/healthcheck/setup.sh @@ -0,0 +1,139 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: +SCRIPTS="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +source ${WORKSPACE}/test/csit/scripts/sdnc/script1.sh + +export NEXUS_USERNAME=docker +export NEXUS_PASSWD=docker +export NEXUS_DOCKER_REPO=nexus3.onap.org:10001 +export DMAAP_TOPIC=AUTO +export DOCKER_IMAGE_VERSION=1.4-STAGING-latest +export CCSDK_DOCKER_IMAGE_VERSION=0.3-STAGING-latest + +export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1) + +if [ "$MTU" == "" ]; then + export MTU="1450" +fi + + +# Clone SDNC repo to get docker-compose for SDNC +mkdir -p $WORKSPACE/archives/sdnc +cd $WORKSPACE/archives +git clone -b master --single-branch --depth=1 http://gerrit.onap.org/r/sdnc/oam.git sdnc +cd $WORKSPACE/archives/sdnc +git pull +unset http_proxy https_proxy +cd $WORKSPACE/archives/sdnc/installation/src/main/yaml + +sed -i "s/DMAAP_TOPIC_ENV=.*/DMAAP_TOPIC_ENV="AUTO"/g" docker-compose.yml +docker login -u $NEXUS_USERNAME -p $NEXUS_PASSWD $NEXUS_DOCKER_REPO + +docker pull $NEXUS_DOCKER_REPO/onap/sdnc-image:$DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/sdnc-image:$DOCKER_IMAGE_VERSION onap/sdnc-image:latest + +docker pull $NEXUS_DOCKER_REPO/onap/sdnc-ansible-server-image:$DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ansible-server-image:$DOCKER_IMAGE_VERSION onap/sdnc-ansible-server-image:latest + +docker pull $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/ccsdk-dgbuilder-image:$CCSDK_DOCKER_IMAGE_VERSION onap/ccsdk-dgbuilder-image:latest + +docker pull $NEXUS_DOCKER_REPO/onap/admportal-sdnc-image:$DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/admportal-sdnc-image:$DOCKER_IMAGE_VERSION onap/admportal-sdnc-image:latest + +docker pull $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION +docker tag $NEXUS_DOCKER_REPO/onap/sdnc-ueb-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-ueb-listener-image:latest + +docker pull $NEXUS_DOCKER_REPO/onap/sdnc-dmaap-listener-image:$DOCKER_IMAGE_VERSION + +docker tag $NEXUS_DOCKER_REPO/onap/sdnc-dmaap-listener-image:$DOCKER_IMAGE_VERSION onap/sdnc-dmaap-listener-image:latest + + +# start SDNC containers with docker compose and configuration from docker-compose.yml +docker-compose up -d + +# WAIT 10 minutes maximum and test every 5 seconds if SDNC is up using HealthCheck API +TIME_OUT=1000 +INTERVAL=30 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + response=$(curl --write-out '%{http_code}' --silent --output /dev/null -H "Authorization: Basic YWRtaW46S3A4Yko0U1hzek0wV1hsaGFrM2VIbGNzZTJnQXc4NHZhb0dHbUp2VXkyVQ==" -X POST -H "X-FromAppId: csit-sdnc" -H "X-TransactionId: csit-sdnc" -H "Accept: application/json" -H "Content-Type: application/json" http://localhost:8282/restconf/operations/SLI-API:healthcheck ); echo $response + + if [ "$response" == "200" ]; then + echo SDNC started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if SDNC is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: Docker containers not started in $TIME_OUT seconds... Could cause problems for testing activities... +fi + +#sleep 800 + +TIME_OUT=1500 +INTERVAL=60 +TIME=0 +while [ "$TIME" -lt "$TIME_OUT" ]; do + +docker exec sdnc_controller_container rm -f /opt/opendaylight/current/etc/host.key +response=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client system:start-level) +docker exec sdnc_controller_container rm -f /opt/opendaylight/current/etc/host.key +num_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + + if [ "$response" == "Level 100" ] && [ "$num_bundles" -ge 333 ]; then + echo SDNC karaf started in $TIME seconds + break; + fi + + echo Sleep: $INTERVAL seconds before testing if SDNC is up. Total wait time up now is: $TIME seconds. Timeout is: $TIME_OUT seconds + sleep $INTERVAL + TIME=$(($TIME+$INTERVAL)) +done + +if [ "$TIME" -ge "$TIME_OUT" ]; then + echo TIME OUT: karaf session not started in $TIME_OUT seconds... Could cause problems for testing activities... +fi + +response=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client system:start-level) +num_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + + if [ "$response" == "Level 100" ] && [ "$num_bundles" -ge 333 ]; then + num_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | tail -1 | cut -d\| -f1) + num_failed_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure | wc -l) + failed_bundles=$(docker exec sdnc_controller_container /opt/opendaylight/current/bin/client bundle:list | grep Failure) + echo There is/are $num_failed_bundles failed bundles out of $num_bundles installed bundles. + fi + +if [ "$num_failed_bundles" -ge 1 ]; then + echo "The following bundle(s) are in a failed state: " + echo " $failed_bundles" +fi + +# Sleep additional 5 minutes (300 secs) to give application time to finish +sleep 300 + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" + diff --git a/plans/sdnc/healthcheck/teardown.sh b/plans/sdnc/healthcheck/teardown.sh new file mode 100644 index 00000000..dd465bb3 --- /dev/null +++ b/plans/sdnc/healthcheck/teardown.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +kill-instance.sh sdnc_controller_container +kill-instance.sh sdnc_dgbuilder_container +kill-instance.sh sdnc_portal_container +kill-instance.sh sdnc_db_container +kill-instance.sh sdnc_ueblistener_container +kill-instance.sh sdnc_dmaaplistener_container + +# $WORKSPACE/archives/appc deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/sdnc/healthcheck/testplan.txt b/plans/sdnc/healthcheck/testplan.txt new file mode 100644 index 00000000..3fa8dde5 --- /dev/null +++ b/plans/sdnc/healthcheck/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +sdnc/healthcheck + diff --git a/plans/so/integration-testing/setup.sh b/plans/so/integration-testing/setup.sh new file mode 100644 index 00000000..cd0cbdc3 --- /dev/null +++ b/plans/so/integration-testing/setup.sh @@ -0,0 +1,38 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +#start mariadb +docker run -d --name mariadb -h db.mso.testlab.openecomp.org -e MYSQL_ROOT_PASSWORD=password -p 3306:3306 -v ${WORKSPACE}/test/csit/scripts/mariadb/docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d -v ${WORKSPACE}/test/csit/scripts/mariadb/conf.d:/etc/mysql/conf.d nexus3.onap.org:10001/mariadb + +#start so +docker run -d --name so -h mso.mso.testlab.openecomp.org -e MYSQL_ROOT_PASSWORD=password --link=mariadb:db.mso.testlab.openecomp.org -p 8080:8080 -v ${WORKSPACE}/test/csit/scripts/so/chef-config:/shared nexus3.onap.org:10001/openecomp/mso:1.1-STAGING-latest + + +SO_IP=`get-instance-ip.sh so` +# Wait for initialization +for i in {1..10}; do + curl -sS ${SO_IP}:1080 && break + echo sleep $i + sleep $i +done + +#REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' so` +REPO_IP='127.0.0.1' +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v REPO_IP:${REPO_IP}" diff --git a/plans/so/integration-testing/teardown.sh b/plans/so/integration-testing/teardown.sh new file mode 100644 index 00000000..1696c745 --- /dev/null +++ b/plans/so/integration-testing/teardown.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +kill-instance.sh mariadb +kill-instance.sh so diff --git a/plans/so/integration-testing/testplan.txt b/plans/so/integration-testing/testplan.txt new file mode 100644 index 00000000..761c75c0 --- /dev/null +++ b/plans/so/integration-testing/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +so/sanity-check/sanity_test_so.robot
\ No newline at end of file diff --git a/plans/usecase-ui-server/testsuite/setup.sh b/plans/usecase-ui-server/testsuite/setup.sh new file mode 100644 index 00000000..b2641bec --- /dev/null +++ b/plans/usecase-ui-server/testsuite/setup.sh @@ -0,0 +1,58 @@ +#!/bin/bash +# +# Copyright (C) 2017 CMCC, Inc. and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Need some time for the initialization of MSB services +echo sleep 60 +sleep 60 + +# start usecase-ui-server +docker run -d --name usecase-ui-server -v /var/lib/mysql -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/usecase-ui/usecase-ui-server +USECASEUI_IP=`get-instance-ip.sh usecase-ui-server` + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${USECASEUI_IP}:8901 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v USECASEUI_IP:${USECASEUI_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/usecase-ui-server/testsuite/teardown.sh b/plans/usecase-ui-server/testsuite/teardown.sh new file mode 100644 index 00000000..46f5879b --- /dev/null +++ b/plans/usecase-ui-server/testsuite/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright (C) 2017 CMCC, Inc. and others. All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh usecase-ui-server diff --git a/plans/usecase-ui-server/testsuite/testplan.txt b/plans/usecase-ui-server/testsuite/testplan.txt new file mode 100644 index 00000000..ec7f200a --- /dev/null +++ b/plans/usecase-ui-server/testsuite/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +usecase-ui/server/test.robot diff --git a/plans/usecases/5G-bulkpm/assets/addSubscriber.json b/plans/usecases/5G-bulkpm/assets/addSubscriber.json new file mode 100644 index 00000000..612c4626 --- /dev/null +++ b/plans/usecases/5G-bulkpm/assets/addSubscriber.json @@ -0,0 +1,18 @@ +{ + "delivery":{ + "url":"http://fileconsumer:7070", + "user":"LOGIN", + "password":"PASSWORD", + "use100":true + }, + "follow_redirect":false, + "metadataOnly":false, + "suspend":false, + "groupid":0, + "links":{ + "self": "https://dmaap-dr-prov/subscribe/1", + "log": "https://dmaap-dr-prov/feedlog/1", + "feed": "https://dmaap-dr-prov/feed/1" + }, + "subscriber":"admin" + }
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/assets/createFeed.json b/plans/usecases/5G-bulkpm/assets/createFeed.json new file mode 100644 index 00000000..fdcc7eef --- /dev/null +++ b/plans/usecases/5G-bulkpm/assets/createFeed.json @@ -0,0 +1,18 @@ +{ + "name": "DefaultFeed", + "version": "m1.0", + "description": "Default feed", + "business_description": "Default Feed", + "suspend": false, + "deleted": false, + "changeowner": true, + "authorization": { + "classification": "unclassified", + "endpoint_addrs": [], + "endpoint_ids": [ + { + "password": "dradmin", + "id": "dradmin" + }] + } + }
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json b/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json new file mode 100644 index 00000000..17c7078e --- /dev/null +++ b/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json @@ -0,0 +1,28 @@ +{ + "configs": { + "dmaap": { + "dmaapConsumerConfiguration": { + "dmaapHostName": "dmaapmrhost", + "dmaapPortNumber": 3904, + "dmaapTopicName": "/events/unauthenticated.VES_NOTIFICATION_OUTPUT", + "dmaapProtocol": "http", + "dmaapUserName": "admin", + "dmaapUserPassword": "admin", + "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" + } + } + } +}
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/assets/xNF.pm.xml.gz b/plans/usecases/5G-bulkpm/assets/xNF.pm.xml.gz Binary files differnew file mode 100644 index 00000000..2f527c27 --- /dev/null +++ b/plans/usecases/5G-bulkpm/assets/xNF.pm.xml.gz diff --git a/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml new file mode 100644 index 00000000..16db4afa --- /dev/null +++ b/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml @@ -0,0 +1,81 @@ +version: '2.1' +services: + datarouter-prov: + image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov + container_name: datarouter-prov + hostname: dmaap-dr-prov + ports: + - "443:8443" + - "8443:8443" + - "8080:8080" + volumes: + - ./prov_data/provserver.properties:/opt/app/datartr/etc/provserver.properties + - ./prov_data/addSubscriber.txt:/opt/app/datartr/addSubscriber.txt + - ./prov_data/addFeed3.txt:/opt/app/datartr/addFeed3.txt + depends_on: + mariadb_container: + condition: service_healthy + healthcheck: + test: ["CMD", "curl", "-f", "http://dmaap-dr-prov:8080/internal/prov"] + interval: 10s + timeout: 10s + retries: 5 + + datarouter-node: + image: nexus3.onap.org:10001/onap/dmaap/datarouter-node + container_name: datarouter-node + hostname: dmaap-dr-node + ports: + - "9443:8443" + - "9090:8080" + volumes: + - ./node_data/node.properties:/opt/app/datartr/etc/node.properties + depends_on: + datarouter-prov: + condition: service_healthy + + datarouter-subscriber: + image: nexus3.onap.org:10001/onap/dmaap/datarouter-subscriber + container_name: fileconsumer-node + hostname: subscriber.com + ports: + - "7070:7070" + volumes: + - ./subscriber_data/subscriber.properties:/opt/app/subscriber/etc/subscriber.properties + + mariadb_container: + image: mariadb:10.2.14 + container_name: mariadb + ports: + - "3306:3306" + environment: + MYSQL_ROOT_PASSWORD: datarouter + MYSQL_DATABASE: datarouter + MYSQL_USER: datarouter + MYSQL_PASSWORD: datarouter + healthcheck: + test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost", "--silent"] + interval: 10s + timeout: 30s + retries: 5 + + sftp: + container_name: sftp + image: atmoz/sftp + ports: + - "2222:22" + volumes: + - /host/upload:/home/admin + command: admin:admin:1001 + + dfc: + container_name: dfc + image: quay.io/martin_yan_seu/datafile + ports: + - "8433:8433" + + ves: + container_name: vescollector + image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.ves.vescollector:1.3.1 + environment: + DMAAPHOST:
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/setup.sh b/plans/usecases/5G-bulkpm/setup.sh new file mode 100644 index 00000000..f27bfba5 --- /dev/null +++ b/plans/usecases/5G-bulkpm/setup.sh @@ -0,0 +1,141 @@ +#!/bin/bash +# Place the scripts in run order: +source ${SCRIPTS}/common_functions.sh + +# Clone DMaaP Message Router repo +mkdir -p $WORKSPACE/archives/dmaapmr +cd $WORKSPACE/archives/dmaapmr +git clone --depth 1 http://gerrit.onap.org/r/dmaap/messagerouter/messageservice -b master +git pull +cd $WORKSPACE/archives/dmaapmr/messageservice/src/main/resources/docker-compose +cp $WORKSPACE/archives/dmaapmr/messageservice/bundleconfig-local/etc/appprops/MsgRtrApi.properties /var/tmp/ + +# start DMaaP MR containers with docker compose and configuration from docker-compose.yml +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d + +ZOOKEEPER=$(docker ps -a -q --filter="name=zookeeper_1") +KAFKA=$(docker ps -a -q --filter="name=kafka_1") +DMAAP=$(docker ps -a -q --filter="name=dmaap_1") + +# Wait for initialization of Docker contaienr for DMaaP MR, Kafka and Zookeeper +for i in {1..50}; do +if [ $(docker inspect --format '{{ .State.Running }}' $KAFKA) ] && \ +[ $(docker inspect --format '{{ .State.Running }}' $ZOOKEEPER) ] && \ +[ $(docker inspect --format '{{ .State.Running }}' $DMAAP) ] +then + echo "DMaaP Service Running" + break +else + echo sleep $i + sleep $i +fi +done + +# Get IP address of DMAAP, KAFKA, Zookeeper +KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA) +ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER) +DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP) + +sleep 2 +# Shutdown DMAAP Container +docker kill $DMAAP + +# Initial docker-compose up and down is for populating kafka and zookeeper IPs in /var/tmp/MsgRtrApi.properites +sed -i -e '/config.zk.servers=/ s/=.*/='$ZOOKEEPER_IP'/' /var/tmp/MsgRtrApi.properties +sed -i -e '/kafka.metadata.broker.list=/ s/=.*/='$KAFKA_IP':9092/' /var/tmp/MsgRtrApi.properties + +# Start DMaaP MR containers with docker compose and configuration from docker-compose.yml +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d +sleep 5 + +# Clone DMaaP Data Router repo +mkdir -p $WORKSPACE/archives/dmaapdr +cd $WORKSPACE/archives/dmaapdr +git clone --depth 1 https://gerrit.onap.org/r/dmaap/datarouter -b master +cd datarouter +cd $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/ +rm -rf docker-compose.yml +cp $WORKSPACE/test/csit/plans/usecases/5G-bulkpm/composefile/docker-compose-e2e.yml $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/docker-compose.yml +docker login -u docker -p docker nexus3.onap.org:10001 +docker-compose up -d +docker kill datarouter-prov +docker kill datarouter-node +docker kill vescollector +HOST_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') +sed -i -e '/DMAAPHOST:/ s/:.*/: '$HOST_IP'/' docker-compose.yml +MARIADB=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadb ) +sed -i 's/172.100.0.2/'$MARIADB'/g' $WORKSPACE/archives/dmaapdr/datarouter/docker-compose/prov_data/provserver.properties +docker-compose up -d + +# Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb +for i in {1..50}; do + if [ $(docker inspect --format '{{ .State.Running }}' datarouter-node) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' datarouter-prov) ] && \ + [ $(docker inspect --format '{{ .State.Running }}' mariadb) ] + then + echo "DR Service Running" + break + else + echo sleep $i + sleep $i + fi +done + +sleep 5 + +# Get IP address of datarrouger-prov, datarouter-node, fileconsumer-node. +DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov) +DR_NODE_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-node) +DR_SUBSCIBER_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' fileconsumer-node) +DR_GATEWAY_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.Gateway}}{{end}}' datarouter-prov) + +echo DR_PROV_IP=${DR_PROV_IP} +echo DR_NODE_IP=${DR_NODE_IP} +echo DR_GATEWAY_IP=${DR_GATEWAY_IP} +echo DR_SUBSCIBER_IP=${DR_SUBSCIBER_IP} + +docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/NODES?val=dmaap-dr-node\|$DR_GATEWAY_IP" +docker exec -i datarouter-prov sh -c "curl -k -X PUT https://$DR_PROV_IP:8443/internal/api/PROV_AUTH_ADDRESSES?val=dmaap-dr-prov\|$DR_GATEWAY_IP" +docker exec datarouter-prov /bin/sh -c "echo '${DR_NODE_IP}' dmaap-dr-node >> /etc/hosts" +docker exec datarouter-node /bin/sh -c "echo '${DR_PROV_IP}' dmaap-dr-prov >> /etc/hosts" +docker exec datarouter-node /bin/sh -c "echo '${DR_SUBSCIBER_IP}' dmaap-dr-subscriber >> /etc/hosts" + +# Get IP address of DMAAP, KAFKA, Zookeeper +DMAAP_MR_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $DMAAP) +KAFKA_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $KAFKA) +ZOOKEEPER_IP=$(docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' $ZOOKEEPER) +VESC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' vescollector) +SFTP_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sftp) + +export VESC_IP=${VESC_IP} +export HOST_IP=${HOST_IP} +export DMAAP_MR_IP=${DMAAP_MR_IP} + +#Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DR_NODE_IP:${DR_NODE_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v VESC_IP:${VESC_IP} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}" + +pip install jsonschema uuid +# Wait container ready +sleep 2 + +# Data File Collector configuration : +cp $WORKSPACE/test/csit/plans/usecases/5G-bulkpm/assets/datafile_endpoints.json /tmp/ +sed -i 's/dmaapmrhost/'${DMAAP_MR_IP}'/g' /tmp/datafile_endpoints.json +sed -i 's/dmaapdrhost/'${DR_PROV_IP}'/g' /tmp/datafile_endpoints.json +docker cp /tmp/datafile_endpoints.json dfc:/config/ +docker restart dfc + +# SFTP Configuration: +# Update the File Ready Notification with actual sftp ip address and copy pm files to sftp server. +cp $WORKSPACE/test/csit/tests/usecases/5G-bulkpm/assets/json_events/FileExistNotification.json $WORKSPACE/test/csit/tests/usecases/5G-bulkpm-bulkpm/testcases/assets/json_events/FileExistNotificationUpdated.json +sed -i 's/sftpserver/'${SFTP_IP}'/g' $WORKSPACE/test/csit/tests/usecases/5G-bulkpm/assets/json_events/FileExistNotificationUpdated.json +docker cp $WORKSPACE/test/csit/plans/usecases/5G-bulkpm/assets/xNF.pm.xml.gz sftp:/home/admin/ + +# Data Router Configuration: +# Create default feed and create file consumer subscriber on data router +curl -v -X POST -H "Content-Type:application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF:dradmin" --data-ascii @$WORKSPACE/test/csit/plans/usecases/5G-bulkpm/assets/createFeed.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443 +cp $WORKSPACE/test/csit/plans/usecases/5G-bulkpm/assets/addSubscriber.json /tmp/addSubscriber.json +sed -i 's/fileconsumer/'${DR_SUBSCIBER_IP}'/g' /tmp/addSubscriber.json +curl -v -X POST -H "Content-Type:application/vnd.att-dr.subscription" -H "X-ATT-DR-ON-BEHALF-OF:dradmin" --data-ascii @/tmp/addSubscriber.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1ii @/tmp/addSubscriber.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443/subscribe/1
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/teardown.sh b/plans/usecases/5G-bulkpm/teardown.sh new file mode 100644 index 00000000..c55f4398 --- /dev/null +++ b/plans/usecases/5G-bulkpm/teardown.sh @@ -0,0 +1,12 @@ +#!/bin/bash +echo "Starting teardown script" +kill-instance.sh $DMAAP +kill-instance.sh $KAFKA +kill-instance.sh $ZOOKEEPER +kill-instance.sh vescollector +kill-instance.sh datarouter-node +kill-instance.sh datarouter-prov +kill-instance.sh fileconsumer-node +kill-instance.sh mariadb +kill-instance.sh dfc +kill-instance.sh sftp
\ No newline at end of file diff --git a/plans/usecases/5G-bulkpm/testplan.txt b/plans/usecases/5G-bulkpm/testplan.txt new file mode 100644 index 00000000..c4e1c427 --- /dev/null +++ b/plans/usecases/5G-bulkpm/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +usecases/5G-bulkpm diff --git a/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh b/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh new file mode 100755 index 00000000..f82f228a --- /dev/null +++ b/plans/vfc-gvnfm-vnflcm/sanity-check/setup.sh @@ -0,0 +1,75 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +docker run -d -p 3306:3306 --name vfc-db -v /var/lib/mysql nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 30 +sleep 30 + +# start vfc-vnflcm +docker run -d --name vfc-vnflcm -e MSB_ADDR=${MSB_IAG_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnflcm +VNFLCM_IP=`get-instance-ip.sh vfc-vnflcm` + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${VNFLCM_IP}:8801 && break + echo sleep $i + sleep $i +done + +docker cp vfc-vnflcm:/service/vfc/gvnfm/vnflcm/lcm/lcm/pub/config/config.py ./ +cat config.py + +docker cp vfc-vnflcm:/service/vfc/gvnfm/vnflcm/lcm/logs/runtime_lcm.log ./ +cat runtime_lcm.log + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v VNFLCM_IP:${VNFLCM_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh b/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh new file mode 100755 index 00000000..aebb2523 --- /dev/null +++ b/plans/vfc-gvnfm-vnflcm/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-vnflcm diff --git a/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt b/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt new file mode 100644 index 00000000..0aa2e3e2 --- /dev/null +++ b/plans/vfc-gvnfm-vnflcm/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/gvnfm-vnflcm/test.robot diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh b/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh new file mode 100755 index 00000000..3c985aaf --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +docker run -d -p 3306:3306 --name vfc-db nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 30 +sleep 30 + +# start vfc-vnfmgr +docker run -d --name vfc-vnfmgr -e MSB_ADDR=${MSB_IAG_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnfmgr +VNFMGR_IP=`get-instance-ip.sh vfc-vnfmgr` +for i in {1..10}; do + curl -sS -m 1 ${VNFMGR_IP}:8803 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v VNFMGR_IP:${VNFMGR_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh b/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh new file mode 100755 index 00000000..cfabe42d --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-vnfmgr diff --git a/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt b/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt new file mode 100644 index 00000000..960f7325 --- /dev/null +++ b/plans/vfc-gvnfm-vnfmgr/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/gvnfm-vnfmgr/test.robot diff --git a/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh b/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh new file mode 100755 index 00000000..a0ea986d --- /dev/null +++ b/plans/vfc-gvnfm-vnfres/sanity-check/setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo MSB_DISCOVERY_IP=${MSB_DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +docker run -d -p 3306:3306 --name vfc-db nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 60 +sleep 60 +# start vfc-vnfres +docker run -d --name vfc-vnfres -e MSB_ADDR=${MSB_IAG_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/vnfres +VNFRES_IP=`get-instance-ip.sh vfc-vnfres` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${VNFRES_IP}:8802 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v VNFRES_IP:${VNFRES_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh b/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh new file mode 100755 index 00000000..09db55b5 --- /dev/null +++ b/plans/vfc-gvnfm-vnfres/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-vnfres diff --git a/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt b/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt new file mode 100644 index 00000000..e94e2946 --- /dev/null +++ b/plans/vfc-gvnfm-vnfres/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/gvnfm-vnfres/test.robot diff --git a/plans/vfc-nfvo-catalog/sanity-check/setup.sh b/plans/vfc-nfvo-catalog/sanity-check/setup.sh new file mode 100644 index 00000000..d839fa55 --- /dev/null +++ b/plans/vfc-nfvo-catalog/sanity-check/setup.sh @@ -0,0 +1,68 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +#login to the onap nexus docker repo +docker login -u docker -p docker nexus3.onap.org:10001 + +# start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +CONSUL_IP=`get-instance-ip.sh msb_consul` +echo CONSUL_IP=${CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IP==`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IP=${MSB_IP} + +docker run -d -p 3306:3306 --name vfc-db -v /var/lib/mysql nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${CONSUL_IP}:8500 && curl -sS -m 1 ${DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +# Need some time so service info can be synced from discovery to api gateway +echo sleep 60 +sleep 60 + +# start vfc-catalog +docker run -d --name vfc-catalog -v /var/lib/mysql -e MSB_ADDR=${DISCOVERY_IP}:10081 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/catalog +CATALOG_IP=`get-instance-ip.sh vfc-catalog` +for i in {1..10}; do + curl -sS -m 1 ${CATALOG_IP}:8806 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v CATALOG_IP:${CATALOG_IP} -v MSB_DISCOVERY_IP:${DISCOVERY_IP}" diff --git a/plans/vfc-nfvo-catalog/sanity-check/teardown.sh b/plans/vfc-nfvo-catalog/sanity-check/teardown.sh new file mode 100644 index 00000000..d498e34c --- /dev/null +++ b/plans/vfc-nfvo-catalog/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-catalog diff --git a/plans/vfc-nfvo-catalog/sanity-check/testplan.txt b/plans/vfc-nfvo-catalog/sanity-check/testplan.txt new file mode 100644 index 00000000..6c8c54a9 --- /dev/null +++ b/plans/vfc-nfvo-catalog/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-catalog/test.robot diff --git a/plans/vfc-nfvo-driver-ems/sanity-check/setup.sh b/plans/vfc-nfvo-driver-ems/sanity-check/setup.sh new file mode 100755 index 00000000..d381f8f3 --- /dev/null +++ b/plans/vfc-nfvo-driver-ems/sanity-check/setup.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Need some time so service info can be synced from discovery to api gateway +echo sleep 60 +sleep 60 + +# start vfc-emsdriver +docker run -d --name vfc-emsdriver -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/emsdriver +EMS_DRV_IP=`get-instance-ip.sh vfc-emsdriver` +docker logs -f vfc-emsdriver > emsdriver.log & + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${EMS_DRV_IP}:8206 && break + echo sleep $i + sleep $i +done + +echo "===============" +cat emsdriver.log + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v EMS_DRV_IP:${EMS_DRV_IP}" diff --git a/plans/vfc-nfvo-driver-ems/sanity-check/teardown.sh b/plans/vfc-nfvo-driver-ems/sanity-check/teardown.sh new file mode 100755 index 00000000..aa676b2f --- /dev/null +++ b/plans/vfc-nfvo-driver-ems/sanity-check/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-emsdriver diff --git a/plans/vfc-nfvo-driver-ems/sanity-check/testplan.txt b/plans/vfc-nfvo-driver-ems/sanity-check/testplan.txt new file mode 100644 index 00000000..747f8683 --- /dev/null +++ b/plans/vfc-nfvo-driver-ems/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-driver-ems/test.robot diff --git a/plans/vfc-nfvo-driver-sfc/sanity-check/setup.sh b/plans/vfc-nfvo-driver-sfc/sanity-check/setup.sh new file mode 100755 index 00000000..85a3e69f --- /dev/null +++ b/plans/vfc-nfvo-driver-sfc/sanity-check/setup.sh @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Need some time so service info can be synced from discovery to api gateway +echo sleep 60 +sleep 60 + +# start vfc-ztesdncdriver +docker run -d --name vfc-ztesdncdriver -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/ztesdncdriver +SFC_DRV_IP=`get-instance-ip.sh vfc-ztesdncdriver` +docker logs -f vfc-ztesdncdriver > ztesdncdriver.log & + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${SFC_DRV_IP}:8411 && break + echo sleep $i + sleep $i +done + +echo "===============================" +cat ztesdncdriver.log + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v SFC_DRV_IP:${SFC_DRV_IP}" diff --git a/plans/vfc-nfvo-driver-sfc/sanity-check/teardown.sh b/plans/vfc-nfvo-driver-sfc/sanity-check/teardown.sh new file mode 100755 index 00000000..ce5402ef --- /dev/null +++ b/plans/vfc-nfvo-driver-sfc/sanity-check/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-ztesdncdriver diff --git a/plans/vfc-nfvo-driver-sfc/sanity-check/testplan.txt b/plans/vfc-nfvo-driver-sfc/sanity-check/testplan.txt new file mode 100644 index 00000000..9de2acce --- /dev/null +++ b/plans/vfc-nfvo-driver-sfc/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-driver-sfc/test.robot diff --git a/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/setup.sh b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/setup.sh new file mode 100644 index 00000000..bdc66d0e --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo MSB_DISCOVERY_IP=${MSB_DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 60 +sleep 60 +# start vfc-gvnfmdriver +docker run -d --name vfc-gvnfmdriver -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/gvnfmdriver +GVNFMDRIVER_IP=`get-instance-ip.sh vfc-gvnfmdriver` + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${GVNFMDRIVER_IP}:8484 && break + echo sleep $i + sleep $i +done + +# start vfc-jujudriver +docker run -d --name vfc-jujudriver -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/jujudriver +JUJUDRIVER_IP=`get-instance-ip.sh vfc-jujudriver` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${JUJUDRIVER_IP}:8483 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v GVNFMDRIVER_IP:${GVNFMDRIVER_IP} -v JUJUDRIVER_IP:${JUJUDRIVER_IP}" diff --git a/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/teardown.sh b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/teardown.sh new file mode 100644 index 00000000..78d7c5ad --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/teardown.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-gvnfmdriver + +kill-instance.sh vfc-jujudriver diff --git a/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/testplan.txt b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/testplan.txt new file mode 100644 index 00000000..e7bee519 --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-gvnfm/sanity-check/testplan.txt @@ -0,0 +1,6 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. + +vfc/nfvo-driver-gvnfm/gvnfmdriver.robot + +vfc/nfvo-driver-gvnfm/jujudriver.robot diff --git a/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/setup.sh b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/setup.sh new file mode 100644 index 00000000..047c067e --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/setup.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo MSB_DISCOVERY_IP=${MSB_DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 60 +sleep 60 + +# start vfc-ztevnfmdriver +docker run -d --name vfc-ztevnfmdriver -p 8410:8410 -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/ztevnfmdriver +ZTEVNFMDRIVER_IP=`get-instance-ip.sh vfc-ztevnfmdriver` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${ZTEVNFMDRIVER_IP}:8410 && break + echo sleep $i + sleep $i +done + + +# Start svnfm-huawei +docker run -d --name vfc-svnfm-huawei -p 8482:8482 -p 8443:8443 -e MSB_ADDR=${MSB_IAG_IP}:80 nexus3.onap.org:10001/onap/vfc/nfvo/svnfm/huawei +SERVICE_IP=`get-instance-ip.sh vfc-svnfm-huawei` +for i in {1..20}; do + curl -sS ${SERVICE_IP}:8482 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v ZTEVNFMDRIVER_IP:${ZTEVNFMDRIVER_IP} -v MSB_IP:${MSB_IAG_IP} -v SERVICE_IP:${SERVICE_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/teardown.sh b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/teardown.sh new file mode 100644 index 00000000..a7909581 --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/teardown.sh @@ -0,0 +1,24 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-ztevnfmdriver + +kill-instance.sh vfc-svnfm-huawei diff --git a/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/testplan.txt b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/testplan.txt new file mode 100644 index 00000000..7eb861ed --- /dev/null +++ b/plans/vfc-nfvo-driver-vnfm-svnfm/sanity-check/testplan.txt @@ -0,0 +1,6 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. + +vfc/nfvo-driver-svnfm/ztevmanager.robot + +vfc/nfvo-driver-svnfm/huawei.robot diff --git a/plans/vfc-nfvo-lcm/sanity-check/setup.sh b/plans/vfc-nfvo-lcm/sanity-check/setup.sh new file mode 100755 index 00000000..7a739bad --- /dev/null +++ b/plans/vfc-nfvo-lcm/sanity-check/setup.sh @@ -0,0 +1,85 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} + +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${MSB_DISCOVERY_IP} + +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP -e "ROUTE_LABELS=visualRange:1" --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +docker run -d -p 3306:3306 --name vfc-db -v /var/lib/mysql nexus3.onap.org:10001/onap/vfc/db +VFC_DB_IP=`get-instance-ip.sh vfc-db` +echo VFC_DB_IP=${VFC_DB_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# Wait for initialization(3306 DB) +for i in {1..3}; do + curl -sS -m 1 ${VFC_DB_IP}:3306 && break + echo sleep $i + sleep $i +done + +docker ps > 1.txt +cat 1.txt +echo "****************************" +docker logs -f vfc-db > 2.txt & +cat 2.txt + +# Need some time so service info can be synced from discovery to api gateway +echo sleep 60 +sleep 60 + +# start vfc-nslcm +docker run -d --name vfc-nslcm -v /var/lib/mysql -e MSB_ADDR=${MSB_IAG_IP}:80 -e MYSQL_ADDR=${VFC_DB_IP}:3306 nexus3.onap.org:10001/onap/vfc/nslcm +NSLCM_IP=`get-instance-ip.sh vfc-nslcm` + +# Wait for initialization +for i in {1..10}; do + curl -sS -m 1 ${NSLCM_IP}:8403 && break + echo sleep $i + sleep $i +done + +curl http://${NSLCM_IP}:8403/api/nslcm/v1/swagger.json + +docker logs -f vfc-nslcm > 3.txt & +cat 3.txt + +docker cp vfc-nslcm:/service/vfc/nfvo/lcm/logs/runtime_lcm.log ./ +cat runtime_lcm.log + + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v NSLCM_IP:${NSLCM_IP} -v SCRIPTS:${SCRIPTS}" diff --git a/plans/vfc-nfvo-lcm/sanity-check/teardown.sh b/plans/vfc-nfvo-lcm/sanity-check/teardown.sh new file mode 100755 index 00000000..6ddf7557 --- /dev/null +++ b/plans/vfc-nfvo-lcm/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-db +kill-instance.sh vfc-nslcm diff --git a/plans/vfc-nfvo-lcm/sanity-check/testplan.txt b/plans/vfc-nfvo-lcm/sanity-check/testplan.txt new file mode 100644 index 00000000..fc261e13 --- /dev/null +++ b/plans/vfc-nfvo-lcm/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-lcm/test.robot diff --git a/plans/vfc-nfvo-multivimproxy/sanity-check/setup.sh b/plans/vfc-nfvo-multivimproxy/sanity-check/setup.sh new file mode 100644 index 00000000..4d97f33e --- /dev/null +++ b/plans/vfc-nfvo-multivimproxy/sanity-check/setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright 2018 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +#login to the onap nexus docker repo +docker login -u docker -p docker nexus3.onap.org:10001 + +# Start MSB +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +CONSUL_IP=`get-instance-ip.sh msb_consul` +echo CONSUL_IP=${CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IP==`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IP=${MSB_IP} + +# Start resmgr +docker run -d --name vfc-multivimproxy -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/multivimproxy +RESMGR_IP=`get-instance-ip.sh vfc-multivimproxy` +for i in {1..20}; do + curl -sS ${RESMGR_IP}:8486 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v RESMGR_IP:${RESMGR_IP}" diff --git a/plans/vfc-nfvo-multivimproxy/sanity-check/teardown.sh b/plans/vfc-nfvo-multivimproxy/sanity-check/teardown.sh new file mode 100644 index 00000000..c158d199 --- /dev/null +++ b/plans/vfc-nfvo-multivimproxy/sanity-check/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2018 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-multivimproxy diff --git a/plans/vfc-nfvo-multivimproxy/sanity-check/testplan.txt b/plans/vfc-nfvo-multivimproxy/sanity-check/testplan.txt new file mode 100644 index 00000000..f81be8ec --- /dev/null +++ b/plans/vfc-nfvo-multivimproxy/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-multivimproxy/test.robot
\ No newline at end of file diff --git a/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh b/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh new file mode 100644 index 00000000..68b78431 --- /dev/null +++ b/plans/vfc-nfvo-resmanagement/sanity-check/setup.sh @@ -0,0 +1,44 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +#login to the onap nexus docker repo +docker login -u docker -p docker nexus3.onap.org:10001 + +# Start MSB +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +CONSUL_IP=`get-instance-ip.sh msb_consul` +echo CONSUL_IP=${CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery +DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo DISCOVERY_IP=${DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$CONSUL_IP -e SDCLIENT_IP=$DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway +MSB_IP==`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IP=${MSB_IP} + +# Start resmgr +docker run -d --name vfc-resmanagement -e MSB_ADDR=${MSB_IP}:80 nexus3.onap.org:10001/onap/vfc/resmanagement +RESMGR_IP=`get-instance-ip.sh vfc-resmanagement` +for i in {1..20}; do + curl -sS ${RESMGR_IP}:8480 && break + echo sleep $i + sleep $i +done + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IP:${MSB_IP} -v RESMGR_IP:${RESMGR_IP}" diff --git a/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh b/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh new file mode 100644 index 00000000..2ad95c6b --- /dev/null +++ b/plans/vfc-nfvo-resmanagement/sanity-check/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc-resmanagement diff --git a/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt b/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt new file mode 100644 index 00000000..98dac63b --- /dev/null +++ b/plans/vfc-nfvo-resmanagement/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vfc/nfvo-resmanagement/test.robot
\ No newline at end of file diff --git a/plans/vfc-nfvo-wfengine/sanity-check/setup.sh b/plans/vfc-nfvo-wfengine/sanity-check/setup.sh new file mode 100644 index 00000000..e7c755fa --- /dev/null +++ b/plans/vfc-nfvo-wfengine/sanity-check/setup.sh @@ -0,0 +1,91 @@ +#!/bin/bash +# +# Copyright 2017 ZTE Corporation. +# +# 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. +# +# Place the scripts in run order: +# Start all process required for executing test case + +source ${SCRIPTS}/common_functions.sh + + +#start msb +docker run -d -p 8500:8500 --name msb_consul consul:0.9.3 +MSB_CONSUL_IP=`get-instance-ip.sh msb_consul` +echo MSB_CONSUL_IP=${MSB_CONSUL_IP} +docker run -d -p 10081:10081 -e CONSUL_IP=$MSB_CONSUL_IP --name msb_discovery nexus3.onap.org:10001/onap/msb/msb_discovery:1.1.0 +MSB_DISCOVERY_IP=`get-instance-ip.sh msb_discovery` +echo MSB_DISCOVERY_IP=${MSB_DISCOVERY_IP} +docker run -d -p 80:80 -e CONSUL_IP=$MSB_CONSUL_IP -e SDCLIENT_IP=$MSB_DISCOVERY_IP --name msb_internal_apigateway nexus3.onap.org:10001/onap/msb/msb_apigateway:1.1.0 +MSB_IAG_IP=`get-instance-ip.sh msb_internal_apigateway` +echo MSB_IAG_IP=${MSB_IAG_IP} + +# Wait for initialization(8500 Consul, 10081 Service Registration & Discovery, 80 api gateway) +for i in {1..10}; do + curl -sS -m 1 ${MSB_CONSUL_IP}:8500 && curl -sS -m 1 ${MSB_DISCOVERY_IP}:10081 && curl -sS -m 1 ${MSB_IAG_IP}:80 && break + echo sleep $i + sleep $i +done + +# wait for container initalization +echo sleep 30 +sleep 30 + +ORG="onap" +PROJECT="vfc" +DOCKER_REPOSITORY="nexus3.onap.org:10001" +IMAGE="wfengine-activiti" +IMAGE_ACTIVITI_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" + +#get current host IP addres +SERVICE_IP=$(ip route get 8.8.8.8 | awk '/8.8.8.8/ {print $NF}') + +# start wfengine-activiti +# docker run -d --name vfc_wfengine_activiti -p 8804:8080 -e SERVICE_IP=$SERVICE_IP -e SERVICE_PORT=8804 -e OPENPALETTE_MSB_IP=${MSB_IAG_IP} -e OPENPALETTE_MSB_PORT=80 ${IMAGE_ACTIVITI_NAME} +docker run -d --name vfc_wfengine_activiti -p 8804:8080 -e SERVICE_PORT=8080 -e OPENPALETTE_MSB_IP=${MSB_IAG_IP} -e OPENPALETTE_MSB_PORT=80 ${IMAGE_ACTIVITI_NAME} +WFENGINE_ACTIVITI_IP=`get-instance-ip.sh vfc_wfengine_activiti` + +# Wait for initialization +for i in {1..10}; do + curl -sS ${WFENGINE_ACTIVITI_IP}:8080 && break + echo sleep $i + sleep $i +done +for i in {1..10}; do + curl -sS ${SERVICE_IP}:8804 && break + echo sleep $i + sleep $i +done +docker logs vfc_wfengine_activiti + +IMAGE="wfengine-mgrservice" +IMAGE_MGRSERVICE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}" + +# Start wfengine-mgrservice +#docker run -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_IP=$SERVICE_IP -e SERVICE_PORT=8805 -e OPENPALETTE_MSB_IP=${MSB_IAG_IP} -e OPENPALETTE_MSB_PORT=80 ${IMAGE_MGRSERVICE_NAME} +#docker run -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_PORT=10550 -e OPENPALETTE_MSB_IP=${MSB_IAG_IP} -e OPENPALETTE_MSB_PORT=80 ${IMAGE_MGRSERVICE_NAME} +docker run -d --name vfc_wfengine_mgrservice -p 8805:10550 -e SERVICE_PORT=10550 -e OPENPALETTE_MSB_IP=${WFENGINE_ACTIVITI_IP} -e OPENPALETTE_MSB_PORT=8080 ${IMAGE_MGRSERVICE_NAME} + +##docker run -d --name ${IMAGE} -e OPENPALETTE_MSB_IP=${WFENGINEACTIVITIR_IP} -e OPENPALETTE_MSB_PORT=8080 ${IMAGE_MGRSERVICE_NAME} +WFENGINE_MGRSERVICE_IP=`get-instance-ip.sh vfc_wfengine_mgrservice` +for i in {1..10}; do + curl -sS ${WFENGINE_MGRSERVICE_IP}:10550 && break + echo sleep $i + sleep $i +done +docker logs vfc_wfengine_mgrservice + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v MSB_IAG_IP:${MSB_IAG_IP} -v MSB_IP:${MSB_IAG_IP} -v MSB_PORT:80 -v MSB_DISCOVERY_IP:${MSB_DISCOVERY_IP} -v ACTIVITI_IP:${WFENGINE_ACTIVITI_IP} -v ACTIVITI_PORT:8080 -v MGRSERVICE_IP:${WFENGINE_MGRSERVICE_IP} -v MGRSERVICE_PORT:10550 -v SCRIPTS:${SCRIPTS}" +##ROBOT_VARIABLES="-v MSB_IAG_IP:${WFENGINEACTIVITIR_IP} -v MSB_IP:${WFENGINEMGRSERVICE_IP} -v MSB_PORT:10550 -v MSB_DISCOVERY_IP:${WFENGINEACTIVITIR_IP} -v MSB_DISCOVERY_PORT:8080 -v WFENGINEACTIVITIR_IP:${WFENGINEACTIVITIR_IP} -v WFENGINEACTIVITIR_PORT:8080 -v WFENGINEMGRSERVICE_IP:${WFENGINEMGRSERVICE_IP} -v WFENGINEMGRSERVICE_PORT:10550 -v SCRIPTS:${SCRIPTS}"
\ No newline at end of file diff --git a/plans/vfc-nfvo-wfengine/sanity-check/teardown.sh b/plans/vfc-nfvo-wfengine/sanity-check/teardown.sh new file mode 100644 index 00000000..bca33569 --- /dev/null +++ b/plans/vfc-nfvo-wfengine/sanity-check/teardown.sh @@ -0,0 +1,29 @@ +#!/bin/bash +# +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +# + +# This script is sourced by run-csit.sh after Robot test completion. +echo === logs vfc_wfengine_activiti === +docker logs vfc_wfengine_activiti + +echo === logs vfc_wfengine_mgrservice === +docker logs vfc_wfengine_mgrservice + +kill-instance.sh msb_internal_apigateway +kill-instance.sh msb_discovery +kill-instance.sh msb_consul +kill-instance.sh vfc_wfengine_mgrservice +kill-instance.sh vfc_wfengine_activiti diff --git a/plans/vfc-nfvo-wfengine/sanity-check/testplan.txt b/plans/vfc-nfvo-wfengine/sanity-check/testplan.txt new file mode 100644 index 00000000..ff9f4d5d --- /dev/null +++ b/plans/vfc-nfvo-wfengine/sanity-check/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. + +vfc/nfvo-wfengine/workflow.robot
\ No newline at end of file diff --git a/plans/vid/healthCheck/setup.sh b/plans/vid/healthCheck/setup.sh new file mode 100644 index 00000000..ce308cfa --- /dev/null +++ b/plans/vid/healthCheck/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + +/usr/bin/Xvfb :0 -screen 0 1024x768x24& +export DISPLAY=:0 + +source ${WORKSPACE}/test/csit/scripts/vid/clone_and_setup_vid_data.sh + +source ${WORKSPACE}/test/csit/scripts/vid/start_vid_containers.sh + + +BE_IP=`get-instance-ip.sh vid-server` +echo BE_IP=${BE_IP} + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v BE_IP:${BE_IP}" diff --git a/plans/vid/healthCheck/teardown.sh b/plans/vid/healthCheck/teardown.sh new file mode 100644 index 00000000..e82ef306 --- /dev/null +++ b/plans/vid/healthCheck/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +source ${WORKSPACE}/test/csit/scripts/vid/kill_containers_and_remove_dataFolders.sh + +# $WORKSPACE/archives/clamp-clone deleted with archives folder when tests starts so we keep it at the end for debugging diff --git a/plans/vid/healthCheck/testplan.txt b/plans/vid/healthCheck/testplan.txt new file mode 100644 index 00000000..92d8b058 --- /dev/null +++ b/plans/vid/healthCheck/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vid/healthCheck +vid/login diff --git a/plans/vnfsdk-ice/sanity-check/setup.sh b/plans/vnfsdk-ice/sanity-check/setup.sh new file mode 100644 index 00000000..22d9acdd --- /dev/null +++ b/plans/vnfsdk-ice/sanity-check/setup.sh @@ -0,0 +1,34 @@ +#!/bin/bash +# +# Copyright 2018 Orange Labs. +# +# 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. +# +# These scripts are sourced by run-csit.sh. + + +#Start ice server +docker run --name vnfsdk-ice -d -p 5000:5000 nexus3.onap.org:10001/onap/vnfsdk/ice:latest + +# Wait for server initialization +echo Wait for vnfsdk-ice initialization +until [ "`/usr/bin/docker inspect -f {{.State.Running}} vnfsdk-ice`"=="true" ]; do + sleep 1; +done; +ICE_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' vnfsdk-ice` + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v ICE_IP:${ICE_IP}" +echo ${ROBOT_VARIABLES} + diff --git a/plans/vnfsdk-ice/sanity-check/teardown.sh b/plans/vnfsdk-ice/sanity-check/teardown.sh new file mode 100644 index 00000000..c84ea757 --- /dev/null +++ b/plans/vnfsdk-ice/sanity-check/teardown.sh @@ -0,0 +1,22 @@ +#!/bin/bash +# +# Copyright 2018 Orange Labs. +# +# 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. +# +# This script is sourced by run-csit.sh after Robot test completion. + + +kill-instance.sh vnfsdk-ice + + diff --git a/plans/vnfsdk-ice/sanity-check/testplan.txt b/plans/vnfsdk-ice/sanity-check/testplan.txt new file mode 100644 index 00000000..c84eb031 --- /dev/null +++ b/plans/vnfsdk-ice/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +## Test suites are relative paths under [integration.git]/test/csit/tests/. +## Place the suites in run order. +vnfsdk-ice/ice-server/validation_test.robot diff --git a/plans/vnfsdk-marketplace/sanity-check/enterprise2DC.csar b/plans/vnfsdk-marketplace/sanity-check/enterprise2DC.csar Binary files differnew file mode 100644 index 00000000..0960b20a --- /dev/null +++ b/plans/vnfsdk-marketplace/sanity-check/enterprise2DC.csar diff --git a/plans/vnfsdk-marketplace/sanity-check/setup.sh b/plans/vnfsdk-marketplace/sanity-check/setup.sh new file mode 100644 index 00000000..85c6bc27 --- /dev/null +++ b/plans/vnfsdk-marketplace/sanity-check/setup.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# These scripts are sourced by run-csit.sh. + + + +#Start market place +docker run -d -i -t --name=vnfmarket -p 8702:8702 onap/vnfmarket + +REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' vnfmarket` + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v REPO_IP:${REPO_IP}" + + diff --git a/plans/vnfsdk-marketplace/sanity-check/teardown.sh b/plans/vnfsdk-marketplace/sanity-check/teardown.sh new file mode 100644 index 00000000..42d7b7fd --- /dev/null +++ b/plans/vnfsdk-marketplace/sanity-check/teardown.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# This script is sourced by run-csit.sh after Robot test completion. + + +kill-instance.sh vnfmarket + diff --git a/plans/vnfsdk-marketplace/sanity-check/testplan.txt b/plans/vnfsdk-marketplace/sanity-check/testplan.txt new file mode 100644 index 00000000..730df014 --- /dev/null +++ b/plans/vnfsdk-marketplace/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +## Test suites are relative paths under [integration.git]/test/csit/tests/. +## Place the suites in run order. +vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot diff --git a/plans/vnfsdk-marketplace/sanity-check/uploadCSAR.sh b/plans/vnfsdk-marketplace/sanity-check/uploadCSAR.sh new file mode 100644 index 00000000..279912c3 --- /dev/null +++ b/plans/vnfsdk-marketplace/sanity-check/uploadCSAR.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPT_DIR + +#CHECK IF MSB_ADDR IS GIVEN IN COMMAND +if [ -z "$1" ] +then + echo "There is no MSB_ADDR" + exit 1 +fi +MSB_ADDR=$1 +CSAR_NAME=$2 +echo $MSB_ADDR +echo $CSAR_NAME + +# Wait for MSB initialization +echo Wait for MSB initialization +for i in {1..20}; do + curl -sS -m 1 $MSB_ADDR > /dev/null && break + sleep $i +done +#MSB initialized +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +############UOLOAD PACKAGE to MARKET PLACE###################### +echo +echo "############## UOLOAD PACKAGE to MARKET PLACE STARTED ##############"; +UploadPackageResponse=$(curl -sS -X POST -H "Content-Type: multipart/form-data;" -F "file=@$CSAR_NAME" http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars) +if echo "$UploadPackageResponse" | grep -q "\"csarId\""; then + echo "UOLOAD PACKAGE TO MARKET PLACE SUCSSS !!!"; +else + echo "UploadPackageResponse :$UploadPackageResponse" + echo "UOLOAD PACKAGE TO MARKET PLACE FAILED !!!"; + exit 1; +fi +UploadCsarId=$(echo ${UploadPackageResponse:11:36}) +echo "PACKAGE ID:$UploadCsarId" +echo "############## UOLOAD PACKAGE to MARKET PLACE END ##################"; +#######UOLOAD PACKAGE to MARKET PLACE END############# +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +################GET ON BOARD STATUS######## +echo +echo "####################### GETTING ON-BOARDING STATUS ##################"; +#sleeping for 10 sec so thate ON Boarding operation should be happened at backend +for pc in $(seq 1 10); do + status=$((${pc}*10)); + echo -ne "ON_BOARDING Status (%): $status\033[0K\r" + sleep 1 +done +echo + +#Three Retries for getting On Boarding Result +#count=0 +#while [ $count -lt 3 ] +#do +# OnBoardStatusResponse=$(curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/onboardstatus?operTypeId=functiontest&operId=functestexec" -H "Accept: application/json" -H "Content-Type: application/json") +# echo $OnBoardStatusResponse +# if echo "$OnBoardStatusResponse" | grep -q "\"status\":0"; then +# break; +# else +# if [ $count -eq 3 ] +# then +# echo "ON-BOARDING OPERATION FAILED !!!"; +# fi +# count=`expr $count + 1`; +# sleep 3; +# fi +#done +echo "GET ON-BOARDING RESULT OPERATION SUCESS "; +echo "##################### GETTING ON-BOARDING STATUS END #################"; +####################GET ON BOARD STATUS END############ +########################################## +########################################## +########################################## +########################################## +########################################## +#################DOWNLOAD PACKAGE######### +echo +echo "############## DOWNLOADED PACKAGE FROM MARKET STARTED #################"; +PACKAGE_NAME=market_temp.csar +curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/files" > $PACKAGE_NAME +fileSize=$(du -b $PACKAGE_NAME | cut -f 1) +if [ $fileSize -eq 0 ] +then + echo "DOWNLOADED PACKAGE FROM MARKET NOT PROPER, ON-BOARDING OPERATION FAILED !!!"; + exit 1; +fi +echo "DOWNLOADED PACKAGE FROM MARKET OPERATION SUCESS !!!"; +echo "MARKET PACKAGE NAME:$PACKAGE_NAME" +echo "##################### DOWNLOADED PACKAGE FROM MARKET ##################"; +###################DOWNLOAD PACKAGE END##################### +########################################## +########################################## +########################################## +########################################## +##########CATALOUGE START################# +echo +PACKAGE_NAME=$CSAR_NAME +#Check if common-tosca-catalog is registered with MSB or not +#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/catalog/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" +#check if common-tosca-aria is registered with MSB or not +#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/tosca/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" +#echo Sending POST request to Catalog +CsarIdString=$(curl -sS -X POST -H "Content-Type: multipart/form-data; boundary=-WebKitFormBoundary7MA4YWxkTrZu0gW" -H "Cache-Control: no-cache" -H "Postman-Token: abcb6497-b225-c592-01be-e9ff460ca188" -F "file=@$PACKAGE_NAME" http://$MSB_ADDR/openoapi/catalog/v1/csars) +#getting csarId from the output of curl request +CsarId=$(echo ${CsarIdString:11:36}) +echo $CsarId +echo $CsarIdString +#csarid is sucessfully stored in CsarId variable +echo "====finished======" +##########CATALOUGE END############ +echo "DELETING PACAKE LOCAL COPY:$PACKAGE_NAME"; +#rm $PACKAGE_NAME; diff --git a/plans/vnfsdk-pkgtools/sanity-check/setup.sh b/plans/vnfsdk-pkgtools/sanity-check/setup.sh new file mode 100755 index 00000000..3921bb0a --- /dev/null +++ b/plans/vnfsdk-pkgtools/sanity-check/setup.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# Copyright 2016-2017 Intel Corp., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + +# Clone vnfsdk/pkgtools repo and install it +mkdir -p $WORKSPACE/archives/pkgtools +cd $WORKSPACE/archives +git clone -b master --single-branch http://gerrit.onap.org/r/vnfsdk/pkgtools.git pkgtools +cd $WORKSPACE/archives/pkgtools +git pull +echo "To install vnfsdk pkgtools git head revision: $(git rev-parse HEAD)" +python setup.py egg_info +pip install . + +pip freeze | tee $WORKSPACE/archives/_pip-freeze-after-setup.txt + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS}" + diff --git a/plans/vnfsdk-pkgtools/sanity-check/teardown.sh b/plans/vnfsdk-pkgtools/sanity-check/teardown.sh new file mode 100755 index 00000000..ce0ab6d9 --- /dev/null +++ b/plans/vnfsdk-pkgtools/sanity-check/teardown.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# diff --git a/plans/vnfsdk-pkgtools/sanity-check/testplan.txt b/plans/vnfsdk-pkgtools/sanity-check/testplan.txt new file mode 100644 index 00000000..05ff05a2 --- /dev/null +++ b/plans/vnfsdk-pkgtools/sanity-check/testplan.txt @@ -0,0 +1,4 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vnfsdk-pkgtools/tosca-metadata/create_open.robot +vnfsdk-pkgtools/tosca-metadata/create_validate_digest_signing.robot diff --git a/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar b/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar Binary files differnew file mode 100644 index 00000000..0960b20a --- /dev/null +++ b/plans/vnfsdk-refrepo/sanity-check/enterprise2DC.csar diff --git a/plans/vnfsdk-refrepo/sanity-check/setup.sh b/plans/vnfsdk-refrepo/sanity-check/setup.sh new file mode 100644 index 00000000..ecee227f --- /dev/null +++ b/plans/vnfsdk-refrepo/sanity-check/setup.sh @@ -0,0 +1,40 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# These scripts are sourced by run-csit.sh. + + +#Start postgres database +docker run -d -i -t --name=postgres -p 5432:5432 nexus3.onap.org:10001/onap/vnfsdk/refrepo/postgres:latest + +POSTGRES=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' postgres` + +#Start market place +docker run -d -i -t --name=refrepo -e POSTGRES_SERVICE_HOST=$POSTGRES -p 8702:8702 nexus3.onap.org:10001/onap/vnfsdk/refrepo:1.1-STAGING-latest + +# Wait for Market place initialization +echo Wait for VNF Repository initialization +for i in {1..30}; do + sleep 1 +done + +REPO_IP=`docker inspect --format '{{ .NetworkSettings.IPAddress }}' refrepo` + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v SCRIPTS:${SCRIPTS} -v REPO_IP:${REPO_IP}" +echo ${ROBOT_VARIABLES} + diff --git a/plans/vnfsdk-refrepo/sanity-check/teardown.sh b/plans/vnfsdk-refrepo/sanity-check/teardown.sh new file mode 100644 index 00000000..19440bc7 --- /dev/null +++ b/plans/vnfsdk-refrepo/sanity-check/teardown.sh @@ -0,0 +1,23 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# This script is sourced by run-csit.sh after Robot test completion. + + +kill-instance.sh refrepo +kill-instance.sh postgres + + diff --git a/plans/vnfsdk-refrepo/sanity-check/testplan.txt b/plans/vnfsdk-refrepo/sanity-check/testplan.txt new file mode 100644 index 00000000..730df014 --- /dev/null +++ b/plans/vnfsdk-refrepo/sanity-check/testplan.txt @@ -0,0 +1,3 @@ +## Test suites are relative paths under [integration.git]/test/csit/tests/. +## Place the suites in run order. +vnfsdk-marketplace/provision/sanity_test_vnfsdktestfunction.robot diff --git a/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh b/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh new file mode 100644 index 00000000..279912c3 --- /dev/null +++ b/plans/vnfsdk-refrepo/sanity-check/uploadCSAR.sh @@ -0,0 +1,138 @@ +#!/usr/bin/env bash +############################################################################### +# Copyright 2017 Huawei Technologies Co., Ltd. +# +# 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. +############################################################################### +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +echo $SCRIPT_DIR + +#CHECK IF MSB_ADDR IS GIVEN IN COMMAND +if [ -z "$1" ] +then + echo "There is no MSB_ADDR" + exit 1 +fi +MSB_ADDR=$1 +CSAR_NAME=$2 +echo $MSB_ADDR +echo $CSAR_NAME + +# Wait for MSB initialization +echo Wait for MSB initialization +for i in {1..20}; do + curl -sS -m 1 $MSB_ADDR > /dev/null && break + sleep $i +done +#MSB initialized +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +############UOLOAD PACKAGE to MARKET PLACE###################### +echo +echo "############## UOLOAD PACKAGE to MARKET PLACE STARTED ##############"; +UploadPackageResponse=$(curl -sS -X POST -H "Content-Type: multipart/form-data;" -F "file=@$CSAR_NAME" http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars) +if echo "$UploadPackageResponse" | grep -q "\"csarId\""; then + echo "UOLOAD PACKAGE TO MARKET PLACE SUCSSS !!!"; +else + echo "UploadPackageResponse :$UploadPackageResponse" + echo "UOLOAD PACKAGE TO MARKET PLACE FAILED !!!"; + exit 1; +fi +UploadCsarId=$(echo ${UploadPackageResponse:11:36}) +echo "PACKAGE ID:$UploadCsarId" +echo "############## UOLOAD PACKAGE to MARKET PLACE END ##################"; +#######UOLOAD PACKAGE to MARKET PLACE END############# +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +########################################### +################GET ON BOARD STATUS######## +echo +echo "####################### GETTING ON-BOARDING STATUS ##################"; +#sleeping for 10 sec so thate ON Boarding operation should be happened at backend +for pc in $(seq 1 10); do + status=$((${pc}*10)); + echo -ne "ON_BOARDING Status (%): $status\033[0K\r" + sleep 1 +done +echo + +#Three Retries for getting On Boarding Result +#count=0 +#while [ $count -lt 3 ] +#do +# OnBoardStatusResponse=$(curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/onboardstatus?operTypeId=functiontest&operId=functestexec" -H "Accept: application/json" -H "Content-Type: application/json") +# echo $OnBoardStatusResponse +# if echo "$OnBoardStatusResponse" | grep -q "\"status\":0"; then +# break; +# else +# if [ $count -eq 3 ] +# then +# echo "ON-BOARDING OPERATION FAILED !!!"; +# fi +# count=`expr $count + 1`; +# sleep 3; +# fi +#done +echo "GET ON-BOARDING RESULT OPERATION SUCESS "; +echo "##################### GETTING ON-BOARDING STATUS END #################"; +####################GET ON BOARD STATUS END############ +########################################## +########################################## +########################################## +########################################## +########################################## +#################DOWNLOAD PACKAGE######### +echo +echo "############## DOWNLOADED PACKAGE FROM MARKET STARTED #################"; +PACKAGE_NAME=market_temp.csar +curl -sS -X GET "http://$MSB_ADDR/openoapi/vnfsdk-marketplace/v1/PackageResource/csars/$UploadCsarId/files" > $PACKAGE_NAME +fileSize=$(du -b $PACKAGE_NAME | cut -f 1) +if [ $fileSize -eq 0 ] +then + echo "DOWNLOADED PACKAGE FROM MARKET NOT PROPER, ON-BOARDING OPERATION FAILED !!!"; + exit 1; +fi +echo "DOWNLOADED PACKAGE FROM MARKET OPERATION SUCESS !!!"; +echo "MARKET PACKAGE NAME:$PACKAGE_NAME" +echo "##################### DOWNLOADED PACKAGE FROM MARKET ##################"; +###################DOWNLOAD PACKAGE END##################### +########################################## +########################################## +########################################## +########################################## +##########CATALOUGE START################# +echo +PACKAGE_NAME=$CSAR_NAME +#Check if common-tosca-catalog is registered with MSB or not +#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/catalog/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" +#check if common-tosca-aria is registered with MSB or not +#curl -sS -X GET http://$MSB_ADDR/api/microservices/v1/services/tosca/version/v1 -H "Accept: application/json" -H "Content-Type: application/json" +#echo Sending POST request to Catalog +CsarIdString=$(curl -sS -X POST -H "Content-Type: multipart/form-data; boundary=-WebKitFormBoundary7MA4YWxkTrZu0gW" -H "Cache-Control: no-cache" -H "Postman-Token: abcb6497-b225-c592-01be-e9ff460ca188" -F "file=@$PACKAGE_NAME" http://$MSB_ADDR/openoapi/catalog/v1/csars) +#getting csarId from the output of curl request +CsarId=$(echo ${CsarIdString:11:36}) +echo $CsarId +echo $CsarIdString +#csarid is sucessfully stored in CsarId variable +echo "====finished======" +##########CATALOUGE END############ +echo "DELETING PACAKE LOCAL COPY:$PACKAGE_NAME"; +#rm $PACKAGE_NAME; diff --git a/plans/vvp/sanity/setup.sh b/plans/vvp/sanity/setup.sh new file mode 100644 index 00000000..cab074c0 --- /dev/null +++ b/plans/vvp/sanity/setup.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# +# Place the scripts in run order: + + +source ${WORKSPACE}/test/csit/scripts/vvp/clone_and_setup_vvp_data.sh + +source ${WORKSPACE}/test/csit/scripts/vvp/start_vvp_containers.sh + +source ${WORKSPACE}/test/csit/scripts/vvp/docker_health.sh + +source ${WORKSPACE}/test/csit/scripts/vvp/start_vvp_sanity.sh + + +VVP_IP=`${WORKSPACE}/test/csit/scripts/get-instance-ip.sh vvp-engagementmgr` +echo VVP_IP=${VVP_IP} + + +# Pass any variables required by Robot test suites in ROBOT_VARIABLES +ROBOT_VARIABLES="-v VVP_IP:${VVP_IP}" diff --git a/plans/vvp/sanity/teardown.sh b/plans/vvp/sanity/teardown.sh new file mode 100644 index 00000000..b0f33a64 --- /dev/null +++ b/plans/vvp/sanity/teardown.sh @@ -0,0 +1,20 @@ +#!/bin/bash +# +# Copyright 2016-2017 Huawei Technologies Co., Ltd. +# +# 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. +# +# Modifications copyright (c) 2017 AT&T Intellectual Property +# + +source ${WORKSPACE}/test/csit/scripts/vvp/kill_containers_and_remove_dataFolders.sh diff --git a/plans/vvp/sanity/testplan.txt b/plans/vvp/sanity/testplan.txt new file mode 100644 index 00000000..0acb5083 --- /dev/null +++ b/plans/vvp/sanity/testplan.txt @@ -0,0 +1,3 @@ +# Test suites are relative paths under [integration.git]/test/csit/tests/. +# Place the suites in run order. +vvp/sanity |