Merge "Changes to CSIT so it executes in ONAP also"
authorGary Wu <gary.i.wu@huawei.com>
Mon, 11 Feb 2019 17:15:10 +0000 (17:15 +0000)
committerGerrit Code Review <gerrit@onap.org>
Mon, 11 Feb 2019 17:15:10 +0000 (17:15 +0000)
plans/dcaegen2-pmmapper/pmmapper/composefile/docker-compose-e2e.yml
plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh [new file with mode: 0755]
plans/dcaegen2-pmmapper/pmmapper/setup.sh
plans/policy/distribution/setup.sh
plans/policy/pap/setup.sh [new file with mode: 0644]
plans/policy/pap/teardown.sh [new file with mode: 0644]
plans/policy/pap/testplan.txt [new file with mode: 0644]
plans/sdnc/healthcheck/setup.sh [changed mode: 0644->0755]
tests/dcaegen2-pmmapper/pmmapper/pmmapper.robot
tests/policy/distribution/distribution-test.robot
tests/policy/pap/pap-test.robot [new file with mode: 0644]

index af987f7..ee1649b 100644 (file)
@@ -1,7 +1,7 @@
 version: '2.1'
 services:
   datarouter-prov:
-    image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-prov:2.0.0-SNAPSHOT
     container_name: datarouter-prov
     hostname: dmaap-dr-prov
     ports:
@@ -22,7 +22,7 @@ services:
       retries: 5
 
   datarouter-node:
-    image: nexus3.onap.org:10001/onap/dmaap/datarouter-node
+    image: nexus3.onap.org:10001/onap/dmaap/datarouter-node:2.0.0-SNAPSHOT
     container_name: datarouter-node
     hostname: dmaap-dr-node
     ports:
@@ -59,3 +59,12 @@ services:
     image: nexus3.onap.org:10001/onap/org.onap.dcaegen2.platform.configbinding.app-app:latest
     environment:
        CONSUL_HOST:
+
+  buscontroller:
+    container_name: buscontroller
+    image: nexus3.onap.org:10001/onap/dmaap/buscontroller
+    ports:
+     - "18080:8080"
+     - "18443:8443"
+    extra_hosts:
+      - "dmaap-dr-prov: dr-prov-ip"
\ No newline at end of file
diff --git a/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh b/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh
new file mode 100755 (executable)
index 0000000..ffb1686
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# $1 is the IP address of the buscontroller
+# INITIALIZE: dmaap object
+JSON=/tmp/prov.dmaap
+cat << EOF > $JSON
+{
+"version": "1",
+"topicNsRoot": "org.onap.dmaap",
+"drProvUrl": "https://dmaap-dr-prov:8443",
+"dmaapName": "onapCSIT",
+"bridgeAdminTopic": "MM_AGENT_PROV"
+
+}
+EOF
+
+echo "Initializing /dmaap endpoint"
+curl -v -X POST -d @${JSON} -H "Content-Type: application/json" http://$1:8080/webapi/dmaap
\ No newline at end of file
index 326b4ac..5d8cce6 100644 (file)
@@ -70,6 +70,10 @@ sed -i -e '/CONSUL_HOST:/ s/:.*/: '$CONSUL_IP'/' docker-compose.yml
 MARIADB=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mariadb )
 sed -i 's/datarouter-mariadb/'$MARIADB'/g' $WORKSPACE/archives/dmaapdr/datarouter/datarouter-docker-compose/src/main/resources/prov_data/provserver.properties
 docker-compose up -d
+DR_PROV_IP=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' datarouter-prov)
+docker kill buscontroller
+sed -i 's/dr-prov-ip/'$DR_PROV_IP'/g' docker-compose.yml
+docker-compose up -d
 
 # Wait for initialization of Docker container for datarouter-node, datarouter-prov and mariadb
 for i in {1..10}; do
@@ -104,9 +108,10 @@ docker exec -i datarouter-prov sh -c "curl -k  -X PUT https://$DR_PROV_IP:8443/i
 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"
