Firmware update path change

Changes:
   - Added response code
   - Resolved path issue for redfish
     firmware update

Tested:
   - Ran successfully
     redfish/update_service/test_redfish_bmc_code_update.robot

Change-Id: I6c45bf9178c20e40eb43915e6820c69320976495
Signed-off-by: Sushil Singh <susilsi7@in.ibm.com>
diff --git a/redfish/update_service/test_redfish_bmc_code_update.robot b/redfish/update_service/test_redfish_bmc_code_update.robot
index ccfde94..8f177e3 100644
--- a/redfish/update_service/test_redfish_bmc_code_update.robot
+++ b/redfish/update_service/test_redfish_bmc_code_update.robot
@@ -191,18 +191,15 @@
 
     Redfish Power Off  stack_mode=skip
 
-    # Check and set the update path.
-    # Old - /redfish/v1/UpdateService/
-    # New - /redfish/v1/UpdateService/update
 
-    ${resp}=  Redfish.Get  /redfish/v1/UpdateService/update
-    ...  valid_status_codes=[${HTTP_OK},${HTTP_NOT_FOUND}]
+Get Redfish Update Service URI
+    [Documentation]  Get Redfish firmware update URI.
 
-    # If the method is not found, set update URI to old method.
-    Run Keyword If  ${resp.status} == ${HTTP_NOT_FOUND}
-    ...  Set Suite Variable  ${REDFISH_UPDATE_URI}  /redfish/v1/UpdateService
+    ${update_url}=  Redfish.Get Attribute  ${REDFISH_BASE_URI}UpdateService  HttpPushUri
 
-    Log To Console  Update URI: ${REDFISH_UPDATE_URI}
+    Log To Console  Firmware update URI: ${update_url}
+
+    [Return]  ${update_url}
 
 
 Redfish Update Firmware
@@ -221,11 +218,20 @@
 
     ${file_bin_data}=  OperatingSystem.Get Binary File  ${image_file_path}
 
+
     Log To Console   Start uploading image to BMC.
-    Upload Image To BMC  ${REDFISH_UPDATE_URI}  timeout=${600}  data=${file_bin_data}
+
+    # URI : /redfish/v1/UpdateService
+    # "HttpPushUri": "/redfish/v1/UpdateService/update",
+
+    ${redfish_update_uri}=  Get Redfish Update Service URI
+
+    ${resp}=  Upload Image To BMC  ${redfish_update_uri}  timeout=${600}  data=${file_bin_data}
     Log To Console   Completed image upload to BMC.
 
-    ${task_inv}=  Check Task With Match TargetUri  ${REDFISH_UPDATE_URI}
+    Sleep  5s
+
+    ${task_inv}=  Check Task With Match TargetUri  ${redfish_update_uri}
 
     Rprint Vars  task_inv
 
@@ -253,12 +259,17 @@
     Rprint Vars  state
 
     Set ApplyTime  policy=${apply_time}
-    Redfish Upload Image  ${REDFISH_BASE_URI}UpdateService  ${IMAGE_FILE_PATH}
+
+    # URI : /redfish/v1/UpdateService
+    # "HttpPushUri": "/redfish/v1/UpdateService/update",
+
+    ${redfish_update_uri}=  Get Redfish Update Service URI
+    Redfish Upload Image  ${redfish_update_uri}  ${IMAGE_FILE_PATH}
 
     ${first_image_id}=  Get Latest Image ID
     Rprint Vars  first_image_id
     Sleep  5s
-    Redfish Upload Image  ${REDFISH_BASE_URI}UpdateService  ${ALTERNATE_IMAGE_FILE_PATH}
+    Redfish Upload Image  ${redfish_update_uri}  ${ALTERNATE_IMAGE_FILE_PATH}
 
     ${second_image_id}=  Get Latest Image ID
     Rprint Vars  second_image_id
@@ -285,7 +296,7 @@
     # count    Loop count.
 
     FOR  ${index}  IN RANGE  ${count}
-      Configure Hostname  hostname=${HOSTNAME}[${index}]  status_code=[${HTTP_INTERNAL_SERVER_ERROR}]
+      Configure Hostname  hostname=${HOSTNAME}[${index}]  status_code=[${HTTP_OK}]
     END
 
 
@@ -373,7 +384,12 @@
     ${file_bin_data}=  OperatingSystem.Get Binary File  ${image_file_path}
 
     Log To Console   Start uploading image to BMC.
-    Upload Image To BMC  ${REDFISH_BASE_URI}UpdateService  timeout=${600}  data=${file_bin_data}
+
+    # URI : /redfish/v1/UpdateService
+    # "HttpPushUri": "/redfish/v1/UpdateService/update",
+
+    ${redfish_update_uri}=  Get Redfish Update Service URI
+    Upload Image To BMC  ${redfish_update_uri}  timeout=${600}  data=${file_bin_data}
     Log To Console   Completed image upload to BMC.
 
     Sleep  5
@@ -381,10 +397,10 @@
     ${image_id}=  Get New Image ID
     Rprint Vars  image_id
 
-    ${task_inv}=  Check Task With Match TargetUri  /redfish/v1/UpdateService
+    ${task_inv}=  Check Task With Match TargetUri  ${redfish_update_uri}
     Rprint Vars  task_inv
 
-    Wait Until Keyword Succeeds  1 min  10 sec
+    Wait Until Keyword Succeeds  2 min  10 sec
     ...  Verify Task Progress State  ${task_inv}  ${task_inv_dict['TaskStarting']}
 
     Run Operation On BMC  ${operation}  ${count}