summaryrefslogtreecommitdiff
path: root/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml')
-rw-r--r--meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml322
1 files changed, 0 insertions, 322 deletions
diff --git a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml b/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml
deleted file mode 100644
index a279cfefa..000000000
--- a/meta-openbmc-machines/meta-openpower/meta-ibm/meta-witherspoon/recipes-phosphor/fans/witherspoon-fan-policy/water-cooled.yaml
+++ /dev/null
@@ -1,322 +0,0 @@
-# Water cooled Witherspoon fan policy for PDM.
-#
-# A water cooled Witherspoon requires a minimum of two functional fan
-# enclosures or four functional fan rotors across all enclosures.
-# If the number of functional fan enclosures is below two, soft poweroff
-# the system, whereas if the number of fan rotors drop below four, an
-# immediate hard poweroff of the system occurs.
-
-- name: fan enclosures
- description: >
- 'A water cooled Witherspoon has three 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/fan2
- - meta: FAN
- path: /xyz/openbmc_project/inventory/system/chassis/motherboard/fan3
-
-- name: fan rotors
- description: >
- 'A water cooled Witherspoon has six 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/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 water 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 water cooled
-
-- name: check cooling type
- description: >
- 'If this condition passes the chassis is water cooled.'
- class: condition
- condition: count
- paths: chassis
- properties: chassis water cooled
- callback: check power
- countop: '=='
- countbound: 1
- 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 two functional fan enclosures and at least
- four 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: 2
- 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