User story #2881
closedAllow user to choose order of Directive application in a Rule
Description
As reported by Michael Gliwinski (http://www.rudder-project.org/pipermail/rudder-users/2012-September/000094.html), sometimes, we would like to be able to specify the order of application of Directive in a Rule, because it does matter, even when convergence is taken into account [1]
So, we would like to be able to specify directive order in a rules.
More preciselly, that means being able to specify promise order in the bundlesequence.
Today, that's IMPOSSIBLE2.
A cool and clean solution would be to have a new Rule configuration screen, with one tab for each directive, and the tab order will give the directive orders.
[1], ok, actually if it matters, it must be that in some way, we don't converge, or that we forget some convergence cases. But sometimes, it is WAY easier to convergence to a given goal starting from some point than from other, and being able to specify order would allow that.
[2] because we "merge" directives from the same Technique in only one promise for a given node, for historical reason2, so that:
- given Technique A and B,
- directive A1 and A2 from A, B1 and B2 from B,
- rules R1 having A1 and B1, and R2 having A2 and B2, applied (in fine) to the same node N,
- then the generated bundlesequence for N looks like: bundlesequence(...some promise, A(1+2), ..., B(1+2), ...)
So that we just can't have R1 defining order A1 then B1 and R2 defining order B2 then A2. See #2880 for more details.