Added support for hardcoded strings in hostgroups

This commit is contained in:
Raymond Kuiper 2025-06-25 16:50:17 +02:00
parent 57c7f83e6a
commit 98c13919c5
2 changed files with 19 additions and 13 deletions

View File

@ -117,19 +117,24 @@ class Hostgroup:
for hg_item in hg_items: for hg_item in hg_items:
# Check if requested data is available as option for this host # Check if requested data is available as option for this host
if hg_item not in self.format_options: if hg_item not in self.format_options:
# Check if a custom field exists with this name if hg_item.startswith(("'", '"')) and hg_item.endswith(("'", '"')):
cf_data = self.custom_field_lookup(hg_item) hg_item = hg_item.strip("\'")
# CF does not exist hg_item = hg_item.strip('\"')
if not cf_data["result"]: hg_output.append(hg_item)
msg = ( else:
f"Unable to generate hostgroup for host {self.name}. " # Check if a custom field exists with this name
f"Item type {hg_item} not supported." cf_data = self.custom_field_lookup(hg_item)
) # CF does not exist
self.logger.error(msg) if not cf_data["result"]:
raise HostgroupError(msg) msg = (
# CF data is populated f"Unable to generate hostgroup for host {self.name}. "
if cf_data["cf"]: f"Item type {hg_item} not supported."
hg_output.append(cf_data["cf"]) )
self.logger.error(msg)
raise HostgroupError(msg)
# CF data is populated
if cf_data["cf"]:
hg_output.append(cf_data["cf"])
continue continue
# Check if there is a value associated to the variable. # Check if there is a value associated to the variable.
# For instance, if a device has no location, do not use it with hostgroup calculation # For instance, if a device has no location, do not use it with hostgroup calculation

View File

@ -160,6 +160,7 @@ def verify_hg_format(
if ( if (
hg_object not in allowed_objects[hg_type] hg_object not in allowed_objects[hg_type]
and hg_object not in allowed_objects["cfs"][hg_type] and hg_object not in allowed_objects["cfs"][hg_type]
and not hg_object.startswith(('"',"'"))
): ):
e = ( e = (
f"Hostgroup item {hg_object} is not valid. Make sure you" f"Hostgroup item {hg_object} is not valid. Make sure you"