1description: >
2   Implementation of BMC state management.  When rebooting we are in
3   transition.  When Ready all services required are running
4   successfully.  When we are Not Ready this implies not all services
5   have started that are required to be.
6
7properties:
8   - name: RequestedBMCTransition
9     type: enum[self.Transition]
10     default: 'None'
11     description: >
12         The desired BMC transition
13
14   - name: CurrentBMCState
15     type: enum[self.BMCState]
16     description: >
17         The current state of the BMC and is a read-only property.
18
19   - name: LastRebootTime
20     type: uint64
21     description: >
22        The last time at which the BMC came out of a reboot as
23        determined by its uptime, in epoch time, in milliseconds.
24
25   - name: LastRebootCause
26     type: enum[self.RebootCause]
27     default: 'Unknown'
28     description: >
29         The last BMC reboot cause
30
31enumerations:
32   - name: Transition
33     description: >
34       The desired transition for the BMC firmware
35     values:
36       - name: 'Reboot'
37         description: >
38           BMC system should be rebooted
39       - name: 'HardReboot'
40         description: >
41           BMC system should be non-gracefully rebooted.
42       - name: 'None'
43         description: >
44           No transition is in progress
45
46   - name: BMCState
47     description: >
48       The current state of the BMC firmware
49     values:
50       - name: 'Ready'
51         description: >
52           Ready implies all services started and are running successfully
53       - name: 'NotReady'
54         description: >
55           Not ready implies not all services have started or are not running successfully
56       - name: 'UpdateInProgress'
57         description: >
58           UpdateInProgress implies BMC is in firmware update mode. CurrentBMCState
59           will be set to "UpdateInProgress" while starting image download and
60           reset to Ready, once activation is done or error case during update process.
61       - name: 'Quiesced'
62         description: >
63           BMC firmware is quiesced. The BMC firmware is enabled but either
64           unresponsive or only processing a restricted set of commands. This
65           state may be the result of a service within the BMC going into a
66           failed state.
67
68   - name: RebootCause
69     description: >
70       The recorded reboot cause of the BMC
71     values:
72       - name: 'POR'
73         description: >
74           Last reboot is caused by Power-On-Reset
75       - name: 'PinholeReset'
76         description: >
77           Last reboot is caused by pinhole reset
78       - name: 'Watchdog'
79         description: >
80           Last reboot is caused by Watchdog
81       - name: 'Unknown'
82         description: >
83           Last reboot is caused by Unknown
84