When one host has its availability changed, the application lifecycle
framework will call a hook with an 'evaluate-reapply' operation and
with the 'relative_timing' field missing.
This hook should block the 'apply' and 'evaluate-reapply' operations
if Ceph is unresponvise. Not blocking these operations will lead to a
scenario where the ceph-csi configuration gets broken and the PVCs
fail to attach, mount and umount.
Example of hook_info dict when the 'evaluate-reapply' operation is
started:
{'mode': 'auto', 'lifecycle_type': 'check', 'operation': \
'evaluate-reapply', 'extra': {'trigger': {'type': \
'host-availability-updated', 'availability': 'available'}}}
Example of hook_info dict when the 'apply' operations is started:
{'mode': 'auto', 'lifecycle_type': 'check', 'relative_timing': 'pre',\
'operation': 'apply', 'extra': {}}
This change fixes the semantic check for 'evaluate-reapply' and
'apply' operations, considering the 'relative_timing' field.
Test-Plan:
PASS: On AIO-DX restart the standby controller and when it is back
'available' verify if the auto reapply is blocked if Ceph
status is not HEALTH_OK
PASS: Verify application update is working
PASS: Verify application auto apply is working
PASS: Add a new storage tier and verify the application is
re-applied correctly.
PASS: Manual and auto application apply is blocked when Ceph status
is not HEALTH_OK
Closes-bug: 2097570
Change-Id: I09bc9b0bfe53ddae3008ae164a177f3ea5a6ae63
Signed-off-by: Felipe Sanches Zanoni <Felipe.SanchesZanoni@windriver.com>