From 5f0b9af3444474fbdc0bfb332518a3eff463f312 Mon Sep 17 00:00:00 2001 From: Kyle Pollich Date: Thu, 27 Jan 2022 16:45:43 -0500 Subject: [PATCH] Fix package policy merge logic for boolean values (#123974) (cherry picked from commit 159825a4769862bc4c797010528bcf4783f7d190) --- .../fleet/server/services/package_policy.test.ts | 13 +++++++++++++ .../plugins/fleet/server/services/package_policy.ts | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/fleet/server/services/package_policy.test.ts b/x-pack/plugins/fleet/server/services/package_policy.test.ts index 72f6ff49e608d..a44355522dd42 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.test.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.test.ts @@ -1993,6 +1993,10 @@ describe('Package policy service', () => { type: 'text', value: ['/var/log/logfile.log'], }, + is_value_enabled: { + type: 'bool', + value: false, + }, }, streams: [], }, @@ -2023,6 +2027,10 @@ describe('Package policy service', () => { name: 'path', type: 'text', }, + { + name: 'is_value_enabled', + type: 'bool', + }, ], }, ], @@ -2042,6 +2050,10 @@ describe('Package policy service', () => { type: 'text', value: '/var/log/new-logfile.log', }, + is_value_enabled: { + type: 'bool', + value: 'true', + }, }, }, ]; @@ -2055,6 +2067,7 @@ describe('Package policy service', () => { false ); expect(result.inputs[0]?.vars?.path.value).toEqual(['/var/log/logfile.log']); + expect(result.inputs[0]?.vars?.is_value_enabled.value).toEqual(false); }); }); diff --git a/x-pack/plugins/fleet/server/services/package_policy.ts b/x-pack/plugins/fleet/server/services/package_policy.ts index 1ad4ff1adbdd0..b0ef179834ebb 100644 --- a/x-pack/plugins/fleet/server/services/package_policy.ts +++ b/x-pack/plugins/fleet/server/services/package_policy.ts @@ -1369,7 +1369,7 @@ function deepMergeVars(original: any, override: any, keepOriginalValue = false): // Ensure that any value from the original object is persisted on the newly merged resulting object, // even if we merge other data about the given variable - if (keepOriginalValue && originalVar?.value) { + if (keepOriginalValue && originalVar?.value !== undefined) { result.vars[name].value = originalVar.value; } }