Merge "CSIT for new feature in multicloud"
diff --git a/test/csit/plans/multicloud-vmware/functionality1/testplan.txt b/test/csit/plans/multicloud-vmware/functionality1/testplan.txt
index 2f5ad1b..a6179d9 100644
--- a/test/csit/plans/multicloud-vmware/functionality1/testplan.txt
+++ b/test/csit/plans/multicloud-vmware/functionality1/testplan.txt
@@ -7,3 +7,4 @@
 multicloud-vmware/nova/sanity-flavor.robot
 multicloud-vmware/nova/sanity-host.robot
 multicloud-vmware/nova/sanity-server.robot
+multicloud-vmware/samples/sanity-sample.robot
diff --git a/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/setup.sh b/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/setup.sh
new file mode 100644
index 0000000..4d97f33
--- /dev/null
+++ b/test/csit/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/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/teardown.sh b/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/teardown.sh
new file mode 100644
index 0000000..c158d19
--- /dev/null
+++ b/test/csit/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/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/testplan.txt b/test/csit/plans/vfc-nfvo-multivimproxy/sanity-check/testplan.txt
new file mode 100644
index 0000000..f81be8e
--- /dev/null
+++ b/test/csit/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/test/csit/tests/multicloud-vmware/samples/sanity-sample.robot b/test/csit/tests/multicloud-vmware/samples/sanity-sample.robot
new file mode 100644
index 0000000..fcb784b
--- /dev/null
+++ b/test/csit/tests/multicloud-vmware/samples/sanity-sample.robot
@@ -0,0 +1,25 @@
+*** settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Variables ***
+@{return_ok_list}=   200  201  202
+${querysample_vio_url}    /samples
+
+*** Test Cases ***
+VioSwaggerTest
+    [Documentation]    query swagger info rest test
+    ${headers}    Create Dictionary    Content-Type=application/json  X-TRANSACTIONID=123456  Accept=application/json
+    Create Session    web_session    http://${VIO_IP}:9004    headers=${headers}
+    ${resp}=  Get Request    web_session    ${querysample_vio_url}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    # verify logging output
+    ${response_json}    json.loads    ${resp.content}
+    ${logs}=	Convert To String      ${response_json['logs']}
+    Log To Console        ${logs}
+    Should Contain        ${logs}  123456
+    Should Contain 	  ${logs}  multicloud-vio
+    Should Contain 	  ${logs}  vio.samples.views
\ No newline at end of file
diff --git a/test/csit/tests/vfc/nfvo-multivimproxy/test.robot b/test/csit/tests/vfc/nfvo-multivimproxy/test.robot
new file mode 100644
index 0000000..5945da1
--- /dev/null
+++ b/test/csit/tests/vfc/nfvo-multivimproxy/test.robot
@@ -0,0 +1,24 @@
+*** settings ***
+Resource    ../../common.robot
+Library     Collections
+Library     RequestsLibrary
+Library     simplejson
+Library     OperatingSystem
+Library     json
+Library     HttpLibrary.HTTP
+
+*** Variables ***
+@{return_ok_list}=   200  201  202
+${queryswagger_url}    /api/multivimproxy/v1/swagger.json
+
+*** Test Cases ***
+SwaggerFuncTest
+    [Documentation]    query swagger info rest test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${RESMGR_IP}:8486    headers=${headers}
+    ${resp}=  Get Request    web_session    ${queryswagger_url}
+    ${responese_code}=     Convert To String      ${resp.status_code}
+    List Should Contain Value    ${return_ok_list}   ${responese_code}
+    ${response_json}    json.loads    ${resp.content}
+    ${swagger_version}=    Convert To String      ${response_json['swagger']}
+    Should Be Equal    ${swagger_version}    2.0
\ No newline at end of file