namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.TestSupport; /// One prerequisite probe's outcome. returns many of these. /// Short diagnostic id — e.g. service:aaBootstrap, sql:ZB, registry:ArchestrA.Framework. /// Which subsystem the probe belongs to — lets callers filter (e.g. "Historian warns don't gate the core Galaxy smoke"). /// Outcome. /// One-line specific message an operator can act on — "aaGR not installed — install the Galaxy Repository role from the System Platform setup" beats "failed". public sealed record PrerequisiteCheck( string Name, PrerequisiteCategory Category, PrerequisiteStatus Status, string Detail); public enum PrerequisiteStatus { /// Prerequisite is met; no action needed. Pass, /// Soft dependency missing — stack still runs but some feature (e.g. logging) is degraded. Warn, /// Hard dependency missing — live tests can't proceed; surfaces this. Fail, /// Probe wasn't applicable in this environment (e.g. non-Windows host, Historian not installed). Skip, } public enum PrerequisiteCategory { /// Platform sanity — process bitness, OS platform, DCOM/RPCSS. Environment, /// Hard-required AVEVA Windows services (aaBootstrap, aaGR, NmxSvc). AvevaCoreService, /// Soft-required AVEVA Windows services (aaLogger, aaUserValidator) — warn only. AvevaSoftService, /// ArchestrA Framework install markers (registry + files). AvevaInstall, /// MXAccess COM server registration + file on disk. MxAccessCom, /// SQL Server reachability + ZB database presence + deployed-object count. GalaxyRepository, /// Historian services (optional — only required for HistoryRead IPC paths). AvevaHistorian, /// OtOpcUa-side services (OtOpcUa, OtOpcUaGalaxyHost) + third-party deps (GLAuth). OtOpcUaService, }