SEBA-903 getting ip and port from make command line arguments instead of hardcoding

Change-Id: I0ff559fff6aa3a15b6110fb4c4d43280dc689789
diff --git a/demo_test/functional_test/importer.robot b/demo_test/functional_test/importer.robot
index 4abcd60..1b10dab 100644
--- a/demo_test/functional_test/importer.robot
+++ b/demo_test/functional_test/importer.robot
@@ -1,4 +1,4 @@
-# Copyright 2017-present Open Networking Foundation
+# Copyright 2018 Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -13,16 +13,86 @@
 # limitations under the License.
 
 *** Settings ***
+Documentation     Provide the function to perform funtional tests for the Redfish device-management project
+Suite Setup       Get IP AND PORT
 Library           Process
 Library           OperatingSystem
+Library           BuiltIn
+Library           String
+Library           Collections
+
+*** Variables ***
+@{ADDR_LIST}      192.168.4.26:8888    192.168.4.27:8888
 
 *** Test Cases ***
-List Supported Events
-    [Documentation]    This test case excercises the API, GetEventList, which is expected to list all supported Redfish events.
-    ${IP}    set variable    192.168.4.26
-    ${PORT}    set variable    8888
-    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ipaddr/${IP}:${PORT}/g' tests/list_supported_events.expected
-    Run Process    tests/list_supported_events.tc    ${IP}:${PORT}    shell=yes    alias=myproc
-    ${OUTPUT}=    get process result    myproc
+Add Device to Monitor
+    [Documentation]    This test case excercises the API, SendDeviceList, which registers Redfish devices to monitor.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' -e 's/ip2/${IP2}/g' -e 's/port2/${PORT2}/g' tests/add_device_to_monitor.expected
+    ${OUTPUT}=    Run Process    tests/add_device_to_monitor.tc    ${IP1}    ${PORT1}    ${IP2}    ${PORT2}
     Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
 
+Clear Subscribed Events
+    [Documentation]    This test case excercises the API, ClearCurrentEventList, which clears all Redfish evets currently subscribed to.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/clear_all_subscribed_events.expected
+    ${OUTPUT}=    Run Process    tests/clear_all_subscribed_events.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+Configure Data Polling Interval
+    [Documentation]    This test case excercises the API, SetFrequency, which configures the interval of data polling.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/configure_data_polling_interval.expected
+    ${OUTPUT}=    Run Process    tests/configure_data_polling_interval.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+Delete Monitored Device
+    [Documentation]    This test case excercises the API, DeleteDeviceList, which deletes Redfish devices being monitored.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' -e 's/ip2/${IP2}/g' -e 's/port2/${PORT2}/g' tests/delete_monitored_device.expected
+    ${OUTPUT}=    Run Process    tests/delete_monitored_device.tc    ${IP1}    ${PORT1}    ${IP2}    ${PORT2}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+List Devices monitored
+    [Documentation]    This test case excercises the API, GetCurrentDevices, which lists all Redfish devices being monitored.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' -e 's/ip2/${IP2}/g' -e 's/port2/${PORT2}/g' tests/list_device_monitored.expected
+    ${OUTPUT}=    Run Process    tests/list_device_monitored.tc    ${IP1}    ${PORT1}    ${IP2}    ${PORT2}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+List Subscribed Events
+    [Documentation]    This test case excercises the API, GetCurrentEventList, which lists all Redfish evets currently subscribed to.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/list_subscribed_events.expected
+    ${OUTPUT}=    Run Process    tests/list_subscribed_events.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+List Supported Events
+    [Documentation]    This test case excercises the API, GetEventList, which lists all supported Redfish events.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/list_supported_events.expected
+    ${OUTPUT}=    Run Process    tests/list_supported_events.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+Subscribe Events
+    [Documentation]    This test case excercises the API, SubscribeGivenEvents, which subscribes to the specified events.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/subscribe_events.expected
+    ${OUTPUT}=    Run Process    tests/subscribe_events.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+Unsubscribe Events
+    [Documentation]    This test case excercises the API, UnsubscribeGivenEvents, which unsubscribes to the specified events.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/unsubscribe_events.expected
+    ${OUTPUT}=    Run Process    tests/unsubscribe_events.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+Validate IP
+    [Documentation]    This test case validates the format of IP, whcih is expected to be in the form of <ip>:<port>.
+    ${EXPECTED}=    RUN    sed -e '/^\\/\\//d' -e 's/ip1/${IP1}/g' -e 's/port1/${PORT1}/g' tests/validate_ip.expected
+    ${OUTPUT}=    Run Process    tests/validate_ip.tc    ${IP1}    ${PORT1}
+    Should Be Equal    ${EXPECTED}    ${OUTPUT.stdout}
+
+*** Keywords ***
+Get IP AND PORT
+    Sort List    ${ADDR_LIST}
+    ${I1}=    Fetch From LEFT    ${ADDR_LIST}[0]    :
+    Set Suite Variable    ${IP1}    ${I1}
+    ${P1}=    Fetch From Right    ${ADDR_LIST}[0]    :
+    Set Suite Variable    ${PORT1}    ${P1}
+    ${I2}=    Fetch From LEFT    ${ADDR_LIST}[1]    :
+    Set Suite Variable    ${IP2}    ${I2}
+    ${P2}=    Fetch From Right    ${ADDR_LIST}[1]    :
+    Set Suite Variable    ${PORT2}    ${P2}