# Witherspoon power supply policy for PDM.
#
# Create an error if a power supply is removed while the system is powered on

- name: power supply0
  class: group
  group: path
  members:
    - meta: POWER SUPPLY
      path: /xyz/openbmc_project/inventory/system/chassis/power_supply0

- name: power supply1
  class: group
  group: path
  members:
    - meta: POWER SUPPLY
      path: /xyz/openbmc_project/inventory/system/chassis/power_supply1

- name: power supplies
  description: >
    'A Witherspoon has two power supplies to monitor.'
  class: group
  group: path
  members:
    - meta: POWER SUPPLY
      path: /xyz/openbmc_project/inventory/system/chassis/power_supply0
    - meta: POWER SUPPLY
      path: /xyz/openbmc_project/inventory/system/chassis/power_supply1

- name: chassis state
  description: >
    'A Witherspoon has a single chassis to monitor.'
  class: group
  group: path
  members:
    - meta: CHASSISSTATE
      path: /xyz/openbmc_project/state/chassis0

- name: power supply present
  description: >
    'Monitor the presence state of each power supply.'
  class: group
  group: property
  type: boolean
  members:
    - interface: xyz.openbmc_project.Inventory.Item
      meta: PRESENT
      property: Present

- 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: watch power supply present
  description: >
    'Trigger logic on power supply presence state changes.'
  class: watch
  watch: property
  paths: power supplies
  properties: power supply present
  callback: check power

- name: watch chassis state
  description: >
    'Trigger logic on chassis power state changes.'
  class: watch
  watch: property
  paths: chassis state
  properties: chassis powered
  callback: check power

- name: check power
  description: >
    'If the chassis has power, check for power supplies.'
  class: condition
  condition: count
  paths: chassis state
  properties: chassis powered
  callback: check power supplies
  countop: '>'
  countbound: 0
  op: '=='
  bound: xyz.openbmc_project.State.Chassis.PowerState.On

- name: check power supplies
  description: >
    'Create an error if a power supply is not present.'
  class: callback
  callback: group
  members:
    - check power supply0 presence
    - check power supply1 presence

- name: check power supply0 presence
  description: >
    'If this condition passes power supply0 has been unplugged for more than
     5 seconds. Count present power supplies rather than non-present
     power supplies since the latter would pass if the power supply 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 power supply inventory object implementation.'
  class: condition
  condition: count
  paths: power supply0
  properties: power supply present
  defer: 5000000us
  callback: notpresent power supply0 error
  countop: '<'
  countbound: 1
  op: '=='
  bound: true

- name: check power supply1 presence
  description: >
    'If this condition passes power supply1 has been unplugged for more than
     5 seconds.'
  class: condition
  condition: count
  paths: power supply1
  properties: power supply present
  defer: 5000000us
  callback: notpresent power supply1 error
  countop: '<'
  countbound: 1
  op: '=='
  bound: true

- name: notpresent power supply0 error
  class: callback
  callback: elog
  paths: power supply0
  properties: power supply present
  error: xyz::openbmc_project::Inventory::Error::NotPresent
  metadata:
    - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
      value: /xyz/openbmc_project/inventory/system/chassis/power_supply0
      type: string

- name: notpresent power supply1 error
  class: callback
  callback: elog
  paths: power supply1
  properties: power supply present
  error: xyz::openbmc_project::Inventory::Error::NotPresent
  metadata:
    - name: xyz::openbmc_project::Inventory::NotPresent::CALLOUT_INVENTORY_PATH
      value: /xyz/openbmc_project/inventory/system/chassis/power_supply1
      type: string
