Project

General

Profile

Actions

Bug #3716

closed

Parametrization of directive with rule parameter must be the whole value

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

Status:
Rejected
Priority:
4
Category:
Web - Config management
Target version:
Severity:
UX impact:
User visibility:
Effort required:
Priority:
Name check:
Fix check:
Regression:

Description

In #3689, we change the behavior of node id parametrization so that they can be in the middle of other value. We didn't change the behavior of rule parametrization, so here it is.

Actions #1

Updated by Nicolas PERRON almost 11 years ago

  • Target version changed from 2.4.7 to 2.4.8
Actions #2

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.4.8 to 2.4.9
Actions #3

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.4.9 to 2.4.10
Actions #4

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.4.10 to 2.4.11
Actions #5

Updated by Nicolas PERRON over 10 years ago

  • Status changed from New to Discussion
  • Assignee set to François ARMAND
  • Target version changed from 2.4.11 to 2.4.12

I don't understand the issue. Could you explain, François ?

Actions #6

Updated by François ARMAND over 10 years ago

See #3689 for details:

The rudder variables ${rudder.(.*).(.*)} only work when the complete value of the variable is this rudder variable
It is not possible to do "datacenter-${rudder.param.datacenter1}", which is a bit of a shame
It's true for all variables:

node variable (2.4)
rule variable (2.4)
param variable (2.7)

[...]

Well, I believe there is two completly different topic here:

- parameter and node parametrization (ie: ${rudder.param.XXX} and ${rudder.node.XXXX}) : parametrization binding does not change the cardinality of parametrized variable (ie: if a variable has 3 values with one containing ${rudder.node.id}, then after binding, it still has 3 values, one changed)
- rule parametrization: binding can change (and actually do change, has we are using it almost exclusively to get the list of hostname on which is applied the "hasPolicyServer" rule). That case is hard (what about a variable containing two such parametrization ? How do you specify if you want the full combination space (ie [a,b] & [1,2] => [ [a,1], [a,2], [b,1], [b.2]]), or a sequential walk ([a,1], [b,2]). On which order is the walk is that case ? Etc etc).

So, I think we don't want to expose the second case to user for now, and perhaps we have to think back about how to manage it - I'm not really sur it's "paramtrization" has in "replace that ${} by a value", but more a kind of magic API call that give back a SET of values, and the number of such API call is clearly defined. On the other hand, if we want to expose inventories parameter in ${}, we will have to manage multivalued parametrization.

All in all, implementing the first case will be mostly trivial in 2.7 (not before, because of the refactoring work in deployment service done at that point). The second point need more thinking.

The "second case" above is the one we are talking about in that ticket.

Actions #7

Updated by Nicolas PERRON over 10 years ago

  • Target version changed from 2.4.12 to 2.4.13
Actions #8

Updated by Vincent MEMBRÉ about 10 years ago

  • Target version changed from 2.4.13 to 2.6.11

Since 2.4 is not maintained anymore, retargeting to branch 2.6

Actions #9

Updated by Vincent MEMBRÉ about 10 years ago

  • Target version changed from 2.6.11 to 2.6.12
Actions #10

Updated by Vincent MEMBRÉ about 10 years ago

  • Target version changed from 2.6.12 to 2.6.13
Actions #11

Updated by Vincent MEMBRÉ almost 10 years ago

  • Target version changed from 2.6.13 to 2.6.14
Actions #12

Updated by Jonathan CLARKE almost 10 years ago

  • Target version changed from 2.6.14 to 2.6.16
Actions #13

Updated by Jonathan CLARKE almost 10 years ago

  • Target version changed from 2.6.16 to 2.6.17
Actions #14

Updated by Nicolas PERRON over 9 years ago

  • Target version changed from 2.6.17 to 2.6.18
Actions #15

Updated by Matthieu CERDA over 9 years ago

  • Target version changed from 2.6.18 to 2.6.19
Actions #16

Updated by Vincent MEMBRÉ over 9 years ago

  • Target version changed from 2.6.19 to 2.6.20
Actions #17

Updated by François ARMAND about 9 years ago

  • Status changed from Discussion to Rejected
  • Target version changed from 2.6.20 to 2.10.10

Rule parametrization was an obscure, undocumented feature that we get ride of in 2.10, so I'm gladly rejecting that one.

Actions

Also available in: Atom PDF