Actions
Bug #24226
closedrudderc canonifies already canonified condition expression resulting in loss of logic operators such as ) and |
Pull Request:
Severity:
Major - prevents use of part of Rudder | no simple workaround
UX impact:
I hate Rudder for that
User visibility:
First impressions of Rudder
Effort required:
Small
Priority:
196
Name check:
To do
Fix check:
Checked
Regression:
No
Description
See the following yaml as example:
id: os_condition_logic_or_ name: 'OS condition logic OR ' version: '1.0' category: ncf_techniques items: - id: 74537fd1-bbb7-460e-bf2c-dcfc341c2fe0 name: logic with or condition: ubuntu_22_04|centos_8 method: file_present params: path: /tmp/os-condition-or - id: 8421d610-ebc6-4a2f-b3de-f04fb101e944 name: for ubuntu 22.04.03 condition: ubuntu_22_04 method: file_present params: path: /tmp/os-condition-only-ubuntu22 - id: b63fc018-b2d8-4f4b-8535-b4143e760779 name: for centos 8 condition: centos_8 method: file_present params: path: /tmp/os-condition-only-centos8
The first section will never be executed as the generated cfengine code is the following:
bundle agent call_os_condition_logic_or__74537fd1_bbb7_460e_bf2c_dcfc341c2fe0(c_name, c_key, report_id, args, class_prefix, method_call_condition, path) { methods: "74537fd1-bbb7-460e-bf2c-dcfc341c2fe0_${report_data.directive_id}" usebundle => _method_reporting_context_v4("${c_name}", "${c_key}", "${report_id}"); "74537fd1-bbb7-460e-bf2c-dcfc341c2fe0_${report_data.directive_id}" usebundle => file_present("${path}"), if => canonify("${method_call_condition}");
Where `method_call_condition` is `"ubuntu_22_04|centos_8"` which must NOT be canonified again.
Files
Updated by Félix DALLIDET 9 months ago
- Status changed from New to In progress
- Assignee set to Félix DALLIDET
Updated by Félix DALLIDET 9 months ago
- Status changed from In progress to Pending technical review
- Assignee changed from Félix DALLIDET to Vincent MEMBRÉ
- Pull Request set to https://github.com/Normation/rudder/pull/5407
Updated by Elaad FURREEDAN 9 months ago
- Severity set to Major - prevents use of part of Rudder | no simple workaround
- Priority changed from 0 to 196
Updated by Félix DALLIDET 9 months ago
- Status changed from Pending technical review to Pending release
Applied in changeset rudder|c6bebf583a6f1ca26b016de99b07df911a239d9e.
Updated by Elaad FURREEDAN 9 months ago
- File os_condition_logic_validation.yml os_condition_logic_validation.yml added
- Fix check changed from Checked to To do
I use this technique (See attachment) to validate the method, I have one server on Debian 12 and an agent on Ubuntu 22.04
On the server (Debian 12) :
root@server:/tmp# ls -l total 28 -rw------- 1 root root 0 Feb 28 10:06 os-condition-and-deb12 -rw------- 1 root root 0 Feb 28 10:05 os-condition-only-debian12 -rw------- 1 root root 0 Feb 28 10:05 os-condition-or ...
On the node (Ubuntu 22):
root@ubuntu:/tmp# ls -l total 24 -rw------- 1 root root 0 Feb 28 10:04 os-condition-only-ubuntu22 -rw------- 1 root root 0 Feb 28 10:04 os-condition-or ...
Updated by Vincent MEMBRÉ 9 months ago
- Status changed from Pending release to Released
This bug has been fixed in Rudder 8.0.6 which was released today.
Updated by Alexis Mousset 9 months ago
- Related to Bug #24291: Add integration tests to rudderc added
Actions