#
# This only applies to t3.LogEvent
# Policies are executed from top to bottom in the file.
#
# pattern=  look for this actual wording from the logs
# egrid=    pointer into the Event Advisor component field
# severity= determines Notice(0), Warning(1), Error(2), Down(3)
# action=   determines Actionable(1), Non-Actionable(0)
# extended= uses the extended policies file to set severity
# key=      use this value to combine all the log entries of an array
#           matching the pattern into a single event (e.g. disks, pcus,
#           etc. = temp_threshold)
#           appended to the <device_id>.<fru_id> to make the event
#           more specific. only used to make more specific event. can
#           be used in conjunction with egrid but egrid does not have to
#           be the same value.
# code=     run some additional filtering code
# shortkey= Like key, but no <fru_id>, so all log entries are in the
#           same event if they have the same shortkey disregrading which
#           fru they came from.

[policy1]
pattern=/warning temperature threshold exceeded/
egrid=temp_threshold
key=temp_threshold
severity=2

[policy2]
pattern=/u(\d)ctr ISP.+LOOP DOWN/
known=1
severity=2
egrid=controller.port
key=$PORT

[policy21]
pattern=/ Disabled/
egrid=fru_disabled
severity=2

[policy3]
pattern=/: W: .*, Replace battery/
egrid=power.battery.replace
key=replaceBattery
severity=2

# warning that comes from a shell are a Notice and not actionable
[policy40]
pattern=/ sh\d+\[.*\]: [NIEW]: (.*)/
severity=0
egrid=shell_commands


[policy41]
pattern=/: [EW]: u\dctr XOR:/
key=controller
severity=2
egrid=controller.XOR

[policy42]
pattern=/: E: u\d+d\d+: Missing$/
severity=2
egrid=disk.missing
code=ARRAY::disk_missing


# runs when Sense key is present in the following 1/2 lines
[policy101]
pattern=/: [INWE]: u\dd\d/
pattern2=/Sense Key = (\w+), Asc = (\w+), Ascq = (\w+)/
pattern3=/Sense Key = (\w+), Asc = (\w+), Ascq = (\w+)/
key=senseKey
extended=senseKey
egrid=disk.senseKey

[policy102]
pattern=/: [N]: u\dd\d+ SVD_PATH_FAILBACK/
severity=0
shortkey=1
key=failback
action=0
egrid=disk.loopMode

[policy103]
pattern=/: [W]: u\dd\d+ SVD_PATH_FAILOVER/
severity=1
shortkey=1
key=failover
action=0
egrid=disk.loopMode


[policy4]
pattern=/: W: (.*)/
severity=1
egrid=array_warning

[policy45]
pattern=/ RAS: (.*)/
severity=1
egrid=array_warning

[policy46]
pattern=/has faulty port on loop/
severity=2
egrid=faulty_port


[policy5]
pattern=/: E: (.*)/
severity=2
egrid=array_error

[policy6]
pattern=/: WARNING: /
severity=2
egrid=$comp1

[policy7]
pattern=/: N: u\dpcu\d: Refreshing battery/
severity=0
key=refreshBattery
egrid=power.battery.refresh
code=ARRAY::refreshing_battery

[policy71]
pattern=/: N: u\dctr: Enabled/
severity=0
egrid=controller

[policy711]
pattern=/: N: u\dctr.*Parity on stripe/
severity=0
egrid=device_notice


#[policy8]
#pattern=/: N: u\dpcu\d.*Battery not OK/
#severity=2
#egrid=power.battery
#code=ARRAY::battery_not_ok

[policy9]
pattern=/: N: u\dpcu\d.*PCU\d hold time/
severity=2
egrid=power.battery
action=1


[policy10]
pattern=/: [INWE]: u\dd\d/
pattern2=/Sense/
pattern3=/Sense/
key=senseKey
egrid=disk.senseKey
severity=0

[policy110]
pattern=/: [NI]: u\dd\d.*disk error 3\b/
key=disk_error
egrid=disk.error
severity=0


[policy11]
pattern=/: [NI]: u\dd\d.*disk error/
key=disk_error
egrid=disk.error
severity=2

# generic Notice or Info about a disk is considered warning/actionable
# shortkey mean one event can have notices from different disks.
[policy12]
pattern=/: N: u\dd\d/
key=log
egrid=disk.log
severity=1
shortkey=1
action=0


