diff --git a/broker/commands.py b/broker/commands.py index 181e157..f97cd1d 100644 --- a/broker/commands.py +++ b/broker/commands.py @@ -326,6 +326,9 @@ def inventory(details, _list, sync, filter): ) for host in inventory ] + if not curated_host_info: + CONSOLE.print("No hosts found in inventory.") + return table = helpers.dictlist_to_table(curated_host_info, "Host Inventory", _id=True) if _list: table.title = None diff --git a/broker/config_manager.py b/broker/config_manager.py index cbba8d3..f5c21d7 100644 --- a/broker/config_manager.py +++ b/broker/config_manager.py @@ -6,7 +6,6 @@ from pathlib import Path import pkgutil import sys -from tempfile import NamedTemporaryFile import click from logzero import logger @@ -56,11 +55,11 @@ def __init__(self, settings_path=None): def _interactive_edit(self, chunk): """Write the chunk data to a temporary file and open it in an editor.""" - with NamedTemporaryFile(mode="w+", suffix=".yaml") as tmp: - yaml.dump(chunk, tmp) - click.edit(filename=tmp.name) - tmp.seek(0) - new_data = tmp.read() + temp_file = Path("temp_settings.yaml") + yaml.dump(chunk, temp_file) + click.edit(filename=str(temp_file)) + new_data = temp_file.read_text() + temp_file.unlink() # first try to load it as yaml try: return yaml.load(new_data) diff --git a/broker/providers/ansible_tower.py b/broker/providers/ansible_tower.py index f7c67e1..94f5ca4 100644 --- a/broker/providers/ansible_tower.py +++ b/broker/providers/ansible_tower.py @@ -701,7 +701,7 @@ def extend(self, target_vm, new_expire_time=None, provider_labels=None): provider_labels=provider_labels, ) - def provider_help( + def provider_help( # noqa: PLR0912, PLR0915 - Possible TODO refactor self, workflows=False, workflow=None, @@ -728,6 +728,9 @@ def provider_help( for workflow in self._v2.workflow_job_templates.get(page_size=1000).results if workflow.summary_fields.user_capabilities.get("start") ] + if not workflows: + logger.warning("No workflows found") + return if res_filter := kwargs.get("results_filter"): workflows = eval_filter(workflows, res_filter, "res") workflows = workflows if isinstance(workflows, list) else [workflows] @@ -739,6 +742,9 @@ def provider_help( logger.info(f"Accepted additional nick fields:\n{helpers.yaml_format(inv)}") elif inventories: inv = [inv.name for inv in self._v2.inventory.get(kind="", page_size=1000).results] + if not inv: + logger.warning("No inventories found!") + return if res_filter := kwargs.get("results_filter"): inv = eval_filter(inv, res_filter, "res") inv = inv if isinstance(inv, list) else [inv] @@ -758,6 +764,9 @@ def provider_help( for job_template in self._v2.job_templates.get(page_size=1000).results if job_template.summary_fields.user_capabilities.get("start") ] + if not job_templates: + logger.warning("No job templates found!") + return if res_filter := kwargs.get("results_filter"): job_templates = eval_filter(job_templates, res_filter, "res") job_templates = ( @@ -773,6 +782,9 @@ def provider_help( ] ) ) + if not templates: + logger.warning("No templates found!") + return templates.sort(reverse=True) if res_filter := kwargs.get("results_filter"): templates = eval_filter(templates, res_filter, "res")