Fix for ConnectionError.

Why the fix is required:
ConnectionError is seen as some REST operation are taking more then 10 seconds.

The fix addresses the following:
   1. Get Operation on enumerate url is now done with 30 secs timeout.
   2. REST Login timeout is now set equivalent to GET, POST and PUT request timeout.
   3. Default REST Login Timeout is set to 10 secs (which is same as GET, POST, PUT, and Delete)
   4. GET, PUT and POST operation can now be called with timeout other then defaut 10sec.

Resolves openbmc/openbmc-test-automation#164

Change-Id: I0fa42d36c9b80fe30346d23258daf5300eb23b6a
Signed-off-by: Rahul Maheshwari <rahulmaheshwari@in.ibm.com>
diff --git a/lib/rest_client.robot b/lib/rest_client.robot
index 1cd1439..eb1a28a 100644
--- a/lib/rest_client.robot
+++ b/lib/rest_client.robot
@@ -60,47 +60,48 @@
 
 *** Keywords ***
 OpenBMC Get Request
-    [Arguments]    ${uri}    &{kwargs}
+    [Arguments]    ${uri}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
     Log Request    method=Get    base_uri=${base_uri}    args=&{kwargs}
-    Initialize OpenBMC
-    ${ret}=    Get Request    openbmc    ${base_uri}    &{kwargs}  timeout=10
+    Initialize OpenBMC    ${timeout}
+    ${ret}=    Get Request    openbmc    ${base_uri}    &{kwargs}  timeout=${timeout}
     Log Response    ${ret}
     [Return]    ${ret}
 
 OpenBMC Post Request
-    [Arguments]    ${uri}    &{kwargs}
+    [Arguments]    ${uri}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
     ${headers}=     Create Dictionary   Content-Type=application/json
     set to dictionary   ${kwargs}       headers     ${headers}
     Log Request    method=Post    base_uri=${base_uri}    args=&{kwargs}
-    Initialize OpenBMC
-    ${ret}=    Post Request    openbmc    ${base_uri}    &{kwargs}  timeout=10
+    Initialize OpenBMC    ${timeout}
+    ${ret}=    Post Request    openbmc    ${base_uri}    &{kwargs}  timeout=${timeout}
     Log Response    ${ret}
     [Return]    ${ret}
 
 OpenBMC Put Request
-    [Arguments]    ${uri}    &{kwargs}
+    [Arguments]    ${uri}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
     ${headers}=     Create Dictionary   Content-Type=application/json
     set to dictionary   ${kwargs}       headers     ${headers}
     Log Request    method=Put    base_uri=${base_uri}    args=&{kwargs}
-    Initialize OpenBMC
-    ${ret}=    Put Request    openbmc    ${base_uri}    &{kwargs}  timeout=10
+    Initialize OpenBMC    ${timeout}
+    ${ret}=    Put Request    openbmc    ${base_uri}    &{kwargs}  timeout=${timeout}
     Log Response    ${ret}
     [Return]    ${ret}
 
 OpenBMC Delete Request
-    [Arguments]    ${uri}    &{kwargs}
+    [Arguments]    ${uri}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
     Log Request    method=Delete    base_uri=${base_uri}    args=&{kwargs}
-    Initialize OpenBMC
-    ${ret}=    Put Request    openbmc    ${base_uri}    &{kwargs}  timeout=10
+    Initialize OpenBMC    ${timeout}
+    ${ret}=    Put Request    openbmc    ${base_uri}    &{kwargs}  timeout=${timeout}
     Log Response    ${ret}
     [Return]    ${ret}
 
 Initialize OpenBMC
-    Create Session    openbmc    ${AUTH_URI}  timeout=5   max_retries=3
+    [Arguments]    ${timeout}=10
+    Create Session    openbmc    ${AUTH_URI}  timeout=${timeout}   max_retries=3
     ${headers}=     Create Dictionary   Content-Type=application/json
     @{credentials} =   Create List     ${OPENBMC_USERNAME}      ${OPENBMC_PASSWORD}
     ${data} =   create dictionary   data=@{credentials}
@@ -123,27 +124,27 @@
     Log    ${msg}    console=True
 
 Read Attribute
-    [arguments]    ${uri}    ${attr}
-    ${resp} =   OpenBMC Get Request    ${uri}/attr/${attr}
+    [arguments]    ${uri}    ${attr}    ${timeout}=10
+    ${resp} =   OpenBMC Get Request    ${uri}/attr/${attr}    timeout=${timeout}
     ${content}=     To Json    ${resp.content}
     [return]    ${content["data"]}
 
 Write Attribute
-    [Arguments]    ${uri}      ${attr}    &{kwargs}
+    [Arguments]    ${uri}      ${attr}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
-    ${resp} =       openbmc put request    ${base_uri}/attr/${attr}     &{kwargs}
+    ${resp} =       openbmc put request    ${base_uri}/attr/${attr}    timeout=${timeout}    &{kwargs}
     should be equal as strings      ${resp.status_code}     ${HTTP_OK}
     ${json} =   to json         ${resp.content}
 
 Read Properties
-    [arguments]    ${uri}
-    ${resp} =   OpenBMC Get Request    ${uri}   timeout=10
+    [arguments]    ${uri}    ${timeout}=10
+    ${resp} =   OpenBMC Get Request    ${uri}    timeout=${timeout}
     Should Be Equal As Strings    ${resp.status_code}    ${HTTP_OK}
     ${content}=     To Json    ${resp.content}
     [return]    ${content["data"]}
 
 Call Method
-    [arguments]    ${uri}    ${method}    &{kwargs}
+    [arguments]    ${uri}    ${method}    ${timeout}=10    &{kwargs}
     ${base_uri}=    Catenate    SEPARATOR=    ${DBUS_PREFIX}    ${uri}
-    ${resp} =       openbmc post request    ${base_uri}/action/${method}     &{kwargs}
+    ${resp} =       openbmc post request    ${base_uri}/action/${method}    timeout=${timeout}    &{kwargs}
     [return]     ${resp}
diff --git a/tests/test_sensors.robot b/tests/test_sensors.robot
index ebbbe78..34ad450 100644
--- a/tests/test_sensors.robot
+++ b/tests/test_sensors.robot
@@ -275,7 +275,7 @@
 Setup The Suite
 
     Open Connection And Log In
-    ${resp} =       Read Properties         /org/openbmc/enumerate
+    ${resp} =       Read Properties         /org/openbmc/enumerate   timeout=30
     Set Suite Variable      ${SYSTEM_INFO}          ${resp}
     log Dictionary          ${resp}