diff --git a/lib/dump_utils.robot b/lib/dump_utils.robot
index 5516f3f..9070e0f 100644
--- a/lib/dump_utils.robot
+++ b/lib/dump_utils.robot
@@ -242,13 +242,12 @@
     Should Be Equal As Integers  ${rc}  ${0}
     ...  msg=BMC execute command return code is not zero.
 
-Create User Initiated BMC Dump Using Redfish
-    [Documentation]  Trigger user initiated BMC dump via Redfish and return task id.
+Create User Initiated BMC Dump Via Redfish
+    [Documentation]  Generate user initiated BMC dump via Redfish and return the dump id number (e.g., "5").
 
     ${payload}=  Create Dictionary  DiagnosticDataType=Manager
-    ${resp}=  Redfish.Post
-    ...  /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
-    ...  body=${payload}  valid_status_codes=[${HTTP_ACCEPTED}, ${HTTP_OK}]
+    ${resp}=  Redfish.Post  /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
+    ...  body=${payload}  valid_status_codes=[${HTTP_ACCEPTED}]
 
     # Example of response from above Redfish POST request.
     # "@odata.id": "/redfish/v1/TaskService/Tasks/0",
@@ -257,8 +256,27 @@
     # "TaskState": "Running",
     # "TaskStatus": "OK"
 
+    Wait Until Keyword Succeeds  5 min  15 sec  Check Task Completion  ${resp.dict['Id']}
     ${task_id}=  Set Variable  ${resp.dict['Id']}
-    [Return]  ${task_id}
+
+    ${task_dict}=  Redfish.Get Properties  /redfish/v1/TaskService/Tasks/${task_id}
+
+    # Example of HttpHeaders field of task details.
+    # "Payload": {
+    #   "HttpHeaders": [
+    #     "Host: <BMC_IP>",
+    #      "Accept-Encoding: identity",
+    #      "Connection: Keep-Alive",
+    #      "Accept: */*",
+    #      "Content-Length: 33",
+    #      "Location: /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2"]
+    #    ],
+    #    "HttpOperation": "POST",
+    #    "JsonBody": "{\"DiagnosticDataType\":\"Manager\"}",
+    #     "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
+    # }
+
+    [Return]  ${task_dict["Payload"]["HttpHeaders"][-1].split("/")[-1]}
 
 Auto Generate BMC Dump
     [Documentation]  Auto generate BMC dump.
@@ -340,10 +358,8 @@
     # Description of argument(s):
     # task_id        Task ID.
 
-    ${status}=  Get Task Status  ${task_id}
-    Run Keyword Unless  '${status}' == 'Cancelled' or '${status}' == 'Completed'
-    ...  Fail  Task is still running.
-    [Return]  ${status}
+    ${task_dict}=  Redfish.Get Properties  /redfish/v1/TaskService/Tasks/${task_id}
+    Should Be Equal As Strings  ${task_dict['TaskState']}  Completed
 
 Get Dump ID And Status
     [Documentation]  Return dump ID and status.
diff --git a/redfish/extended/test_bmc_dump.robot b/redfish/extended/test_bmc_dump.robot
index 5f7b8fa..b97b851 100644
--- a/redfish/extended/test_bmc_dump.robot
+++ b/redfish/extended/test_bmc_dump.robot
@@ -67,7 +67,7 @@
     [Documentation]  Verify that a BMC dump can be downloaded to the local machine.
     [Tags]  Verify_Download_BMC_Dump
 
-    ${dump_id}=  Create User Initiated Dump
+    ${dump_id}=  Create User Initiated BMC Dump Via Redfish
     ${dump_dict}=  Get Dump Dict
     ${bmc_dump_name}=  Fetch From Right  ${dump_dict['${dump_id}']}  /
     ${bmc_dump_checksum}  ${stderr}  ${rc}=  BMC Execute Command
diff --git a/redfish/extended/test_websocket.robot b/redfish/extended/test_websocket.robot
index 6ab49f2..afb86e6 100755
--- a/redfish/extended/test_websocket.robot
+++ b/redfish/extended/test_websocket.robot
@@ -78,7 +78,7 @@
 
     Redfish Delete All BMC Dumps
     Start Websocket Monitor  dump
-    ${dump_id}=  Create User Initiated BMC Dump Using Redfish
+    ${dump_id}=  Create User Initiated BMC Dump Via Redfish
     Check Existence Of BMC Dump File  ${dump_id}
 
     # Check that the monitor received notification of the dump.
diff --git a/redfish/managers/test_bmc_dumps.robot b/redfish/managers/test_bmc_dumps.robot
index b2112d9..6ee639c 100644
--- a/redfish/managers/test_bmc_dumps.robot
+++ b/redfish/managers/test_bmc_dumps.robot
@@ -179,43 +179,6 @@
 
 *** Keywords ***
 
-Create User Initiated BMC Dump Via Redfish
-    [Documentation]  Generate user initiated BMC dump via Redfish and return the dump id number (e.g., "5").
-
-    ${payload}=  Create Dictionary  DiagnosticDataType=Manager
-    ${resp}=  Redfish.Post  /redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData
-    ...  body=${payload}  valid_status_codes=[${HTTP_ACCEPTED}]
-
-    # Example of response from above Redfish POST request.
-    # "@odata.id": "/redfish/v1/TaskService/Tasks/0",
-    # "@odata.type": "#Task.v1_4_3.Task",
-    # "Id": "0",
-    # "TaskState": "Running",
-    # "TaskStatus": "OK"
-
-    Wait Until Keyword Succeeds  5 min  15 sec  Is Task Completed  ${resp.dict['Id']}
-    ${task_id}=  Set Variable  ${resp.dict['Id']}
-
-    ${task_dict}=  Redfish.Get Properties  /redfish/v1/TaskService/Tasks/${task_id}
-
-    # Example of HttpHeaders field of task details.
-    # "Payload": {
-    #   "HttpHeaders": [
-    #     "Host: <BMC_IP>",
-    #      "Accept-Encoding: identity",
-    #      "Connection: Keep-Alive",
-    #      "Accept: */*",
-    #      "Content-Length: 33",
-    #      "Location: /redfish/v1/Managers/bmc/LogServices/Dump/Entries/2"]
-    #    ],
-    #    "HttpOperation": "POST",
-    #    "JsonBody": "{\"DiagnosticDataType\":\"Manager\"}",
-    #     "TargetUri": "/redfish/v1/Managers/bmc/LogServices/Dump/Actions/LogService.CollectDiagnosticData"
-    # }
-
-    [Return]  ${task_dict["Payload"]["HttpHeaders"][-1].split("/")[-1]}
-
-
 Get BMC Dump Entries
     [Documentation]  Return BMC dump ids list.
 
@@ -245,17 +208,6 @@
     [return]  ${usage_output}
 
 
-Is Task Completed
-    [Documentation]  Verify if the given task is completed.
-    [Arguments]   ${task_id}
-
-    # Description of argument(s):
-    # task_id        Id of task which needs to be checked.
-
-    ${task_dict}=  Redfish.Get Properties  /redfish/v1/TaskService/Tasks/${task_id}
-    Should Be Equal As Strings  ${task_dict['TaskState']}  Completed
-
-
 Test Teardown Execution
     [Documentation]  Do test teardown operation.
 
