diff options
Diffstat (limited to 'meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml')
-rw-r--r-- | meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml | 328 |
1 files changed, 0 insertions, 328 deletions
diff --git a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml b/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml deleted file mode 100644 index d60aa9179..000000000 --- a/meta-ibm/meta-witherspoon/recipes-phosphor/fans/fan-policy/witherspoon/air-cooled.yaml +++ /dev/null @@ -1,328 +0,0 @@ -# Air cooled Witherspoon fan policy for PDM. -# -# An air cooled Witherspoon requires a minimum of three functional fans -# enclosures or six functional fan rotors across all enclosures. -# If the number of functional fan enclosures is below three, soft poweroff -# the system, whereas if the number of fan rotors drop below six, an -# immediate hard poweroff of the system occurs. - -- name: fan enclosures - description: > - 'An air cooled Witherspoon has four fan enclosures to monitor.' - class: group - group: path - members: - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3 - -- name: fan rotors - description: > - 'An air cooled Witherspoon has eight fan rotors to monitor.' - class: group - group: path - members: - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_0 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan0/fan0_1 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_0 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan1/fan1_1 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_0 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan2/fan2_1 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_0 - - meta: FAN - path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3/fan3_1 - -- name: chassis state - description: > - 'Witherspoon has a single chassis to monitor.' - class: group - group: path - members: - - meta: CHASSISSTATE - path: /xyz/openbmc_project/state/chassis0 - -- name: chassis - description: > - 'Witherspoon has a single chassis to monitor.' - class: group - group: path - members: - - meta: CHASSIS - path: /xyz/openbmc_project/inventory/system/chassis - -- name: fan present - description: > - 'Monitor the presence state of each fan.' - class: group - group: property - type: boolean - members: - - interface: xyz.openbmc_project.Inventory.Item - meta: PRESENT - property: Present - -- name: fan functional - description: > - 'Monitor the functional state of each fan.' - class: group - group: property - type: boolean - members: - - interface: xyz.openbmc_project.State.Decorator.OperationalStatus - meta: FUNCTIONAL - property: Functional - -- name: chassis powered - description: > - 'Monitor the chassis power state.' - class: group - group: property - type: string - members: - - interface: xyz.openbmc_project.State.Chassis - meta: CHASSIS_STATE - property: CurrentPowerState - -- name: chassis air cooled - description: > - 'Monitor the chassis cooling type.' - class: group - group: property - type: boolean - members: - - interface: xyz.openbmc_project.Inventory.Decorator.CoolingType - meta: COOLING_TYPE - property: WaterCooled - -- name: watch fan present - description: > - 'Trigger logic on fan enclosure presence state changes.' - class: watch - watch: property - paths: fan enclosures - properties: fan present - callback: check cooling type - -- name: watch fan functional - description: > - 'Trigger logic on fan enclosure functional state changes.' - class: watch - watch: property - paths: fan enclosures - properties: fan functional - callback: check cooling type - -- name: watch fan rotor functional - description: > - 'Trigger logic on fan rotor functional state changes.' - class: watch - watch: property - paths: fan rotors - properties: fan functional - callback: check cooling type - -- name: watch chassis state - description: > - 'Trigger logic on chassis power state changes.' - class: watch - watch: property - paths: chassis state - properties: chassis powered - callback: check cooling type - -- name: watch cooling type - description: > - 'Maintain a cache of the chassis cooling type.' - class: watch - watch: property - paths: chassis - properties: chassis air cooled - -- name: check cooling type - description: > - 'If this condition passes the chassis is air cooled.' - class: condition - condition: count - paths: chassis - properties: chassis air cooled - callback: check power - countop: '==' - countbound: 0 - op: '==' - bound: true - -- name: check power - description: > - 'If the chassis has power, check fans.' - class: condition - condition: count - paths: chassis state - properties: chassis powered - callback: check fans - countop: '>' - countbound: 0 - op: '==' - bound: xyz.openbmc_project.State.Chassis.PowerState.On - -- name: check fans - description: > - 'Verify there are at least three functional fan enclosures and at least - six functional fan rotors, power off if not.' - class: callback - callback: group - members: - - check group presence - - check group functional enclosures - - check group functional rotors - -- name: check group presence - description: > - 'If this condition passes more than one fan has been unplugged - for more than 25 seconds. Shut the system down. Count present - fans rather than non-present fans since the latter would pass - if the fan has not been created for some reason. - - For a more detailed definition of unplugged, consult the documentation - of xyz.openbmc_project.Inventory.Item and/or the documentation - of the fan inventory object implementation.' - class: condition - condition: count - paths: fan enclosures - properties: fan present - defer: 25000000us - callback: log and shutdown - countop: '<' - countbound: 3 - op: '==' - bound: true - -- name: check group functional enclosures - description: > - 'If this condition passes more than one fan enclosure in the group has been - marked as nonfunctional for five seconds. Shut the system down. - - For a more detailed definition of nonfunctional, consult the documentation - of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the - documentation of the fan inventory object implementation.' - class: condition - condition: count - paths: fan enclosures - properties: fan functional - defer: 5000000us - callback: log and shutdown - countop: '>' - countbound: 1 - op: '==' - bound: false - -- name: check group functional rotors - description: > - 'If this condition passes more than two fan rotors in the group have been - marked as nonfunctional for five seconds. Immediately power off. - - For a more detailed definition of nonfunctional, consult the documentation - of xyz.openbmc_project.State.Decorator.OperationalStatus and/or the - documentation of the fan inventory object implementation.' - class: condition - condition: count - paths: fan rotors - properties: fan functional - defer: 5000000us - callback: log and poweroff - countop: '>' - countbound: 2 - op: '==' - bound: false - -- name: log and poweroff - description: > - 'Immediately poweroff, log an event in the journal, and create an - error log.' - class: callback - callback: group - members: - - hard poweroff - - log hard poweroff - - create shutdown error - -- name: log and shutdown - description: > - 'Shut the system down, log an event in the journal, and create an - error log.' - class: callback - callback: group - members: - - shutdown - - log shutdown - - create shutdown error - -- name: hard poweroff - description: > - 'Immediately power off the system.' - class: callback - callback: method - service: org.freedesktop.systemd1 - path: /org/freedesktop/systemd1 - interface: org.freedesktop.systemd1.Manager - method: StartUnit - args: - - value: obmc-chassis-hard-poweroff@0.target - type: string - - value: replace - type: string - -- name: shutdown - description: > - 'Shut down the system.' - class: callback - callback: method - service: org.freedesktop.systemd1 - path: /org/freedesktop/systemd1 - interface: org.freedesktop.systemd1.Manager - method: StartUnit - args: - - value: obmc-host-shutdown@0.target - type: string - - value: replace - type: string - -- name: log hard poweroff - description: > - 'Log a hard poweroff event to the systemd journal.' - class: callback - callback: journal - paths: chassis state - properties: chassis powered - severity: ERR - message: Immediate poweroff of system. There are not enough functional fans. - -- name: log shutdown - description: > - 'Log a shutdown event to the systemd journal.' - class: callback - callback: journal - paths: chassis state - properties: chassis powered - severity: ERR - message: Request shutdown of system. There are not enough functional fans. - -- name: create shutdown error - description: > - 'Create a Fan Shutdown Error log.' - class: callback - callback: elog - paths: chassis state - properties: chassis powered - error: xyz::openbmc_project::State::Shutdown::Inventory::Error::Fan |