From beca9fedd1b0674a178195f1b97d6e056593f86a Mon Sep 17 00:00:00 2001 From: brad2014 Date: Mon, 19 Jan 2026 20:02:05 +0100 Subject: [PATCH] When creating dynamic inventory, jinja-expand tags, regions, and types. The tags, regions, and types filter array values are scanned, and any jinja templates are detected and expanded, just as is done already with the api_token. Resolves #746 --- plugins/inventory/instance.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/plugins/inventory/instance.py b/plugins/inventory/instance.py index 404c4063..8bb349ee 100644 --- a/plugins/inventory/instance.py +++ b/plugins/inventory/instance.py @@ -242,6 +242,16 @@ def _get_query_options( self, config_data: Dict[str, Any] ) -> Tuple[Any, Any, Any]: """Get user specified query options from the configuration.""" + + def expand_templates(query_list: List[str]) -> List[str]: + items = [] + for item in query_list: + if self.templar.is_template(item): + items.append(self.templar.template(item, disable_lookups=False)) + else: + items.append(item) + return items + options = { "regions": { "type_to_be": list, @@ -259,9 +269,9 @@ def _get_query_options( name, options[name]["type_to_be"], options[name]["value"] ) - regions = options["regions"]["value"] - types = options["types"]["value"] - tags = options["tags"]["value"] + regions = expand_templates(options["regions"]["value"]) + types = expand_templates(options["types"]["value"]) + tags = expand_templates(options["tags"]["value"]) return regions, types, tags