From 81b7047e47c741cd252bf73e93945d6065ea22e6 Mon Sep 17 00:00:00 2001 From: Abhijeet Kasurde Date: Tue, 2 Jan 2024 16:31:38 -0800 Subject: [PATCH 1/2] Remove superfluous param from get_bin_path The parameter `required` in process.get_bin_path is useless. Remove and update the usage of get_bin_path in inventory and lookup plugins. Signed-off-by: Abhijeet Kasurde --- changelogs/fragments/get_bin_path.yml | 3 +++ plugins/inventory/terraform_provider.py | 5 ++++- plugins/lookup/tf_output.py | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 changelogs/fragments/get_bin_path.yml diff --git a/changelogs/fragments/get_bin_path.yml b/changelogs/fragments/get_bin_path.yml new file mode 100644 index 00000000..588a72c8 --- /dev/null +++ b/changelogs/fragments/get_bin_path.yml @@ -0,0 +1,3 @@ +--- +bugfixes: + - Remove superfluous parameter `required` from process.get_bin_path API usage. diff --git a/plugins/inventory/terraform_provider.py b/plugins/inventory/terraform_provider.py index 19e70741..94084b09 100644 --- a/plugins/inventory/terraform_provider.py +++ b/plugins/inventory/terraform_provider.py @@ -191,7 +191,10 @@ def parse(self, inventory, loader, path, cache=False): # type: ignore # mypy i if terraform_binary is not None: validate_bin_path(terraform_binary) else: - terraform_binary = process.get_bin_path("terraform", required=True) + try: + terraform_binary = process.get_bin_path("terraform") + except ValueError: + raise AnsibleParserError("Unable to find 'terraform' binary in the path") # TODO: remove when ansible provider is available state_content = [] diff --git a/plugins/lookup/tf_output.py b/plugins/lookup/tf_output.py index 2c5a4a1a..b138e1a9 100644 --- a/plugins/lookup/tf_output.py +++ b/plugins/lookup/tf_output.py @@ -79,6 +79,7 @@ import subprocess from typing import Dict, List, Optional, Tuple +from ansible.errors import AnsibleLookupError from ansible.module_utils.common import process from ansible.plugins.lookup import LookupBase from ansible_collections.cloud.terraform.plugins.module_utils.types import AnyJsonType @@ -110,7 +111,10 @@ def run(self, terms: List[str], variables: Optional[Dict[str, str]] = None, **kw if bin_path is not None: terraform_binary = bin_path else: - terraform_binary = process.get_bin_path("terraform", required=True) + try: + terraform_binary = process.get_bin_path("terraform") + except ValueError: + raise AnsibleLookupError("Unable to find 'terraform' binary in the path") output: List[AnyJsonType] = [] if not terms: From 32d1b210a4c50c5ebd51085b4a19bedf488ef206 Mon Sep 17 00:00:00 2001 From: Bikouo Aubin <79859644+abikouo@users.noreply.github.com> Date: Wed, 27 Mar 2024 09:26:27 +0100 Subject: [PATCH 2/2] Update changelogs/fragments/get_bin_path.yml Co-authored-by: Felix Fontein --- changelogs/fragments/get_bin_path.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changelogs/fragments/get_bin_path.yml b/changelogs/fragments/get_bin_path.yml index 588a72c8..dc691ad1 100644 --- a/changelogs/fragments/get_bin_path.yml +++ b/changelogs/fragments/get_bin_path.yml @@ -1,3 +1,3 @@ --- bugfixes: - - Remove superfluous parameter `required` from process.get_bin_path API usage. + - Remove superfluous parameter ``required`` from process.get_bin_path API usage.