Run/kill docker containers using Robot test cases

Change-Id: I7c13b04de30c3f3a0469668910f0837e0b9e38fa
Issue-ID: INT-200
Signed-off-by: Gary Wu <gary.i.wu@huawei.com>
diff --git a/test/csit/plans/integration/vCPE/setup.sh b/test/csit/plans/integration/vCPE/setup.sh
index a30b9b6..1b9cc34 100755
--- a/test/csit/plans/integration/vCPE/setup.sh
+++ b/test/csit/plans/integration/vCPE/setup.sh
@@ -16,17 +16,6 @@
 #
 # Place the scripts in run order:
 
-run-instance.sh nexus3.onap.org:10001/openecomp/mso i-so ""
-
-SO_IP=`get-instance-ip.sh i-so`
-
-# Wait for initialization
-for i in {1..10}; do
-    curl -sS ${SO_IP}:8080 && break
-    echo sleep $i
-    sleep $i
-done
-
 # Pass any variables required by Robot test suites in ROBOT_VARIABLES
-ROBOT_VARIABLES="-v SO_IP:${SO_IP}"
+ROBOT_VARIABLES=""
 
diff --git a/test/csit/plans/integration/vCPE/teardown.sh b/test/csit/plans/integration/vCPE/teardown.sh
index b197859..8beb6e1 100755
--- a/test/csit/plans/integration/vCPE/teardown.sh
+++ b/test/csit/plans/integration/vCPE/teardown.sh
@@ -15,5 +15,4 @@
 # limitations under the License.
 #
 
-kill-instance.sh i-so
 
diff --git a/test/csit/tests/integration/vCPE/test1.robot b/test/csit/tests/integration/vCPE/test1.robot
index c9820a4..d9a9baf 100644
--- a/test/csit/tests/integration/vCPE/test1.robot
+++ b/test/csit/tests/integration/vCPE/test1.robot
@@ -1,10 +1,34 @@
 *** Settings ***
-Library       OperatingSystem
-Library       RequestsLibrary
+Library           OperatingSystem
+Library           RequestsLibrary
+Library           Process
 
 *** Test Cases ***
 SO ServiceInstance health check
-    Create Session   refrepo  http://${SO_IP}:8080
-    &{headers}=  Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
+    ${SO_IP}=    Run Docker    nexus3.onap.org:10001/openecomp/mso    i-so
+    Wait Until Keyword Succeeds    1 min    5 sec    CheckUrl    http://${SO_IP}:8080
+    Create Session    refrepo    http://${SO_IP}:8080
+    &{headers}=    Create Dictionary    Authorization=Basic SW5mcmFQb3J0YWxDbGllbnQ6cGFzc3dvcmQxJA==    Content-Type=application/json    Accept=application/json
     ${resp}=    Get Request    refrepo    /ecomp/mso/infra/orchestrationRequests/v2    headers=${headers}
-    Should Not Contain     ${resp.content}      null
+    Should Not Contain    ${resp.content}    null
+    Kill Docker    i-so
+
+*** Keywords ***
+Run Docker
+    [Arguments]    ${image}    ${name}    ${parameters}=${EMPTY}
+    ${result}=    Run Process    docker run --name ${name} ${parameters} -d ${image}    shell=True
+    Log    all output: ${result.stdout}
+    ${result}=    Run Process    docker inspect --format '{{ .NetworkSettings.IPAddress }}' ${name}    shell=True
+    [Return]    ${result.stdout}
+
+Kill Docker
+    [Arguments]    ${name}
+    ${result}=    Run Process    docker logs ${name}    shell=True
+    ${result}=    Run Process    docker kill ${name}    shell=True
+    ${result}=    Run Process    docker rm ${name}    shell=True
+
+CheckUrl
+    [Arguments]    ${url}
+    Create Session    session    ${url}    disable_warnings=True
+    ${resp}=    Get Request    session    /
+    Should Be Equal As Integers    ${resp.status_code}    200