1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2026-02-04 07:51:50 +00:00

xfconf: fix existing empty array case (#11026) (#11027)

* xfconf: fix existing empty array case

* fix xfconf_info as well

* add changelog frag

(cherry picked from commit b28ac655fc)
This commit is contained in:
Alexei Znamensky 2025-11-03 10:07:52 +13:00 committed by GitHub
parent cd4a02605e
commit 40eec12c2c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 64 additions and 6 deletions

View file

@ -0,0 +1,3 @@
bugfixes:
- xfconf - fix handling of empty array properties (https://github.com/ansible-collections/community.general/pull/11026).
- xfconf_info - fix handling of empty array properties (https://github.com/ansible-collections/community.general/pull/11026).

View file

@ -206,10 +206,13 @@ class XFConfProperty(StateModuleHelper):
self.do_raise('xfconf-query failed with error (rc={0}): {1}'.format(rc, err))
result = out.rstrip()
if 'Value is an array with' in result:
result = result.split('\n')
result.pop(0)
result.pop(0)
if "Value is an array with" in result:
result = result.split("\n")
if len(result) > 1:
result.pop(0)
result.pop(0)
else:
return []
return result

View file

@ -153,9 +153,12 @@ class XFConfInfo(ModuleHelper):
result = out.rstrip()
if "Value is an array with" in result:
result = result.split("\n")
result.pop(0)
result.pop(0)
self.vars.is_array = True
if len(result) > 1:
result.pop(0)
result.pop(0)
else:
return []
return result

View file

@ -207,6 +207,55 @@ test_cases:
rc: 0
out: ''
err: ''
- id: test_property_array_previously_empty
input:
channel: xfwm4
property: /general/workspace_names
state: present
value_type: string
value: [A, B, C]
output:
changed: true
previous_value: []
type: [string, string, string]
value: [A, B, C]
version: 4.18.1
mocks:
run_command:
- command: [/testbin/xfconf-query, --version]
environ: *env-def
rc: 0
out: *version-output
err: ''
- command: [/testbin/xfconf-query, --channel, xfwm4, --property, /general/workspace_names]
environ: *env-def
rc: 0
out: "Value is an array with 0 items:\n\n"
err: ''
- command:
- /testbin/xfconf-query
- --channel
- xfwm4
- --property
- /general/workspace_names
- --create
- --force-array
- --type
- string
- --set
- A
- --type
- string
- --set
- B
- --type
- string
- --set
- C
environ: *env-def
rc: 0
out: ''
err: ''
- id: test_property_reset_value
input:
channel: xfwm4