-curl -v -X POST -H "Content-Type:application/vnd.att-dr.feed" -H "X-ATT-DR-ON-BEHALF-OF:dradmin" --data-ascii @$WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/createFeed.json --post301 --location-trusted -k https://${DR_PROV_IP}:8443
-sleep 5
-curl -k https://$DR_PROV_IP:8443/internal/prov
+
+# Bus Controller Configuration
+DMAAPBC_IP=$(docker inspect '--format={{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' buscontroller)
+$WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/dmaapbc.sh ${DMAAPBC_IP}
 
 # Consul Configuration for PM Mapper
 cp $WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/cbs.json /tmp/cbs.json
@@ -115,4 +120,4 @@ curl --request PUT --data @/tmp/cbs.json http://$CONSUL_IP:8500/v1/agent/service
 curl 'http://'$CONSUL_IP':8500/v1/kv/pmmapper?dc=dc1' -X PUT -H 'Accept: application/^Con' -H 'Content-Type: application/json' -H 'X-Requested-With: XMLHttpRequest' --data @$WORKSPACE/plans/dcaegen2-pmmapper/pmmapper/assets/config.json
 
 #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 CBS_IP:${CBS_IP} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
+ROBOT_VARIABLES="-v DR_PROV_IP:${DR_PROV_IP} -v DMAAPBC_IP:${DMAAPBC_IP} -v DMAAP_MR_IP:${DMAAP_MR_IP} -v CBS_IP:${CBS_IP} -v DR_SUBSCIBER_IP:${DR_SUBSCIBER_IP}"
\ No newline at end of file
index 9b894e3..40a15d1 100644 (file)
 # 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 
+docker run -d --name policy-distribution -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-distribution:2.1.0-SNAPSHOT-latest
 
 POLICY_DISTRIBUTION_IP=`get-instance-ip.sh policy-distribution`
 echo DISTRIBUTION IP IS ${POLICY_DISTRIBUTION_IP}
-Wait for initialization
+Wait for initialization
 for i in {1..10}; do
    curl -sS ${POLICY_DISTRIBUTION_IP}:6969 && break
    echo sleep $i
diff --git a/plans/policy/pap/setup.sh b/plans/policy/pap/setup.sh
new file mode 100644 (file)
index 0000000..44a205a
--- /dev/null
@@ -0,0 +1,31 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+docker run -d --name policy-pap -p 6969:6969 -it nexus3.onap.org:10001/onap/policy-pap:2.0.0-SNAPSHOT-latest
+
+POLICY_PAP_IP=`get-instance-ip.sh policy-pap`
+echo PAP IP IS ${POLICY_PAP_IP}
+# Wait for initialization
+for i in {1..10}; do
+   curl -sS ${POLICY_PAP_IP}:6969 && break
+   echo sleep $i
+   sleep $i
+done
+
+ROBOT_VARIABLES="-v POLICY_PAP_IP:${POLICY_PAP_IP}"
diff --git a/plans/policy/pap/teardown.sh b/plans/policy/pap/teardown.sh
new file mode 100644 (file)
index 0000000..877b164
--- /dev/null
@@ -0,0 +1,20 @@
+#!/bin/bash
+# ============LICENSE_START=======================================================
+#  Copyright (C) 2019 Nordix Foundation.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# SPDX-License-Identifier: Apache-2.0
+# ============LICENSE_END=========================================================
+
+kill-instance.sh policy-pap
diff --git a/plans/policy/pap/testplan.txt b/plans/policy/pap/testplan.txt
new file mode 100644 (file)
index 0000000..6a5aa20
--- /dev/null
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+policy/pap/pap-test.robot
old mode 100644 (file)
new mode 100755 (executable)
index dfbd32c..7a66351
@@ -24,8 +24,8 @@ 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 DOCKER_IMAGE_VERSION=1.5-STAGING-latest
+export CCSDK_DOCKER_IMAGE_VERSION=0.4-STAGING-latest
 
 export MTU=$(/sbin/ifconfig | grep MTU | sed 's/.*MTU://' | sed 's/ .*//' | sort -n | head -1)
 
@@ -100,9 +100,8 @@ 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
+  if [ "$response" == "Level 100" ] ; then
     echo SDNC karaf started in $TIME seconds
     break;
   fi
