Project

General

Profile

Actions

Architecture #7155

closed

Stable class identifier

Added by Benoît PECCATTE over 8 years ago. Updated 8 months ago.

Status:
Rejected
Priority:
N/A
Assignee:
-
Category:
Generic methods
Effort required:
Name check:
Fix check:
Regression:
No

Description

Class outcomes are based on a class prefix. Currently this class prefix is based on a class parameter.
When this parameter changes, the outcome name change, which means we have to modify all conditions based on it.

Reports are based on the same class prefix and the method name.
When we call twice the same methods with the same parameter, the reports will be done only once.
When we call twice a method with a variable, Rudder will be unable to distinguish between both reports.

The solution to these problems is to have a new identifier. It will be based on the promiser stack.
This promiser stack is currently only a patch https://github.com/cfengine/core/pull/2301 but has a chance to make it to the next cfengine version.
We will keep a compatibility code as long as it is needed.

This issues tracks all the steps needed to implement this.


Subtasks 13 (0 open13 closed)

Architecture #7156: Modify generic methods to define and use the new class_prefixReleasedNicolas CHARLESActions
Architecture #7178: Modify generic methods to define and use the new class_prefixReleasedNicolas CHARLESActions
Architecture #7191: Modify generic methods to define and use the new class_prefix (bug)ReleasedNicolas CHARLESActions
Bug #7227: Tests do not pass after #7156ReleasedNicolas CHARLESActions
Bug #7436: Techniques that call _logger, _logger_default or logger_rudder will break because these methods take 4 arguments now and no upgrade path has been plannedReleasedBenoît PECCATTEActions
Architecture #7458: _rudder_common_reports_generic bundle is broken - uses old_class_prefix but should be class_prefixReleasedBenoît PECCATTEActions
Bug #7459: Reporting is broken for several ncf generic methods because the new class_prefix is not computed without this.callers_promisers, and any conditions using class_prefix are incorrectly evaluatedReleasedBenoît PECCATTEActions
Architecture #7157: Use the new class_prefix in reportingReleasedNicolas CHARLESActions
User story #7158: Modify ncf api to adapt to new class_prefixReleasedVincent MEMBRÉActions
User story #7159: Adapt ncf builder to use the new class prefixRejectedActions
User story #7171: Add methods to help creating new generic methodsReleasedNicolas CHARLESActions
Architecture #7192: Rewrite the service_* methodsReleasedNicolas CHARLESActions
Architecture #7193: Write expected report in the new formatRejectedBenoît PECCATTEActions

Related issues 1 (0 open1 closed)

Related to Rudder - Architecture #6101: We should be able to call ncf generic methods more than onceRejectedActions
Actions #2

Updated by Benoît PECCATTE over 8 years ago

  • Subject changed from Be able to have stable class identifier to Stable class identifier
Actions #3

Updated by Alexis Mousset over 7 years ago

  • Category set to Generic methods
Actions #4

Updated by Alexis Mousset about 7 years ago

  • Related to Architecture #6101: We should be able to call ncf generic methods more than once added
Actions #5

Updated by Alexis Mousset about 7 years ago

  • Tracker changed from User story to Architecture
Actions #6

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from master to 4.2.2
Actions #7

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.2 to 4.2.3
Actions #8

Updated by Vincent MEMBRÉ over 6 years ago

  • Target version changed from 4.2.3 to 4.2.4
Actions #9

Updated by Benoît PECCATTE about 6 years ago

  • Target version changed from 4.2.4 to Ideas (not version specific)
Actions #10

Updated by Alexis Mousset over 5 years ago

The promiser stack solution will not be implemented, we will instead generate unique IDs like for Rudder built-in directives, it is easier to use, maintain and debug.

We can keep this issue open, as the goal will still be to have stable classes.

Actions #11

Updated by Benoît PECCATTE over 2 years ago

  • Project changed from 41 to Rudder
  • Category changed from Generic methods to Generic methods
Actions #12

Updated by Alexis Mousset 8 months ago

  • Status changed from New to Rejected
  • Regression set to No

weuse a report id (uuid-based) in logger v4 instead. Closing.

Actions

Also available in: Atom PDF