From 7ebc1adc7a8638e2c4f43085f1d593b436b310d0 Mon Sep 17 00:00:00 2001
From: fmkiotheka <fmkiotheka@inf.ufpr.br>
Date: Fri, 7 Feb 2025 15:42:11 -0300
Subject: [PATCH] Allow missing stuff from netbox

---
 netbox_proxmox_sync/api/utils/models.py | 11 ++++-------
 setup.py                                |  2 +-
 2 files changed, 5 insertions(+), 8 deletions(-)

diff --git a/netbox_proxmox_sync/api/utils/models.py b/netbox_proxmox_sync/api/utils/models.py
index cd974a3..71f6be1 100644
--- a/netbox_proxmox_sync/api/utils/models.py
+++ b/netbox_proxmox_sync/api/utils/models.py
@@ -98,18 +98,15 @@ def tag_from_netbox(netbox_tag):
 
 
 def vm_from_netbox(netbox_vm):
-    role_id = None
-    if netbox_vm.get('role'):
-        role_id = netbox_vm['role']['id']
     return VirtualMachine(
         id=netbox_vm['id'],
         vmid=netbox_vm['custom_fields']['vmid'],
         name=netbox_vm['name'],
         status=netbox_vm['status']['value'],
         # FIXME: some of these are tricky
-        node_name=netbox_vm['device']['name'],
-        cluster_name=netbox_vm['cluster']['name'],
-        role_id=role_id,
+        node_name=netbox_vm['device']['name'] if netbox_vm['device'] else None,
+        cluster_name=netbox_vm['cluster']['name'] if netbox_vm['device'] else None,
+        role_id=netbox_vm['role']['id'] if netbox_vm['role'] else None,
         vcpus=netbox_vm['vcpus'],
         maxmem=netbox_vm['memory'],
         tags=[tag['name'] for tag in netbox_vm['tags']],
@@ -124,7 +121,7 @@ def interface_from_netbox(netbox_interface):
         name=netbox_interface['name'],
         vm_name=netbox_interface['virtual_machine']['name'],
         mac_address=netbox_interface['mac_address'].upper(),
-        vlan_id=netbox_interface['untagged_vlan']['vid'],
+        vlan_id=netbox_interface['untagged_vlan']['vid'] if netbox_interface['untagged_vlan'] else None,
     ).to_dict()
 
 
diff --git a/setup.py b/setup.py
index 45eecd4..93b3109 100644
--- a/setup.py
+++ b/setup.py
@@ -2,7 +2,7 @@ from setuptools import find_packages, setup
 
 setup(
     name='netbox-proxmox-sync',
-    version='2.0.5',
+    version='2.0.6',
     description='Import Proxmox cluster info into NetBox.',
     install_requires=['pynetbox', 'proxmoxer'],
     include_package_data=True,
-- 
GitLab