Added vmi network config testcases

Changes:
     -Added testcase Add Multiple IP Addreses On VMI Interface And Verify
     -Added testcase Verify VMI IP Static Configuration On BMC Reset Before HOST Boot
     -Added testcase Modify IP Addresses On VMI Interface And Verify
     -Fixed Keyword Set Static IPv4 Address To VMI

Change-Id: Icbaa222926a858c5e64b6519fba7839a3621d718
Signed-off-by: shrsuman123 <shrsuman@in.ibm.com>
diff --git a/openpower/ext_interfaces/test_vmi.robot b/openpower/ext_interfaces/test_vmi.robot
index 49e849b..d64fa6a 100644
--- a/openpower/ext_interfaces/test_vmi.robot
+++ b/openpower/ext_interfaces/test_vmi.robot
@@ -79,6 +79,30 @@
     10.5.20.30    0.0.0.0     255.255.252.0    ${False}      ${True}       ${HTTP_ACCEPTED}
     a.3.118.94    0.0.0.0     255.255.252.0    ${False}      ${False}      ${HTTP_BAD_REQUEST}
 
+Add Multiple IP Addreses On VMI Interface And Verify
+    [Documentation]  Add multiple IP addreses on VMI interface and verify.
+    [Tags]  Add_Multiple_IP_Addreses_On_VMI_Interface_And_Verify
+    [Teardown]  Run Keywords  Delete VMI IPv4 Address  IPv4Addresses  AND  Test Teardown
+
+    ${ip1}=  Create dictionary  Address=10.5.5.10  SubnetMask=255.255.252.0  Gateway=0.0.0.0
+    ${ip2}=  Create dictionary  Address=10.5.5.11  SubnetMask=255.255.252.0  Gateway=0.0.0.0
+    ${ip3}=  Create dictionary  Address=10.5.5.12  SubnetMask=255.255.252.0  Gateway=0.0.0.0
+    ${ips}=  Create List  ${ip1}  ${ip2}  ${ip3}
+
+    ${active_channel_config}=  Get Active Channel Config
+    Redfish.Patch  /redfish/v1/Systems/hypervisor/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
+    ...  body={'IPv4StaticAddresses':${ips}}  valid_status_codes=[${HTTP_ACCEPTED}]
+    Verify VMI Network Interface Details   ${ip1["Address"]}  Static  ${ip1["Gateway"]}  ${ip1["SubnetMask"]}  ${True}
+
+Modify IP Addresses On VMI Interface And Verify
+    [Documentation]  Modify IP addresses on VMI interface and verify.
+    [Tags]  Modify_IP_Addresses_On_VMI_Interface_And_Verify
+    [Template]  Verify Assigning Static IPv4 Address To VMI
+    [Teardown]  Run keywords  Delete VMI IPv4 Address  IPv4Addresses  AND  Test Teardown
+
+    # ip        gateway       netmask          del_curr_ip    host_reboot        valid_status_code
+    10.5.5.10   0.0.0.0     255.255.252.0       ${False}       ${True}            ${HTTP_ACCEPTED}
+    10.5.5.11   0.0.0.0     255.255.252.0       ${False}       ${True}            ${HTTP_ACCEPTED}
 
 Switch Between IP Origins On VMI And Verify Details
     [Documentation]  Switch between IP origins on VMI and verify details.
@@ -144,6 +168,18 @@
     ...  Verify VMI Network Interface Details  ${vmi_ip_config["IPv4_Address"]}  DHCP  ${vmi_ip_config["IPv4_Gateway"]}
     ...  ${vmi_ip_config["IPv4_SubnetMask"]}  ${True}
 
+Verify VMI Static IP Configuration Persist On BMC Reset Before Host Boot
+    [Documentation]  Verify VMI static IP configuration persist on BMC reset.
+    [Tags]   Verify_VMI_Static_IP_Configuration_Persist_On_BMC_Reset_Before_Host_Boot
+    [Teardown]  Run keywords  Delete VMI IPv4 Address  IPv4Addresses  AND  Test Teardown
+
+    Set Static IPv4 Address To VMI  ${test_ipv4}  ${test_gateway}  ${test_netmask}
+    Run keywords  Redfish OBMC Reboot (off)  AND  Redfish Power On
+    # Verifying the VMI static configuration
+    Verify VMI Network Interface Details  ${test_ipv4}  Static   ${test_gateway}  ${test_netmask}
+
+
+
 *** Keywords ***
 
 Get VMI Network Interface Details
@@ -239,7 +275,6 @@
     Should Be Equal As Strings  ${netmask}  ${vmi_ip["IPv4_SubnetMask"]}
     Should Be Equal As Strings  ${ip}  ${vmi_ip["IPv4_Address"]}
 
-
 Set Static IPv4 Address To VMI
     [Documentation]  Set static IPv4 address to VMI.
     [Arguments]  ${ip}  ${gateway}  ${netmask}  ${valid_status_code}=${HTTP_ACCEPTED}
@@ -257,7 +292,6 @@
     ${resp}=  Redfish.Patch
     ...  /redfish/v1/Systems/hypervisor/EthernetInterfaces/${active_channel_config['${CHANNEL_NUMBER}']['name']}
     ...  body=${data}  valid_status_codes=[${valid_status_code}]
-    Redfish Power On  stack_mode=skip
     Log To Console  ${resp.text}