Project

General

Profile

Actions

Architecture #4585

closed

Remove Rule-dependant parameters like ${rudder.common.target.nodeid}

Added by François ARMAND about 10 years ago. Updated almost 10 years ago.

Status:
Rejected
Priority:
N/A
Assignee:
-
Category:
Performance and scalability
Target version:
Effort required:
Name check:
Fix check:
Regression:

Description

We have a mostly unknown and unused feature in the parameter expansion allowing to refer a rule ID and then some of its property as a parameter.

That feature was only used for the common system technique, to allow to use technique section and variable to be used to build the list of children node id of a policy server. But we didn't had all the needed information to be able to implement relay server, and so we chose to use a system variable.

Moreover, the feature is quite complex:

- from an user point of view, because it breaks the natural ordering of Rudder configuration object between rules, groups and directives. In particular, when using it, it's quite easy to introduce cycle leading to unsoundness or to completly unwanted side-effects when modifying something that seems complettly independant, but has an hidden dependency
- from a code point of wiew, because it makes impossible to build static dependency graph between directives and rules, and so forbid a whole class of optimization in the promise generation process (and of course, the code to support that feature is quite hairy and impose in itself both a maintenance penalty for dev and a processing time penalty for users).
- from an evolution point of view, it makes any kind of autorization scheme almost impossible to build efficiently (or at all).

So, now that #4573 is merged and no technique use that feature anymore, we should also remove that "feature".

Remain the question of the removing timeframe. We should deprecate it for one revision before removing it, and so only mark it "deprecated" in 2.10, even if I'm pretty sure that nobody use that feature (even the available documentation at http://www.rudder-project.org/foswiki/Development/ContextedVariables is not correct about it...)


Related issues 2 (0 open2 closed)

Related to Rudder - Bug #4584: Building node configuration in the promise generation process takes a lot of timeRejected2014-03-11Actions
Has duplicate Rudder - Architecture #4778: Optimize promise generation algorithm: Rudder variables lookupReleasedFrançois ARMAND2014-04-29Actions
Actions

Also available in: Atom PDF