@@ -117,10 +116,8 @@ if [ "$TIME" -ge "$TIME_OUT" ]; then
 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)
+  if [ "$response" == "Level 100" ] ; then
     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.
index f65ef2b..ccfa496 100644 (file)
@@ -1,14 +1,19 @@
 *** Settings ***
 Documentation     Testing PM Mapper functionality
-Library           RequestsLibrary
-Library           OperatingSystem
+Resource          ../../common.robot
 Library           Collections
+Library           json
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           HttpLibrary.HTTP
+Library           String
 Library           Process
 
 
 *** Variables ***
-${GLOBAL_APPLICATION_ID}                 robot-ves
-${CLI_EXEC_CLI}                          curl http://${CBS_IP}:10000/service_component/pmmapper
+${BC_URL}                     http://${DMAAPBC_IP}:8080/webapi
+${CLI_EXEC_CLI}               curl http://${CBS_IP}:10000/service_component/pmmapper
+${FEED1_DATA}                 { "feedName":"feed1", "feedVersion": "csit", "feedDescription":"generated for CSIT", "owner":"dgl", "asprClassification": "unclassified" }
 
 
 *** Test Cases ***
@@ -18,4 +23,18 @@ Verify pmmapper configuration in consul through CBS
     [Documentation]                 Verify pmmapper configuraiton in consul through CBS
     ${cli_cmd_output}=              Run Process                     ${CLI_EXEC_CLI}                     shell=yes
     Log                             ${cli_cmd_output.stdout}
-    Should Contain                  ${cli_cmd_output.stdout}        pm-mapper-filter
\ No newline at end of file
+    Should Contain                  ${cli_cmd_output.stdout}        pm-mapper-filter
+
+Create DR Feed through Bus Controller
+    [Tags]                          PM_MAPPER_02
+    [Documentation]                 Create Feed on Data Router through Bus Controller
+    ${resp}=                        PostCall    ${BC_URL}/feeds    ${FEED1_DATA}
+    Should Be Equal As Integers     ${resp.status_code}  200
+
+*** Keywords ***
+
+PostCall
+    [Arguments]    ${url}           ${data}
+    ${headers}=    Create Dictionary    Accept=application/json    Content-Type=application/json
+    ${resp}=       Evaluate    requests.post('${url}',data='${data}', headers=${headers},verify=False)    requests
+    [Return]       ${resp}
\ No newline at end of file
index 1b9fa21..2ee1180 100644 (file)
@@ -8,8 +8,8 @@ Library     json
 Healthcheck
      [Documentation]    Runs Policy Distribution Health check
      ${auth}=    Create List    healthcheck    zb!XztG34 
-     Log    Creating session http://${POLICY_DISTRIBUTION_IP}:6969
-     ${session}=    Create Session      policy  http://${POLICY_DISTRIBUTION_IP}:6969   auth=${auth}
+     Log    Creating session https://${POLICY_DISTRIBUTION_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_DISTRIBUTION_IP}:6969   auth=${auth}
      ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
      ${resp}=   Get Request     policy  /healthcheck     headers=${headers}
      Log    Received response from policy ${resp.text}
diff --git a/tests/policy/pap/pap-test.robot b/tests/policy/pap/pap-test.robot
new file mode 100644 (file)
index 0000000..7dca5b4
--- /dev/null
@@ -0,0 +1,28 @@
+*** Settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Test Cases ***
+Healthcheck
+     [Documentation]    Runs Policy PAP Health check
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   Get Request     policy  /healthcheck     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['code']}  200
+
+Statistics
+     [Documentation]    Runs Policy PAP Statistics
+     ${auth}=    Create List    healthcheck    zb!XztG34
+     Log    Creating session https://${POLICY_PAP_IP}:6969
+     ${session}=    Create Session      policy  https://${POLICY_PAP_IP}:6969   auth=${auth}
+     ${headers}=  Create Dictionary     Accept=application/json    Content-Type=application/json
+     ${resp}=   Get Request     policy  /statistics     headers=${headers}
+     Log    Received response from policy ${resp.text}
+     Should Be Equal As Strings    ${resp.status_code}     200
+     Should Be Equal As Strings    ${resp.json()['code']}  200