Moving tests/test_network.robot to extended use case

As discussed, moving out the network test from CT run.

Note:

Currently the network test are broken, so we are disabling here.

Network manager is getting refactored openbmc/openbmc-test-automation#396
and the test automation equivalent github task to automate this
openbmc/openbmc-test-automation#396

Resolves openbmc/openbmc-test-automation#397

Change-Id: I8562138b70354ba9c709acd83190e3770eeecf0d
Signed-off-by: George Keishing <gkeishin@in.ibm.com>
diff --git a/extended/test_network.robot b/extended/test_network.robot
new file mode 100755
index 0000000..3ad5a95
--- /dev/null
+++ b/extended/test_network.robot
@@ -0,0 +1,166 @@
+*** Settings ***
+Documentation      This suite will verifiy the Network Configuration Rest Interfaces
+...                Details of valid interfaces can be found here...
+...                https://github.com/openbmc/docs/blob/master/rest-api.md
+
+Resource            ../lib/rest_client.robot
+Resource            ../lib/connection_client.robot
+Resource            ../lib/utils.robot
+Resource            ../lib/openbmc_ffdc.robot
+Library             ../lib/pythonutil.py
+
+Suite Setup         Open Connection And Log In
+Suite Teardown      Close All Connections
+Test Teardown       FFDC On Test Case Fail
+
+Force Tags  NetworkManager
+
+*** Variables ***
+
+${NW_MANAGER}    ${NETWORK_MANAGER_URI}Interface
+
+*** Test Cases ***
+
+Get the Mac address
+
+    [Documentation]   This test case is to get the mac address
+    [Tags]   network_test
+    @{arglist}=   Create List   eth0
+    ${args}=     Create Dictionary   data=@{arglist}
+    ${resp}=   Call Method    ${NW_MANAGER}   GetHwAddress    data=${args}
+    should not be empty    ${resp.content}
+    ${json}=   to json         ${resp.content}
+    should be equal as strings      ${json['status']}      ok
+    set suite variable   ${OLD_MAC_ADDRESS}  ${json['data']}
+
+
+Get IP Address with invalid interface
+
+    [Documentation]   This test case tries to get the ip addrees with the invalid
+    ...               interface,Expectation is it should get error.
+    [Tags]   network_test
+
+    @{arglist}=   Create List   lo01
+    ${args}=     Create Dictionary   data=@{arglist}
+    ${resp}=    Call Method   ${NW_MANAGER}  GetAddress4    data=${args}
+    should not be equal as strings      ${resp.status_code}     ${HTTP_OK}
+    ${json}=   to json         ${resp.content}
+    should be equal as strings      ${json['status']}       error
+
+Get IP Address with valid interface
+
+    [Documentation]   This test case tries to get the ip addrees with the invalid
+    ...               interface,Expectation is it should get error.
+    [Tags]   network_test
+
+    @{arglist}=   Create List   eth0
+    ${args}=     Create Dictionary   data=@{arglist}
+    ${resp}=    Call Method   ${NW_MANAGER}  GetAddress4    data=${args}
+    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
+    ${json}=   to json         ${resp.content}
+    should be equal as strings      ${json['status']}      ok
+
+
+Set the IP address on invalid Interface            lo01     1.1.1.1        255.255.255.0     1.1.1.1     error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]    This test case tries to set the ip addrees with the invalid
+    ...               interface,Expectation is it should get error
+
+Set invalid IP address on the valid interface      eth0     ab.cd.ef.gh    255.255.255.0     1.1.1.1     error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]    This test case tries to set the invalid ip addrees on  the interface
+    ...               Expectation is it should get error.
+
+
+Set IP address with invalid subnet mask            eth0       2.2.2.2        av.ih.jk.lm       1.1.1.1     error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]   This test case tries to set the ip addrees on  the interface
+   ...               with invalid subnet mask,Expectation is it should get error.
+
+Set empty IP address                              eth0     ${EMPTY}       255.255.255.0     1.1.1.1     error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]   This test case tries to set the NULL ip addrees on  the interface
+   ...               Expectation is it should get error.
+
+Set empty subnet mask                             eth0       2.2.2.2        ${EMPTY}          1.1.1.1     error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]   This test case tries to set the ip addrees on  the interface
+   ...               with empty subnet mask,Expectation is it should get error.
+
+Set empty gateway                                 eth0       2.2.2.2        255.255.255.0     ${EMPTY}    error
+
+   [Tags]   network_test
+   [Template]    AddNetworkInfo
+   [Documentation]   This test case tries to set the ip addrees on  the interface
+   ...               with empty gateway,Expectation is it should get error.
+
+
+Get IP Address type
+    [Tags]   GOOD-PATH
+    [Documentation]   This test case tries to set existing ipaddress address and
+    ...               later tries to verify that ip address type is set to static
+    ...               due to the operation.
+
+    ${networkInfo}=    Get networkInfo from the interface    eth0
+    ${result}=  convert to integer     ${networkInfo['data'][1]}
+
+    ${CURRENT_MASK}=    calcDottedNetmask     ${result}
+    ${CURRENT_IP}=      set variable    ${networkInfo['data'][2]}
+    ${CURRENT_GATEWAY}=   set variable    ${networkInfo['data'][3]}
+
+    ${arglist}=    Create List    eth0    ${CURRENT_IP}   ${CURRENT_MASK}   ${CURRENT_GATEWAY}
+    ${args}=     Create Dictionary   data=@{arglist}
+    run keyword and ignore error   Call Method  ${NW_MANAGER}  SetAddress4  data=${args}
+
+    Wait For Host To Ping       ${CURRENT_IP}
+
+    Wait Until Keyword Succeeds    30 sec    5 sec    Initialize OpenBMC
+
+    @{arglist}=   Create List   eth0
+    ${args}=     Create Dictionary   data=@{arglist}
+    ${resp}=    Call Method   ${NW_MANAGER}   GetAddressType    data=${args}
+    ${json}=   to json         ${resp.content}
+    Should Be Equal    ${json['data']}    STATIC
+    should be equal as strings      ${json['status']}      ok
+
+*** Keywords ***
+
+Get networkInfo from the interface
+
+    [Documentation]   This keyword is used to match the given ip with the configured one.
+    ...               returns true if match successfull else false
+    ...               eg:- Outout of getAddress4
+    ...               NewFormat:-{"data": [ 2,25,"9.3.164.147","9.3.164.129"],"message": "200 OK","status": "ok"}
+    ...               OldFormat:-
+    ...               {"data": [[[2,25,0,128,"9.3.164.177"],[2,8,254,128,"127.0.0.1"]],"9.3.164.129"],
+    ...                "message": "200 OK", "status": "ok"}
+
+    [Arguments]    ${intf}
+    @{arglist}=    Create List   ${intf}
+    ${args}=       Create Dictionary   data=@{arglist}
+    ${resp}=       Call Method   ${NW_MANAGER}  GetAddress4    data=${args}
+    should be equal as strings      ${resp.status_code}     ${HTTP_OK}
+    ${json}=   to json         ${resp.content}
+    log to console   ${json['data'][2]}
+    log to console   ${json['data'][3]}
+    [Return]    ${json}
+
+AddNetworkInfo
+    [Arguments]    ${intf}      ${address}    ${mask}   ${gateway}  ${result}
+
+    ${arglist}=    Create List    ${intf}    ${address}  ${mask}   ${gateway}
+    ${args}=       Create Dictionary   data=@{arglist}
+    ${resp}=       Call Method   ${NW_MANAGER}  SetAddress4    data=${args}
+    should not be equal as strings      ${resp.status_code}     ${HTTP_OK}
+    ${json}=   to json         ${resp.content}
+    should be equal as strings      ${json['status']}       ${result}