diff --git a/plans/multicloud-lenovo/functionality1/setup.sh b/plans/multicloud-lenovo/functionality1/setup.sh
new file mode 100755
index 0000000..39f24ea
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/setup.sh
@@ -0,0 +1,34 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 Lenovo 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-lenovo
+docker run -d --name multicloud-lenovo nexus3.onap.org:10001/onap/multicloud/openstack-lenovo
+SERVICE_IP=`get-instance-ip.sh multicloud-lenovo`
+SERVICE_PORT=9010
+
+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-lenovo/functionality1/teardown.sh b/plans/multicloud-lenovo/functionality1/teardown.sh
new file mode 100755
index 0000000..8dace0e
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/teardown.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+#
+# Copyright (c) 2017 Lenovo 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-lenovo
diff --git a/plans/multicloud-lenovo/functionality1/testplan.txt b/plans/multicloud-lenovo/functionality1/testplan.txt
new file mode 100644
index 0000000..ef14af3
--- /dev/null
+++ b/plans/multicloud-lenovo/functionality1/testplan.txt
@@ -0,0 +1,3 @@
+# Test suites are relative paths under [integration/csit.git]/tests/.
+# Place the suites in run order.
+multicloud-lenovo/provision/sanity_test_multicloud.robot
diff --git a/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot b/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot
new file mode 100644
index 0000000..ed799ed
--- /dev/null
+++ b/tests/multicloud-lenovo/provision/sanity_test_multicloud.robot
@@ -0,0 +1,22 @@
+*** settings ***
+Library     Collections
+Library     RequestsLibrary
+Library     OperatingSystem
+Library     json
+
+*** Variables ***
+@{return_ok_list}=   200  201  202
+${queryswagger_lenovo_url}    /api/multicloud-thinkcloud/v0/swagger.json
+
+
+*** Test Cases ***
+ThinkCloudSwaggerTest
+    [Documentation]    query swagger info rest test
+    ${headers}    Create Dictionary    Content-Type=application/json    Accept=application/json
+    Create Session    web_session    http://${SERVICE_IP}:${SERVICE_PORT}    headers=${headers}
+    ${resp}=  Get Request    web_session    ${queryswagger_lenovo_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
