From ce1b9887b182df32f8dd5e78d70521b6574fdb55 Mon Sep 17 00:00:00 2001 From: Alexei Znamensky <103110+russoz@users.noreply.github.com> Date: Sun, 27 Oct 2024 21:36:52 +1300 Subject: [PATCH] gconftool2/gconftool2_info: add return value version (#9064) * add return value version * add changelog frag --- .../fragments/9064-gconftool2-version.yml | 4 +++ plugins/module_utils/gconftool2.py | 1 + plugins/modules/gconftool2.py | 10 +++++++ plugins/modules/gconftool2_info.py | 9 ++++++ .../unit/plugins/modules/test_gconftool2.yaml | 30 ++++++++++++++++++- .../plugins/modules/test_gconftool2_info.yaml | 12 +++++++- 6 files changed, 64 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/9064-gconftool2-version.yml diff --git a/changelogs/fragments/9064-gconftool2-version.yml b/changelogs/fragments/9064-gconftool2-version.yml new file mode 100644 index 0000000000..7913c76a81 --- /dev/null +++ b/changelogs/fragments/9064-gconftool2-version.yml @@ -0,0 +1,4 @@ +minor_changes: + - gcontool2 module utils - add argument formatter ``version`` (https://github.com/ansible-collections/community.general/pull/9064). + - gcontool2 - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9064). + - gcontool2_info - add return value ``version`` (https://github.com/ansible-collections/community.general/pull/9064). diff --git a/plugins/module_utils/gconftool2.py b/plugins/module_utils/gconftool2.py index e90c3fb2cb..8e04f9ee3f 100644 --- a/plugins/module_utils/gconftool2.py +++ b/plugins/module_utils/gconftool2.py @@ -27,6 +27,7 @@ def gconftool2_runner(module, **kwargs): value=cmd_runner_fmt.as_list(), direct=cmd_runner_fmt.as_bool("--direct"), config_source=cmd_runner_fmt.as_opt_val("--config-source"), + version=cmd_runner_fmt.as_fixed("--version"), ), **kwargs ) diff --git a/plugins/modules/gconftool2.py b/plugins/modules/gconftool2.py index 7cf9a92c44..1759665294 100644 --- a/plugins/modules/gconftool2.py +++ b/plugins/modules/gconftool2.py @@ -96,6 +96,12 @@ previous_value: returned: success type: str sample: "Serif 12" +version: + description: Version of gconftool-2. + type: str + returned: always + sample: "3.2.6" + version_added: 10.0.0 """ from ansible_collections.community.general.plugins.module_utils.module_helper import StateModuleHelper @@ -129,6 +135,10 @@ class GConftool(StateModuleHelper): if not self.vars.direct and self.vars.config_source is not None: self.do_raise('If the "config_source" is specified then "direct" must be "true"') + with self.runner("version") as ctx: + rc, out, err = ctx.run() + self.vars.version = out.strip() + self.vars.set('previous_value', self._get(), fact=True) self.vars.set('value_type', self.vars.value_type) self.vars.set('_value', self.vars.previous_value, output=False, change=True) diff --git a/plugins/modules/gconftool2_info.py b/plugins/modules/gconftool2_info.py index ebe2121ad1..6fb274e038 100644 --- a/plugins/modules/gconftool2_info.py +++ b/plugins/modules/gconftool2_info.py @@ -50,6 +50,12 @@ value: returned: success type: str sample: Monospace 10 +version: + description: Version of gconftool-2. + type: str + returned: always + sample: "3.2.6" + version_added: 10.0.0 """ from ansible_collections.community.general.plugins.module_utils.module_helper import ModuleHelper @@ -68,6 +74,9 @@ class GConftoolInfo(ModuleHelper): def __init_module__(self): self.runner = gconftool2_runner(self.module, check_rc=True) + with self.runner("version") as ctx: + rc, out, err = ctx.run() + self.vars.version = out.strip() def __run__(self): with self.runner.context(args_order=["state", "key"]) as ctx: diff --git a/tests/unit/plugins/modules/test_gconftool2.yaml b/tests/unit/plugins/modules/test_gconftool2.yaml index 084741e6d1..badbdf2614 100644 --- a/tests/unit/plugins/modules/test_gconftool2.yaml +++ b/tests/unit/plugins/modules/test_gconftool2.yaml @@ -13,11 +13,17 @@ output: new_value: '200' changed: true + version: "3.2.6" mocks: run_command: - - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] + - command: [/testbin/gconftool-2, --version] environ: &env-def {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: true} rc: 0 + out: "3.2.6\n" + err: "" + - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] + environ: *env-def + rc: 0 out: "100\n" err: "" - command: [/testbin/gconftool-2, --type, int, --set, /desktop/gnome/background/picture_filename, "200"] @@ -39,8 +45,14 @@ output: new_value: '200' changed: false + version: "3.2.5" mocks: run_command: + - command: [/testbin/gconftool-2, --version] + environ: *env-def + rc: 0 + out: "3.2.5\n" + err: "" - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] environ: *env-def rc: 0 @@ -65,8 +77,14 @@ output: new_value: 'false' changed: false + version: "3.2.4" mocks: run_command: + - command: [/testbin/gconftool-2, --version] + environ: *env-def + rc: 0 + out: "3.2.4\n" + err: "" - command: [/testbin/gconftool-2, --get, /apps/gnome_settings_daemon/screensaver/start_screensaver] environ: *env-def rc: 0 @@ -91,6 +109,11 @@ changed: true mocks: run_command: + - command: [/testbin/gconftool-2, --version] + environ: *env-def + rc: 0 + out: "3.2.4\n" + err: "" - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] environ: *env-def rc: 0 @@ -110,6 +133,11 @@ changed: false mocks: run_command: + - command: [/testbin/gconftool-2, --version] + environ: *env-def + rc: 0 + out: "3.2.4\n" + err: "" - command: [/testbin/gconftool-2, --get, /apps/gnome_settings_daemon/screensaver/start_screensaver] environ: *env-def rc: 0 diff --git a/tests/unit/plugins/modules/test_gconftool2_info.yaml b/tests/unit/plugins/modules/test_gconftool2_info.yaml index 26db16a368..fac04430a0 100644 --- a/tests/unit/plugins/modules/test_gconftool2_info.yaml +++ b/tests/unit/plugins/modules/test_gconftool2_info.yaml @@ -11,9 +11,14 @@ value: '100' mocks: run_command: - - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] + - command: [/testbin/gconftool-2, --version] environ: &env-def {environ_update: {LANGUAGE: C, LC_ALL: C}, check_rc: true} rc: 0 + out: "3.2.6\n" + err: "" + - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] + environ: *env-def + rc: 0 out: "100\n" err: "" - id: test_simple_element_get_not_found @@ -23,6 +28,11 @@ value: mocks: run_command: + - command: [/testbin/gconftool-2, --version] + environ: *env-def + rc: 0 + out: "3.2.6\n" + err: "" - command: [/testbin/gconftool-2, --get, /desktop/gnome/background/picture_filename] environ: *env-def rc: 0