Move common keywords into library

Signed-off-by: Prashanth Katti <prkatti1@in.ibm.com>
Change-Id: I7d5a70df26d11ea1c837962463f6e4b202bac1fb
diff --git a/lib/protocol_setting_utils.robot b/lib/protocol_setting_utils.robot
new file mode 100644
index 0000000..ab5e3bf
--- /dev/null
+++ b/lib/protocol_setting_utils.robot
@@ -0,0 +1,134 @@
+*** Settings ***
+
+Documentation  Protocol settings utilities keywords.
+
+Resource         ../lib/resource.robot
+Resource         ../lib/utils.robot
+
+
+*** Keywords ***
+
+Enable SSH Protocol
+    [Documentation]  Enable or disable SSH protocol.
+    [Arguments]  ${enable_value}=${True}
+
+    # Description of argument(s}:
+    # enable_value  Enable or disable SSH, e.g. (true, false).
+
+    ${ssh_state}=  Create Dictionary  ProtocolEnabled=${enable_value}
+    ${data}=  Create Dictionary  SSH=${ssh_state}
+
+    Redfish.Patch  ${REDFISH_NW_PROTOCOL_URI}  body=&{data}
+    ...  valid_status_codes=[${HTTP_NO_CONTENT}]
+
+    # Wait for timeout for new values to take effect.
+    Sleep  ${NETWORK_TIMEOUT}s
+
+
+Verify SSH Login And Commands Work
+    [Documentation]  Verify if SSH connection works and able to run command on SSH session.
+    [Teardown]  Close All Connections
+
+    # Check if we can open SSH connection and login.
+    Open Connection And Login
+
+    # Check if we can run command successfully on SSH session.
+    BMC Execute Command  /sbin/ip addr
+
+
+Verify SSH Protocol State
+    [Documentation]  verify SSH protocol state.
+    [Arguments]  ${state}=${True}
+
+    # Description of argument(s}:
+    # state  Enable or disable SSH, e.g. (true, false)
+
+    # Sample output:
+    # {
+    #   "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol",
+    #   "@odata.type": "#ManagerNetworkProtocol.v1_5_0.ManagerNetworkProtocol",
+    #   "Description": "Manager Network Service",
+    #   "FQDN": "bmc",
+    #  "HTTP": {
+    #    "Port": 0,
+    #    "ProtocolEnabled": false
+    #  },
+    #  "HTTPS": {
+    #    "Certificates": {
+    #      "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates"
+    #    },
+    #    "Port": xxx,
+    #    "ProtocolEnabled": true
+    #  },
+    #  "HostName": "xxxxbmc",
+    #  "IPMI": {
+    #    "Port": xxx,
+    #    "ProtocolEnabled": true
+    #  },
+    #  "Id": "NetworkProtocol",
+    #  "NTP": {
+    #    "NTPServers": [
+    #      "xx.xx.xx.xx",
+    #      "xx.xx.xx.xx",
+    #      "xx.xx.xx.xx"
+    #    ],
+    #    "ProtocolEnabled": true
+    #  },
+    #  "Name": "Manager Network Protocol",
+    #  "SSH": {
+    #    "Port": xx,
+    #    "ProtocolEnabled": true
+    #  },
+    #  "Status": {
+    #    "Health": "OK",
+    #    "HealthRollup": "OK",
+    #    "State": "Enabled"
+    #  }
+
+    ${resp}=  Redfish.Get  ${REDFISH_NW_PROTOCOL_URI}
+    Should Be Equal As Strings  ${resp.dict['SSH']['ProtocolEnabled']}  ${state}
+    ...  msg=Protocol states are not matching.
+
+
+Enable IPMI Protocol
+    [Documentation]  Enable or disable IPMI protocol.
+    [Arguments]  ${enable_value}=${True}
+
+    # Description of argument(s}:
+    # enable_value  Enable or disable IPMI, e.g. (true, false).
+
+    ${ipmi_state}=  Create Dictionary  ProtocolEnabled=${enable_value}
+    ${data}=  Create Dictionary  IPMI=${ipmi_state}
+
+    Redfish.Patch  ${REDFISH_NW_PROTOCOL_URI}  body=&{data}
+    ...  valid_status_codes=[${HTTP_NO_CONTENT}]
+
+    # Wait for timeout for new values to take effect.
+    Sleep  ${NETWORK_TIMEOUT}s
+
+
+Verify IPMI Works
+    [Documentation]  Run IPMI command and return status.
+    [Arguments]  ${sub_cmd}  ${host}=${OPENBMC_HOST}
+
+    # Description of argument(s):
+    # host         BMC host name or IP address.
+    # sub_cmd      The IPMI command string to be executed.
+
+    ${rc}=  Run And Return Rc  ${cmd_prefix} -H ${host} ${sub_cmd}
+    Should Be Equal As Strings  ${rc}  0
+    ...  msg=IPMI is not enabled and commands are failing.
+
+
+Verify IPMI Protocol State
+    [Documentation]  Verify IPMI protocol state.
+    [Arguments]  ${state}=${True}
+
+    # Description of argument(s}:
+    # state  Enable or disable IPMI, e.g. (true, false)
+
+    ${resp}=  Redfish.Get  ${REDFISH_NW_PROTOCOL_URI}
+    Should Be Equal As Strings  ${resp.dict['IPMI']['ProtocolEnabled']}  ${state}
+    ...  msg=Protocol states are not matching.
+
+
diff --git a/redfish/managers/test_bmc_protocol_settings.robot b/redfish/managers/test_bmc_protocol_settings.robot
index a927826..92bbe52 100644
--- a/redfish/managers/test_bmc_protocol_settings.robot
+++ b/redfish/managers/test_bmc_protocol_settings.robot
@@ -1,9 +1,9 @@
 *** Settings ***
 Documentation  Test BMC manager protocol enable/disable functionality.
 
