Skip to content

Commit

Permalink
Fixes #25936: Port condition_from methods to log v4+
Browse files Browse the repository at this point in the history
  • Loading branch information
Félix Dallidet committed Nov 22, 2024
1 parent 79cac95 commit c59489a
Show file tree
Hide file tree
Showing 4 changed files with 48 additions and 52 deletions.
18 changes: 6 additions & 12 deletions tree/30_generic_methods/condition_from_expression.cf
Original file line number Diff line number Diff line change
Expand Up @@ -70,11 +70,7 @@
bundle agent condition_from_expression(condition, expression)
{
vars:
"old_class_prefix" string => canonify("condition_from_expression_${condition}");
"args" slist => { "${condition}", "${expression}" };
"report_param" string => join("_", args);
"full_class_prefix" string => canonify("condition_from_expression_${report_param}");
"class_prefix" string => string_head("${full_class_prefix}", "1000");
"class_prefix" string => canonify("condition_from_expression_${condition}");

classes:
"${condition}_true" expression => "${expression}",
Expand All @@ -84,13 +80,11 @@ bundle agent condition_from_expression(condition, expression)
scope => "namespace";

methods:
"success" usebundle => _classes_success("${old_class_prefix}");
"success" usebundle => _classes_success("${report_data.method_id}");
"success" usebundle => _classes_success("${class_prefix}");

"report" usebundle => _log_v3("Create the condition ${condition}_{true,false} with ${expression}", "${condition}", "${old_class_prefix}", "${class_prefix}", @{args});
reports:
"Condition ${condition}_true defined"
if => "${condition}_true";
"Condition ${condition}_false defined"
if => "${condition}_false";
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "Condition ${condition}_true was defined", ""),
if => "${condition}_true";
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "Condition ${condition}_false was defined", ""),
if => "${condition}_false";
}
25 changes: 12 additions & 13 deletions tree/30_generic_methods/condition_from_expression_persistent.cf
Original file line number Diff line number Diff line change
Expand Up @@ -71,24 +71,23 @@
bundle agent condition_from_expression_persistent(condition, expression, duration)
{
vars:
"old_class_prefix" string => canonify("condition_from_expression_persistent_${condition}");
"args" slist => { "${condition}", "${expression}", "${duration}" };
"report_param" string => join("_", args);
"full_class_prefix" string => canonify("condition_from_expression_persistent_${report_param}");
"class_prefix" string => string_head("${full_class_prefix}", "1000");
"class_prefix" string => canonify("condition_from_expression_persistent_${condition}");

classes:
"${condition}_true" expression => "${expression}",
persistence => "${duration}",
scope => "namespace";
"${condition}_true" expression => "${expression}",
persistence => "${duration}",
scope => "namespace";

"${condition}_false" expression => "!(${expression})",
persistence => "${duration}",
scope => "namespace";
"${condition}_false" expression => "!(${expression})",
persistence => "${duration}",
scope => "namespace";

methods:
"success" usebundle => _classes_success("${old_class_prefix}");
"success" usebundle => _classes_success("${report_data.method_id}");
"success" usebundle => _classes_success("${class_prefix}");

"report" usebundle => _log_v3("Create the persistent condition ${condition}_{true,false} with ${expression}", "${condition}", "${old_class_prefix}", "${class_prefix}", @{args});
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "The condition ${condition}_true was defined and will persist for ${duration} minutes", ""),
if => "${expression}";
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "The condition ${condition}_false was defined and will persist for ${duration} minutes", ""),
if => "!(${expression})";
}
22 changes: 10 additions & 12 deletions tree/30_generic_methods/condition_from_variable_existence.cf
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,21 @@
bundle agent condition_from_variable_existence(condition, variable_name)
{
vars:
"old_class_prefix" string => canonify("condition_from_variable_existence_${condition}");
"args" slist => { "${condition}", "${variable_name}" };
"report_param" string => join("_", args);
"full_class_prefix" string => canonify("condition_from_variable_existence_${report_param}");
"class_prefix" string => string_head("${full_class_prefix}", "1000");
"class_prefix" string => canonify("condition_from_variable_existence_${condition}");

classes:

"${condition}_true" expression => isvariable("${variable_name}"),
scope => "namespace";
scope => "namespace";

"${condition}_false" not => isvariable("${variable_name}"),
scope => "namespace";
"${condition}_false" not => isvariable("${variable_name}"),
scope => "namespace";

methods:
"success" usebundle => _classes_success("${old_class_prefix}");
"success" usebundle => _classes_success("${class_prefix}");
"success" usebundle => _classes_success("${report_data.method_id}");
"success" usebundle => _classes_success("${class_prefix}");

"report" usebundle => _log_v3("Create the condition ${condition}_{true,false} from the existence of variable ${variable_name}", "${condition}", "${old_class_prefix}", "${class_prefix}", @{args});
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "The condition ${condition}_true was defined as the variable ${variable_name} was defined", ""),
if => isvariable("${variable_name}");
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "The condition ${condition}_false was defined as the variable ${variable_name} was undefined", ""),
not => isvariable("${variable_name}");
}
35 changes: 20 additions & 15 deletions tree/30_generic_methods/condition_from_variable_match.cf
Original file line number Diff line number Diff line change
Expand Up @@ -55,37 +55,42 @@
bundle agent condition_from_variable_match(condition, variable_name, expected_match)
{
vars:
"old_class_prefix" string => canonify("condition_from_variable_match_${condition}");
"args" slist => { "${condition}", "${variable_name}", "${expected_match}" };
"report_param" string => join("_", args);
"full_class_prefix" string => canonify("condition_from_variable_match_${report_param}");
"class_prefix" string => string_head("${full_class_prefix}", "1000");
"class_prefix" string => canonify("condition_from_variable_match_${condition}");

classes:
"pass1" expression => "any";
"pass2" expression => "pass1";
"pass3" expression => "pass2";

pass2::
"var_exists" expression => isvariable("${variable_name}");
"var_exists" expression => isvariable("${variable_name}");

"${condition}_true" and => {regcmp("${expected_match}", "${${variable_name}}"), "var_exists"},
scope => "namespace";
scope => "namespace";

"${condition}_false" or => {"!${condition}_true", "!var_exists"},
scope => "namespace";
scope => "namespace";

methods:
pass3::
"failure" usebundle => _classes_failure("${old_class_prefix}"),
ifvarclass => "!var_exists";
"failure" usebundle => _classes_failure("${report_data.method_id}"),
not => "var_exists";
"failure" usebundle => _classes_failure("${class_prefix}"),
ifvarclass => "!var_exists";
not => "var_exists";

"success" usebundle => _classes_success("${old_class_prefix}"),
ifvarclass => "var_exists";
"success" usebundle => _classes_success("${report_data.method_id}"),
if => "var_exists";
"success" usebundle => _classes_success("${class_prefix}"),
ifvarclass => "var_exists";
if => "var_exists";

"report" usebundle => _log("Create the condition ${condition}_{true,false} from the result of regex: /${expected_match}/ on variable ${variable_name}", "${old_class_prefix}", "${class_prefix}", @{args});
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}","Condition ${condition}_true was defined as the variable ${variable_name} matched the expected pattern", ""),
if => and( regcmp("${expected_match}", "${${variable_name}}"),
"var_exists"
);
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "Condition ${condition}_false was defined as the variable ${variable_name} did not match the expected pattern", ""),
if => and( "var_exists",
not(regcmp("${expected_match}", "${${variable_name}}"))
);
"${report_data.method_id}" usebundle => log_rudder_v4("${condition}", "Condition ${condition}_false was defined as the variable ${variable_name} was undefined", ""),
not => "var_exists";
}

0 comments on commit c59489a

Please sign in to comment.