Bug 873: Robot Automation improvement: NS_CONFIG Provided via both 1. Using Environment variable/file 2. Using Testsuit Variable

Change-Id: I762e6a6f00ec02604b588f808955bd780f679555
Signed-off-by: yadavmr <my00514913@techmahindra.com>
diff --git a/robot-systest/README_Robot_Test.md b/robot-systest/README_Robot_Test.md
index 7067946..083e1dd 100644
--- a/robot-systest/README_Robot_Test.md
+++ b/robot-systest/README_Robot_Test.md
@@ -22,7 +22,7 @@
 All installation commands run using root user(`sudo su`)
 ## Step 1: Install python packages
 Install below python packages using pip
->pip install python-magic pyangbind haikunator requests pyvcloud progressbar pathlib robotframework robotframework-seleniumlibrary robotframework-requests
+>pip install python-magic pyangbind haikunator requests pyvcloud progressbar pathlib robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary
 
 ## Step 2: Install linux packages
 Install below linux packages
diff --git a/robot-systest/lib/cli/ns_lib.robot b/robot-systest/lib/cli/ns_lib.robot
index 9588527..8be124d 100644
--- a/robot-systest/lib/cli/ns_lib.robot
+++ b/robot-systest/lib/cli/ns_lib.robot
@@ -29,6 +29,7 @@
 ${ns_launch_pol_time}    30sec
 ${ns_delete_max_wait_time}    1min
 ${ns_delete_pol_time}    15sec
+${nsconfig}
 
 
 *** Keywords ***
@@ -41,20 +42,33 @@
 
 
 Launch Network Services and Return
-    [Arguments]  ${vim_name}
+    [Arguments]  ${vim_name}  ${ns_config}=''
 
+    Run Keyword If    ${ns_config}==''    Get NS Config
+    ...  ELSE  Set NS Config    ${ns_config}
+    Log To Console    \n${nsconfig}
     Should Not Be Empty    ${nsd_ids}    There are no NS descriptors to launch the NS
     :FOR    ${nsd}    IN    @{nsd_ids}
     \    ${ns_name}=    GENERATE NAME
     \    Append To List     ${ns_ids}       ${ns_name}
-    \    Create Network Service    ${nsd}   ${vim_name}    ${ns_name}
+    \    Create Network Service    ${nsd}   ${vim_name}    ${ns_name}    ${nsconfig}
+
+
+Set NS Config
+    [Arguments]   ${ns_config}
+    ${nsconfig}=    Get Variable Value    ${ns_config}    ''
+    Set Test Variable    ${nsconfig}
+
+
+Get NS Config
+    ${nsconfig}=    Get Environment Variable    NS_CONFIG    ''
+    Set Test Variable    ${nsconfig}
 
 
 Create Network Service
     [Documentation]  Create ns at osm
-    [Arguments]  ${nsd}   ${vim_name}    ${ns_name}
+    [Arguments]  ${nsd}   ${vim_name}    ${ns_name}    ${ns_config}
 
-    ${ns_config}=   Get Environment Variable    NS_CONFIG    ''
     Run Keyword If   ${ns_config}!=''   Create Network Service With Config    ${nsd}    ${vim_name}    ${ns_name}    ${ns_config}
     ...    ELSE    Create Network Service Without Config    ${nsd}   ${vim_name}    ${ns_name}
 
diff --git a/robot-systest/run_test.sh b/robot-systest/run_test.sh
index 42b2328..3f86ff9 100644
--- a/robot-systest/run_test.sh
+++ b/robot-systest/run_test.sh
@@ -31,7 +31,7 @@
 robot_prerequisite(){
     echo -e "\nInstalling robot requirements"
     # installing python packages
-    pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests
+    pip install haikunator requests robotframework robotframework-seleniumlibrary robotframework-requests robotframework-jsonlibrary
 }
 
 while getopts ":t:-:" o; do