xref: /openbmc/docs/REDFISH-cheatsheet.md (revision 2c204426)
1# Redfish cheat sheet
2This document is intended to provide a set of [Redfish][1] client commands for OpenBMC usage.
3(Using CURL commands)
4
5## Query Redfish Service Root
6```
7export bmc=xx.xx.xx.xx
8curl -k https://${bmc}/redfish/v1
9```
10
11---
12
13## Establish Redfish connection session
14##### Method 1
15```
16export bmc=xx.xx.xx.xx
17curl --insecure -X POST -D headers.txt https://${bmc}/redfish/v1/SessionService/Sessions -d    '{"UserName":"root", "Password":"0penBmc"}'
18```
19A file, headers.txt, will be created. Find the `"X-Auth-Token"`
20in that file. Save it away in an env variable like so:
21
22```
23export bmc_token=<token>
24```
25
26#####  Method 2
27```
28export bmc=xx.xx.xx.xx
29export token=`curl -k -H "Content-Type: application/json" -X POST https://${bmc}/login -d '{"username" :  "root", "password" :  "0penBmc"}' | grep token | awk '{print $2;}' | tr -d '"'`
30curl -k -H "X-Auth-Token: $token" https://${bmc}/redfish/v1/...
31```
32Note: Method 2 is used in this document.
33
34---
35
36## View Redfish Objects
37```
38curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Chassis
39curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Managers
40curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Systems
41```
42
43---
44
45## Host power
46Host soft power off:
47```
48curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "GracefulShutdown"}'
49```
50
51Host hard power off:
52```
53curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "ForceOff"}'
54```
55
56Host power on:
57```
58curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "On"}'
59```
60
61Reboot Host:
62```
63curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/Systems/system/Actions/ComputerSystem.Reset -d '{"ResetType": "GracefulRestart"}'
64```
65
66---
67
68## Log entry
69Display logging entries:
70```
71curl -k -H "X-Auth-Token: $token" -X GET https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Entries
72```
73
74Delete logging entries:
75```
76curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/Systems/system/LogServices/EventLog/Actions/LogService.Reset
77```
78
79---
80
81## Firmware ApplyTime:
82```
83curl -k -H "X-Auth-Token: $token" -X PATCH -d '{ "ApplyTime":"Immediate"}' https://${bmc}/redfish/v1/UpdateService
84```
85
86or
87
88```
89curl -k -H "X-Auth-Token: $token" -X PATCH -d '{ "ApplyTime":"OnReset"}' https://${bmc}/redfish/v1/UpdateService
90```
91
92---
93
94## Firmware update
95Firmware update:
96Note the `<image file path>` must be a tarball.
97
98```
99curl -k -H "X-Auth-Token: $token" -H "Content-Type: application/octet-stream" -X POST -T <image file path> https://${bmc}/redfish/v1/UpdateService
100```
101TFTP Firmware update using TransferProtocol:
102Note: The `<image file path>` contains the address of the TFTP service: `xx.xx.xx.xx/obmc-phosphor-xxxxx-xxxxxxxxx.static.mtd.tar`
103
104```
105curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate -d '{"TransferProtocol":"TFTP","ImageURI":"<image file path>"}'
106```
107TFTP Firmware update with protocol in ImageURI:
108```
109curl -k -H "X-Auth-Token: $token" -X POST https://${bmc}/redfish/v1/UpdateService/Actions/UpdateService.SimpleUpdate -d '{"ImageURI":"tftp://<image file path>"}'
110```
111
112---
113
114## Update "root" password
115Change password to "0penBmc1":
116```
117curl -k -H "X-Auth-Token: $token" -X PATCH -d '{"Password": "0penBmc1"}' https://${bmc}/redfish/v1/AccountService/Accounts/root
118```
119
120---
121
122## BIOS firmware boot control
123Enter into BIOS setup on boot
124```
125curl -k -H "X-Auth-Token: $token" -X PATCH https://${bmc}/redfish/v1/Systems/system -d '{"Boot":{"BootSourceOverrideEnabled": "Continuous","BootSourceOverrideTarget": "BiosSetup"}}'
126```
127
128Fully boot
129```
130curl -k -H "X-Auth-Token: $token" -X PATCH https://${bmc}/redfish/v1/Systems/system -d '{"Boot":{"BootSourceOverrideEnabled": "Disabled","BootSourceOverrideTarget": "None"}}'
131```
132
133Change Legacy/EFI selector (valid only if host is based on the x86 CPU)
134```
135curl -k -H "X-Auth-Token: $token" -X PATCH https://${bmc}/redfish/v1/Systems/system -d '{"Boot":{"BootSourceOverrideEnabled": "Once","BootSourceOverrideTarget": "None","BootSourceOverrideMode": "UEFI"}}'
136```
137
138[1]: https://www.dmtf.org/standards/redfish
139