-Resource   ../../lib/resource.robot
 Resource   ../../lib/bmc_redfish_resource.robot
 Resource   ../../lib/openbmc_ffdc.robot
+Resource   ../../lib/protocol_setting_utils.robot
 
 Suite Setup     Redfish.Login
 Suite Teardown  Redfish.Logout
@@ -162,126 +162,3 @@
 
 *** Keywords ***
 
-Enable SSH Protocol
-    [Documentation]  Enable or disable SSH protocol.
-    [Arguments]  ${enable_value}=${True}
-
-    # Description of argument(s}:
-    # enable_value  Enable or disable SSH, e.g. (true, false).
-
-    ${ssh_state}=  Create Dictionary  ProtocolEnabled=${enable_value}
-    ${data}=  Create Dictionary  SSH=${ssh_state}
-
-    Redfish.Patch  ${REDFISH_NW_PROTOCOL_URI}  body=&{data}
-    ...  valid_status_codes=[${HTTP_NO_CONTENT}]
-
-    # Wait for timeout for new values to take effect.
-    Sleep  ${NETWORK_TIMEOUT}s
-
-
-Verify SSH Login And Commands Work
-    [Documentation]  Verify if SSH connection works and able to run command on SSH session.
-    [Teardown]  Close All Connections
-
-    # Check if we can open SSH connection and login.
-    Open Connection And Login
-
-    # Check if we can run command successfully on SSH session.
-    BMC Execute Command  /sbin/ip addr
-
-
-Verify SSH Protocol State
-    [Documentation]  verify SSH protocol state.
-    [Arguments]  ${state}=${True}
-
-    # Description of argument(s}:
-    # state  Enable or disable SSH, e.g. (true, false)
-
-    # Sample output:
-    # {
-    #   "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol",
-    #   "@odata.type": "#ManagerNetworkProtocol.v1_5_0.ManagerNetworkProtocol",
-    #   "Description": "Manager Network Service",
-    #   "FQDN": "bmc",
-    #  "HTTP": {
-    #    "Port": 0,
-    #    "ProtocolEnabled": false
-    #  },
-    #  "HTTPS": {
-    #    "Certificates": {
-    #      "@odata.id": "/redfish/v1/Managers/bmc/NetworkProtocol/HTTPS/Certificates"
-    #    },
-    #    "Port": xxx,
-    #    "ProtocolEnabled": true
-    #  },
-    #  "HostName": "xxxxbmc",
-    #  "IPMI": {
-    #    "Port": xxx,
-    #    "ProtocolEnabled": true
-    #  },
-    #  "Id": "NetworkProtocol",
-    #  "NTP": {
-    #    "NTPServers": [
-    #      "xx.xx.xx.xx",
-    #      "xx.xx.xx.xx",
-    #      "xx.xx.xx.xx"
-    #    ],
-    #    "ProtocolEnabled": true
-    #  },
-    #  "Name": "Manager Network Protocol",
-    #  "SSH": {
-    #    "Port": xx,
-    #    "ProtocolEnabled": true
-    #  },
-    #  "Status": {
-    #    "Health": "OK",
-    #    "HealthRollup": "OK",
-    #    "State": "Enabled"
-    #  }
-    # }
-
-    ${resp}=  Redfish.Get  ${REDFISH_NW_PROTOCOL_URI}
-    Should Be Equal As Strings  ${resp.dict['SSH']['ProtocolEnabled']}  ${state}
-    ...  msg=Protocol states are not matching.
-
-
-Enable IPMI Protocol
-    [Documentation]  Enable or disable IPMI protocol.
-    [Arguments]  ${enable_value}=${True}
-
-    # Description of argument(s}:
-    # enable_value  Enable or disable IPMI, e.g. (true, false).
-
-    ${ipmi_state}=  Create Dictionary  ProtocolEnabled=${enable_value}
-    ${data}=  Create Dictionary  IPMI=${ipmi_state}
-
-    Redfish.Patch  ${REDFISH_NW_PROTOCOL_URI}  body=&{data}
-    ...  valid_status_codes=[${HTTP_NO_CONTENT}]
-
-    # Wait for timeout for new values to take effect.
-    Sleep  ${NETWORK_TIMEOUT}s
-
-
-Verify IPMI Works
-    [Documentation]  Run IPMI command and return status.
-    [Arguments]  ${sub_cmd}  ${host}=${OPENBMC_HOST}
-
-    # Description of argument(s):
-    # host         BMC host name or IP address.
-    # sub_cmd      The IPMI command string to be executed.
-
-    ${rc}=  Run And Return Rc  ${cmd_prefix} -H ${host} ${sub_cmd}
-    Should Be Equal As Strings  ${rc}  0
-    ...  msg=IPMI is not enabled and commands are failing.
-
-
-Verify IPMI Protocol State
-    [Documentation]  Verify IPMI protocol state.
-    [Arguments]  ${state}=${True}
-
-    # Description of argument(s}:
-    # state  Enable or disable IPMI, e.g. (true, false)
-
-    ${resp}=  Redfish.Get  ${REDFISH_NW_PROTOCOL_URI}
-    Should Be Equal As Strings  ${resp.dict['IPMI']['ProtocolEnabled']}  ${state}
-    ...  msg=Protocol states are not matching.