Prüft, ob ein Device bei VMs angegeben ist.
/opt/netbox/report.py
class VMDeviceReport(Script):
class Meta:
name = "VM Device prüfen"
description = "Prüft, ob ein Device bei VMs angegeben ist."
def test_vm_host_devices(self):
"""Prüft, ob der VM das konkrete physische Host-Device (Hypervisor) zugewiesen wurde (außer OpenStack)."""
active_vms = VirtualMachine.objects.filter(status="active")
for vm in active_vms:
# 1. Prüfen, ob die VM ein Cluster hat und ob der Cluster-Typ OpenStack ist
if vm.cluster and vm.cluster.type:
cluster_type_name = vm.cluster.type.name.lower()
if "openstack" in cluster_type_name:
self.log_success("OpenStack VM - Physisches Host-Device nicht erforderlich.", obj=vm)
continue
# 2. Reguläre Prüfung für alle anderen Cluster-Typen (VMware, Proxmox etc.)
if vm.device_id is None:
self.log_failure("Der VM ist kein physisches Host-Device (Server) zugewiesen.", obj=vm)
else:
self.log_success(f"Läuft auf Host-Device: {vm.device.name}", obj=vm)