make the agent work if only a datacenter is specified

This commit is contained in:
Solvik Blum 2020-07-01 12:44:34 +02:00
commit 937ec413d4

View file

@ -49,10 +49,12 @@ class ServerBase():
return dc.get() return dc.get()
def get_netbox_datacenter(self): def get_netbox_datacenter(self):
datacenter = nb.dcim.sites.get( dc = self.get_datacenter()
slug=self.get_datacenter() if dc:
return nb.dcim.sites.get(
slug=dc,
) )
return datacenter return None
def update_netbox_location(self, server): def update_netbox_location(self, server):
dc = self.get_datacenter() dc = self.get_datacenter()
@ -86,11 +88,18 @@ class ServerBase():
return rack.get() return rack.get()
def get_netbox_rack(self): def get_netbox_rack(self):
rack = nb.dcim.racks.get( rack = self.get_rack()
name=self.get_rack(), datacenter = self.get_netbox_datacenter()
site_id=self.get_netbox_datacenter().id, if not rack:
return None
if rack and not datacenter:
logging.warning("Can't get rack if no datacenter is configured or found")
return None
return nb.dcim.racks.get(
name=rack,
site_id=datacenter.id,
) )
return rack
def get_product_name(self): def get_product_name(self):
""" """