From 0d1f2fd51374bce2aa87878dc32ee935f9c8990d Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sat, 3 Apr 2021 22:56:17 +0200 Subject: [PATCH] kibana_plugin: fixed remove call + run_command with list instead of str (#2143) (#2154) * fixed remove call + run_command with list instead of str * fixed the other calls to run_command() * added changelog fragment * adjustment on run_command params * Update changelogs/fragments/2143-kibana_plugin-fixed-function-calls.yml Co-authored-by: Felix Fontein Co-authored-by: Felix Fontein (cherry picked from commit 3312ae08af00c64d16e34d940d1c3991a3a11b92) Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com> --- ...143-kibana_plugin-fixed-function-calls.yml | 2 ++ .../modules/database/misc/kibana_plugin.py | 26 ++++++++----------- 2 files changed, 13 insertions(+), 15 deletions(-) create mode 100644 changelogs/fragments/2143-kibana_plugin-fixed-function-calls.yml diff --git a/changelogs/fragments/2143-kibana_plugin-fixed-function-calls.yml b/changelogs/fragments/2143-kibana_plugin-fixed-function-calls.yml new file mode 100644 index 0000000000..d4c4f21a6e --- /dev/null +++ b/changelogs/fragments/2143-kibana_plugin-fixed-function-calls.yml @@ -0,0 +1,2 @@ +bugfixes: + - kibana_plugin - added missing parameter to ``remove_plugin`` when using ``state=present force=true``, and fix potential quoting errors when invoking ``kibana`` (https://github.com/ansible-collections/community.general/pull/2143). diff --git a/plugins/modules/database/misc/kibana_plugin.py b/plugins/modules/database/misc/kibana_plugin.py index 33bc86229b..d254e02e45 100644 --- a/plugins/modules/database/misc/kibana_plugin.py +++ b/plugins/modules/database/misc/kibana_plugin.py @@ -164,22 +164,20 @@ def install_plugin(module, plugin_bin, plugin_name, url, timeout, kibana_version cmd_args = [plugin_bin, "plugin", PACKAGE_STATE_MAP["present"], plugin_name] if url: - cmd_args.append("--url %s" % url) + cmd_args.extend(["--url", url]) if timeout: - cmd_args.append("--timeout %s" % timeout) - - cmd = " ".join(cmd_args) + cmd_args.extend(["--timeout", timeout]) if module.check_mode: - return True, cmd, "check mode", "" + return True, " ".join(cmd_args), "check mode", "" - rc, out, err = module.run_command(cmd) + rc, out, err = module.run_command(cmd_args) if rc != 0: reason = parse_error(out) module.fail_json(msg=reason) - return True, cmd, out, err + return True, " ".join(cmd_args), out, err def remove_plugin(module, plugin_bin, plugin_name, kibana_version='4.6'): @@ -189,23 +187,21 @@ def remove_plugin(module, plugin_bin, plugin_name, kibana_version='4.6'): else: cmd_args = [plugin_bin, "plugin", PACKAGE_STATE_MAP["absent"], plugin_name] - cmd = " ".join(cmd_args) - if module.check_mode: - return True, cmd, "check mode", "" + return True, " ".join(cmd_args), "check mode", "" - rc, out, err = module.run_command(cmd) + rc, out, err = module.run_command(cmd_args) if rc != 0: reason = parse_error(out) module.fail_json(msg=reason) - return True, cmd, out, err + return True, " ".join(cmd_args), out, err def get_kibana_version(module, plugin_bin): cmd_args = [plugin_bin, '--version'] - cmd = " ".join(cmd_args) - rc, out, err = module.run_command(cmd) + + rc, out, err = module.run_command(cmd_args) if rc != 0: module.fail_json(msg="Failed to get Kibana version : %s" % err) @@ -251,7 +247,7 @@ def main(): if state == "present": if force: - remove_plugin(module, plugin_bin, name) + remove_plugin(module, plugin_bin, name, kibana_version) changed, cmd, out, err = install_plugin(module, plugin_bin, name, url, timeout, kibana_version) elif state == "absent":