Bug #5881
closedArchitecture #5305: Rewrite techniques so they all use ncf report methods
Architecture #5353: Rewrite reports to use rudder_common_report
Architecture #5689: Rewrite system techniques to use rudder_common_report
rudder_report_generic is not available from failsafe.cf
Description
When running cf-promises on the failsafe.cf (which includes update.cf), since the change in #5689:
# /var/rudder/cfengine-community/bin/cf-promises -f failsafe.cf /var/rudder/cfengine-community/inputs/common/1.0/update.cf:238:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:240:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:270:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:273:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:276:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:279:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:282:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:285:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:288:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:291:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:294:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:297:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:300:0: error: Undefined bundle rudder_common_report with type usebundle /var/rudder/cfengine-community/inputs/common/1.0/update.cf:303:0: error: Undefined bundle rudder_common_report with type usebundle
This is because rudder_common_report comes from rudder_stdlib.cf which is not included in failsafe.cf
I don't want to duplicate all the bundles for reporting in failsafe.cf like we have for other bodies in failsafe.cf, because this would be too much duplication, and inevitably lead to the two versions drifting. I also don't really feel comfortable including the whole of rudder_stdlib.cf in failsafe.cf, because we could very well add a body or a bundle in there that breaks failsafe.cf, and that we should never do.
So, I think the cleanest and simplest solution is to split rudder_stdlib.cf into 2: rudder_stdlib_core.cf for the main reporting and classes bundles that we use ALL THE TIME in Rudder techniques, and rarely change (except for very real bugs in reporting), and keep rudder_stdlib.cf for any other bodies/bundles we want to put in a stdlib. That way, we can safely include rudder_stdlib_core.cf in failsafe.cf and resolve this issue.