namespace ZB.MOM.WW.MxGateway.Server.Alarms; /// /// Well-known reason strings carried on the alarm feed's /// AlarmProviderStatus message. Shared between the producer /// () and consumers (e.g. the dashboard /// provider badge) so the two cannot drift on a magic string. /// public static class AlarmProviderReasons { /// /// Reason set when the monitor starts in subtag mode because /// MxGateway:Alarms:Fallback:Mode is ForceSubtag — a /// deliberate configuration, not a runtime failover. Lets the dashboard /// distinguish a forced subtag mode from an unexpected degraded failover. /// public const string ForcedSubtag = "Forced subtag mode (configuration)"; /// /// Reason prefix set when the effective mode can need the subtag watch-list /// (Auto or ForceSubtag) but the list resolved to zero targets, so the /// subtag provider covers no alarms. In Auto this is a warning about the /// standby, not about the currently-serving alarm manager, which is why the dashboard /// renders it against the ALARMMGR mode as a coverage badge rather than a failover. /// public const string SubtagWatchListEmpty = "Subtag watch-list is empty: the subtag provider covers no alarms"; /// /// Reason prefix set when Galaxy Repository alarm discovery was enabled but failed, so /// the watch-list carries only what configuration contributed and may be incomplete /// . Distinct from : discovery failing with a /// usable config-only list is a completeness warning, not a total loss of coverage. /// public const string SubtagDiscoveryFailed = "Galaxy Repository alarm discovery failed: the subtag watch-list may be incomplete"; /// /// Reason prefix set when a re-resolution at the failover edge produced a different /// watch-list than the one sent at SubscribeAlarms. The worker keeps the /// list it was given for the life of the subscription, so the difference is reported /// rather than applied; a monitor restart re-resolves and re-sends. /// public const string SubtagWatchListStale = "Subtag watch-list differs from the one the worker is using"; }