Hostgroup CF checks for VMs

This commit is contained in:
Raymond Kuiper
2025-06-13 10:24:26 +02:00
parent 298e6c4370
commit bd4d21c5d8
3 changed files with 18 additions and 9 deletions

View File

@@ -85,9 +85,13 @@ def main(arguments):
# Set NetBox API
netbox = api(netbox_host, token=netbox_token, threading=True)
# Create API call to get all custom fields which are on the device objects
device_cfs = []
try:
device_cfs = list(
netbox.extras.custom_fields.filter(type="text", content_type_id=23)
netbox.extras.custom_fields.filter(type="text", content_types="dcim.device")
)
vm_cfs = list(
netbox.extras.custom_fields.filter(type="text", content_types="virtualization.virtualmachine")
)
except RequestsConnectionError:
logger.error(
@@ -98,12 +102,10 @@ def main(arguments):
except NBRequestError as e:
logger.error(f"NetBox error: {e}")
sys.exit(1)
for cf in device_cfs:
allowed_objects.append(cf.name)
logger.debug(device_cfs)
# Check if the provided Hostgroup layout is valid
verify_hg_format(hostgroup_format, hg_type="dev", logger=logger)
verify_hg_format(vm_hostgroup_format, hg_type="vm", logger=logger)
verify_hg_format(hostgroup_format, device_cfs=device_cfs, hg_type="dev", logger=logger)
verify_hg_format(vm_hostgroup_format, vm_cfs=vm_cfs, hg_type="vm", logger=logger)
# Set Zabbix API
try:
ssl_ctx = ssl.create_default_context()