ha/service-mgmt/sm-common-1.0.0/src
Bin Qian edc8a56472 Introduce failover FSM
Introduce failover FSM to handle communication failure between
controllers.
Failover FSM has 4 states:
Normal: when system running with full redundency
Fail Pending: communication failure occured
Failed: the controller is determined as failure. Its peer will
        assume service
Survived: the controller is determined as survivor. Its peer has
        failed

The controllers are in one of the below possible state pairs:
normal/normal, fail-pending/fail-pending, failed/survived

A failed controller will not resume responsbility before the
system restores its full redundency (normal/normal)

A survivor will not fail before the system restores its
full redundency (normal/normal)

Future implementation may allow an administrator to force
a failed controller become active, to manually recover
(with possiblity of losing data), should the survivor is
no longer capable to provide service.

Story: 2003577
Task: 26404

Change-Id: I51635e9e60b6fb6bad89e06c9f08d3f28e21db82
Signed-off-by: Bin Qian <bin.qian@windriver.com>
2018-09-18 08:08:40 -04:00
..
Makefile sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_debug.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_debug.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_debug_thread.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_debug_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_eru_db.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_eru_db.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_eru_dump.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_eru_main.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_eru_process.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_eru_process.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_hw.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_hw.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_limits.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_list.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_netlink.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_netlink.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_stats.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_stats.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_utils.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_node_utils.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_selobj.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_selobj.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_sha512.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_sha512.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_thread_health.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_thread_health.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_time.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_time.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_timer.c sm components to use C++11 standard 2018-08-20 15:44:01 +00:00
sm_timer.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_trap.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_trap.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_trap_thread.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_trap_thread.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_types.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_types.h Introduce failover FSM 2018-09-18 08:08:40 -04:00
sm_util_types.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_util_types.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_utils.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_utils.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_uuid.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_uuid.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_main.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_module.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_module.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_nfs.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_nfs.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_process.c StarlingX open source release updates 2018-05-31 07:36:26 -07:00
sm_watchdog_process.h StarlingX open source release updates 2018-05-31 07:36:26 -07:00