Actions
Bug #19866
closedRudderlang must support dynamic built classes
Pull Request:
Severity:
Major - prevents use of part of Rudder | no simple workaround
UX impact:
User visibility:
Effort required:
Priority:
0
Name check:
To do
Fix check:
To do
Regression:
Description
When editing a technique, it is a common usecase to use a variable call in a "condition" field.
It does not seem to be possible to recreate such beahviour in rudderlang at the moment.
For instance, here I want to define a prefix from a string variable, which will be used in my condition field later.
This is possible from the technique editor, by defining a "variable from string", and them calling it in the condition field of the block parameter.
let bench = "CIS_RHEL7" condition("${bench}_1_1_1_1").from_variable_existence("node.properties[${bench}][1.1.1.1]") if "${bench}_1_1_1_1_false" => { command("lsmod | grep -q cramfs").execution_result("1", "") command("modprobe -n -v cramfs | grep -qE 'install (/bin/true|/bin/false)'").execution_result("1", "") }
But when compiling this in rudderlang, I have the following error:
An error occurred, could not create content from 'technique.rd': technique.rd:37:7 near 'if "${bench}_1_1_1_1_false" =>' !--> The following keyword was expected: 'enum expression'. An error occurred, could not create content: Command was "/opt/rudder/bin/rudderc" "technique" "read" "-i" "technique.rd"
In fact, the conditions inputs in rudderlang seem to only expect static class types of variable. And we are unable to build them dynamically from string manipulation.
Actions