Architecture #25311
closedArchitecture #24963: Persist compliance in base to know last state for a long time
Remove expected reports from NodeStatusReport
Description
The NodeStatusReport
object as a field that contains the run analysis: what configuration it should match, if we did get a run, if we did does the run match the expected configuration id, etc.
Today, that run analysis part contains the exepected reports of the expected configuration and of the run configuration. ExpectedReports is a huge and complicated structure, and so here we have it, for each node:
- in a dedicated cache in NodeConfigurationService
,
- in a (big) database table : nodeconfigurations
- one or two more time in the node NodeStatusReport
in cache.
And we don't seems to use the one(s) in NodeStatusReport
once the computation of compliance in ExecutionBatch
is done.
Since we want to persist NodeStatusReport
in database, it looks like we should remove ExpectedReports
from it first and avoid the json codec pain (it already exists, but it still add complexity) and the memory, I/O, and base size.