xref: /openbmc/openbmc-test-automation/lib/dump_utils.robot (revision bfa16ee4f68964bd5dd20618cb3b293584b78c69)
1*** Settings ***
2Documentation  This module provides general keywords for dump.
3
4
5*** Variables ***
6
7*** Keywords ***
8
9Create User Initiated Dump
10    [Documentation]  Generate user initiated dump and return
11    ...  dump id (e.g 1, 2 etc).
12
13    ${data}=  Create Dictionary  data=@{EMPTY}
14    ${resp}=  OpenBMC Post Request
15    ...  ${DUMP_URI}/action/CreateDump  data=${data}
16
17    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
18    ${json}=  To JSON  ${resp.content}
19
20    # REST "CreateDump" JSON response.
21    # {
22    #    "data": null,
23    #    "message": "200 OK",
24    #    "status": "ok"
25    # }
26    Run Keyword If  ${json["data"]} == ${None}
27    ...  Fail  Dump id returned null.
28
29    ${dump_id}=  Set Variable  ${json["data"]}
30
31    Wait Until Keyword Succeeds  3 min  15 sec  Check Dump Existence
32    ...  ${dump_id}
33
34    [Return]  ${dump_id}
35
36
37Verify No Dump In Progress
38    [Documentation]  Verify no dump in progress.
39
40    ${dump_progress}  ${stderr}  ${rc}=  BMC Execute Command  ls /tmp
41    Should Not Contain  ${dump_progress}  obmcdump
42
43
44Check Dump Existence
45    [Documentation]  Verify if given dump exist.
46    [Arguments]  ${dump_id}
47
48    # Description of Argument(s):
49    # dump_id  An integer value that identifies a particular dump
50    #          object(e.g. 1, 3, 5).
51
52    ${resp}=  OpenBMC Get Request  ${DUMP_ENTRY_URI}/${dump_id}
53    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
54
55
56Delete BMC Dump
57    [Documentation]  Deletes a given bmc dump.
58    [Arguments]  ${dump_id}
59
60    # Description of Argument(s):
61    # dump_id  An integer value that identifies a particular dump (e.g. 1, 3).
62
63    ${data}=  Create Dictionary  data=@{EMPTY}
64    ${resp}=  OpenBMC Post Request
65    ...  ${DUMP_ENTRY_URI}/${dump_id}/action/Delete  data=${data}
66
67    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
68
69Delete All Dumps
70    [Documentation]  Delete all dumps.
71
72    # Check if dump entries exist, if not return.
73    ${resp}=  OpenBMC Get Request  ${DUMP_ENTRY_URI}list  quiet=${1}
74    Return From Keyword If  ${resp.status_code} == ${HTTP_NOT_FOUND}
75
76    # Get the list of dump entries and delete them all.
77    ${dump_entries}=  Get URL List  ${DUMP_ENTRY_URI}
78    :FOR  ${entry}  IN  @{dump_entries}
79    \  ${dump_id}=  Fetch From Right  ${entry}  /
80    \  Delete BMC Dump  ${dump_id}
81
82
83Delete All BMC Dump
84    [Documentation]  Delete all BMC dump entries using "DeleteAll" interface.
85
86    ${data}=  Create Dictionary  data=@{EMPTY}
87    ${resp}=  Openbmc Post Request  ${DUMP_URI}action/DeleteAll  data=${data}
88    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_OK}
89
90Dump Should Not Exist
91    [Documentation]  Verify that BMC dumps do not exist.
92
93    ${resp}=  OpenBMC Get Request  ${DUMP_ENTRY_URI}/list  quiet=${1}
94    Should Be Equal As Strings  ${resp.status_code}  ${HTTP_NOT_FOUND}
95
96Check Existence of BMC Dump file
97    [Documentation]  Verify existence of BMC dump file.
98    [Arguments]  ${dump_id}
99
100    # Description of argument(s):
101    # dump_id  BMC dump identifier
102
103    ${dump_check_cmd}=  Set Variable
104    ...  ls /var/lib/phosphor-debug-collector/dumps
105
106    # Output of sample BMC Execute command with '2' as dump id is as follows
107    # ls /var/lib/phosphor-debug-collector/dumps/2
108    # obmcdump_2_XXXXXXXXXX.tar.xz
109    ${file_there}  ${stderr}  ${rc}=  BMC Execute Command
110    ...  ${dump_check_cmd}/${dump_id}
111    Should End With  ${file_there}  tar.xz  msg=BMC dump file not found.
112