mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
xfconf: add command output to results (#5037)
* xfconf: add command output to results * add changelog fragment * add docs for return value cmd * Update plugins/modules/system/xfconf.py Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
ab0cd83bb1
commit
5933d28dc4
3 changed files with 36 additions and 1 deletions
2
changelogs/fragments/5037-xfconf-add-cmd-output.yaml
Normal file
2
changelogs/fragments/5037-xfconf-add-cmd-output.yaml
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
minor_changes:
|
||||||
|
- xfconf - add ``stdout``, ``stderr`` and ``cmd`` to the module results (https://github.com/ansible-collections/community.general/pull/5037).
|
|
@ -143,6 +143,24 @@ RETURN = '''
|
||||||
returned: success
|
returned: success
|
||||||
type: any
|
type: any
|
||||||
sample: '"96" or ["red", "blue", "green"]'
|
sample: '"96" or ["red", "blue", "green"]'
|
||||||
|
cmd:
|
||||||
|
description:
|
||||||
|
- A list with the resulting C(xfconf-query) command executed by the module.
|
||||||
|
returned: success
|
||||||
|
type: list
|
||||||
|
elements: str
|
||||||
|
version_added: 5.4.0
|
||||||
|
sample:
|
||||||
|
- /usr/bin/xfconf-query
|
||||||
|
- --channel
|
||||||
|
- xfce4-panel
|
||||||
|
- --property
|
||||||
|
- /plugins/plugin-19/timezone
|
||||||
|
- --create
|
||||||
|
- --type
|
||||||
|
- string
|
||||||
|
- --set
|
||||||
|
- Pacific/Auckland
|
||||||
'''
|
'''
|
||||||
|
|
||||||
from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper
|
from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper
|
||||||
|
@ -211,6 +229,11 @@ class XFConfProperty(StateModuleHelper):
|
||||||
def state_absent(self):
|
def state_absent(self):
|
||||||
with self.runner('channel property reset', check_mode_skip=True) as ctx:
|
with self.runner('channel property reset', check_mode_skip=True) as ctx:
|
||||||
ctx.run(reset=True)
|
ctx.run(reset=True)
|
||||||
|
self.vars.stdout = ctx.results_out
|
||||||
|
self.vars.stderr = ctx.results_err
|
||||||
|
self.vars.cmd = ctx.cmd
|
||||||
|
if self.verbosity >= 4:
|
||||||
|
self.vars.run_info = ctx.run_info
|
||||||
self.vars.value = None
|
self.vars.value = None
|
||||||
|
|
||||||
def state_present(self):
|
def state_present(self):
|
||||||
|
@ -237,6 +260,11 @@ class XFConfProperty(StateModuleHelper):
|
||||||
|
|
||||||
with self.runner('channel property create force_array values_and_types', check_mode_skip=True) as ctx:
|
with self.runner('channel property create force_array values_and_types', check_mode_skip=True) as ctx:
|
||||||
ctx.run(create=True, force_array=self.vars.is_array, values_and_types=(self.vars.value, value_type))
|
ctx.run(create=True, force_array=self.vars.is_array, values_and_types=(self.vars.value, value_type))
|
||||||
|
self.vars.stdout = ctx.results_out
|
||||||
|
self.vars.stderr = ctx.results_err
|
||||||
|
self.vars.cmd = ctx.cmd
|
||||||
|
if self.verbosity >= 4:
|
||||||
|
self.vars.run_info = ctx.run_info
|
||||||
|
|
||||||
if not self.vars.is_array:
|
if not self.vars.is_array:
|
||||||
self.vars.value = self.vars.value[0]
|
self.vars.value = self.vars.value[0]
|
||||||
|
|
|
@ -268,7 +268,7 @@ def test_xfconf(mocker, capfd, patch_xfconf, testcase):
|
||||||
# Mock function used for running commands first
|
# Mock function used for running commands first
|
||||||
call_results = [item[2] for item in testcase['run_command.calls']]
|
call_results = [item[2] for item in testcase['run_command.calls']]
|
||||||
mock_run_command = mocker.patch(
|
mock_run_command = mocker.patch(
|
||||||
'ansible_collections.community.general.plugins.module_utils.mh.module_helper.AnsibleModule.run_command',
|
'ansible.module_utils.basic.AnsibleModule.run_command',
|
||||||
side_effect=call_results)
|
side_effect=call_results)
|
||||||
|
|
||||||
# Try to run test case
|
# Try to run test case
|
||||||
|
@ -296,6 +296,11 @@ def test_xfconf(mocker, capfd, patch_xfconf, testcase):
|
||||||
print("expected args list =\n%s" % expected_call_args_list)
|
print("expected args list =\n%s" % expected_call_args_list)
|
||||||
assert call_args_list == expected_call_args_list
|
assert call_args_list == expected_call_args_list
|
||||||
|
|
||||||
|
expected_cmd, dummy, expected_res = testcase['run_command.calls'][-1]
|
||||||
|
assert results['cmd'] == expected_cmd
|
||||||
|
assert results['stdout'] == expected_res[1]
|
||||||
|
assert results['stderr'] == expected_res[2]
|
||||||
|
|
||||||
for conditional_test_result in ('msg', 'value', 'previous_value'):
|
for conditional_test_result in ('msg', 'value', 'previous_value'):
|
||||||
if conditional_test_result in testcase:
|
if conditional_test_result in testcase:
|
||||||
assert conditional_test_result in results, "'{0}' not found in {1}".format(conditional_test_result, results)
|
assert conditional_test_result in results, "'{0}' not found in {1}".format(conditional_test_result, results)
|
||||||
|
|
Loading…
Reference in a new issue