From afdf26c920de4d941a9cccf003138c0b1137cf5a Mon Sep 17 00:00:00 2001 From: Solvik Blum Date: Wed, 21 Aug 2019 17:36:30 +0200 Subject: [PATCH] fix logging and add media type for physical disk --- netbox_agent/inventory.py | 22 +++++++++++++++------- netbox_agent/raid/dell.py | 2 ++ netbox_agent/server.py | 6 +++--- 3 files changed, 20 insertions(+), 10 deletions(-) diff --git a/netbox_agent/inventory.py b/netbox_agent/inventory.py index f451cf9..3140113 100644 --- a/netbox_agent/inventory.py +++ b/netbox_agent/inventory.py @@ -72,8 +72,9 @@ class Inventory(): tags=[INVENTORY_TAG['cpu']['name']], name=model, discovered=True, + description='CPU', ) - logging.info('Created CPU model {model}'.format(model=model)) + logging.info('Creating CPU model {model}'.format(model=model)) def update_netbox_cpus(self): cpus_number, model = self.get_cpus() @@ -121,7 +122,7 @@ class Inventory(): name=name, slug=name.lower(), ) - logging.info('Created missing manufacturer {name}'.format(name=name)) + logging.info('Creating missing manufacturer {name}'.format(name=name)) return manufacturer def create_netbox_raid_card(self, raid_card): @@ -137,8 +138,9 @@ class Inventory(): tags=[INVENTORY_TAG['raid_card']['name']], name='{}'.format(name), serial='{}'.format(serial), + description='RAID Card', ) - logging.info('Created RAID Card {name} (SN: {serial})'.format( + logging.info('Creating RAID Card {name} (SN: {serial})'.format( name=name, serial=serial, )) @@ -191,13 +193,17 @@ class Inventory(): def create_netbox_disks(self): for disk in self.get_disks(): - disk = nb.dcim.inventory_items.create( + _ = nb.dcim.inventory_items.create( device=self.device_id, discovered=True, tags=[INVENTORY_TAG['disk']['name']], name='{} ({})'.format(disk['Model'], disk['Size']), serial=disk['SN'], ) + logging.info('Creating Disk {model} {serial}'.format( + model=disk['Model'], + serial=disk['SN'], + )) def update_netbox_disks(self): nb_disks = self.get_netbox_disks() @@ -215,12 +221,13 @@ class Inventory(): # create disks that are not in netbox for disk in disks: if disk['SN'] not in [x.serial for x in nb_disks]: - disk = nb.dcim.inventory_items.create( + nb_disk = nb.dcim.inventory_items.create( device=self.device_id, discovered=True, tags=[INVENTORY_TAG['disk']['name']], name='{} ({})'.format(disk['Model'], disk['Size']), serial=disk['SN'], + description=disk.get('Type', ''), ) logging.info('Creating Disk {model} {serial}'.format( model=disk['Model'], @@ -264,7 +271,7 @@ class Inventory(): name=memory['Manufacturer'], slug=memory['Manufacturer'].lower(), ) - memory = nb.dcim.inventory_items.create( + nb_memory = nb.dcim.inventory_items.create( device=self.device_id, discovered=True, manufacturer=manufacturer.id, @@ -272,12 +279,13 @@ class Inventory(): name='{} ({} {})'.format(memory['Locator'], memory['Size'], memory['Type']), part_id=memory['PN'], serial=memory['SN'], + description='RAM', ) logging.info('Creating Memory {type} {size}'.format( type=memory['Type'], size=memory['Size'], )) - return memory + return nb_memory def create_netbox_memories(self): for memory in self.get_memory(): diff --git a/netbox_agent/raid/dell.py b/netbox_agent/raid/dell.py index 167dd33..48989b8 100644 --- a/netbox_agent/raid/dell.py +++ b/netbox_agent/raid/dell.py @@ -32,6 +32,7 @@ class StorcliController(RaidController): enclosure = physical_drive.get('EID:Slt').split(':')[0] slot = physical_drive.get('EID:Slt').split(':')[1] size = physical_drive.get('Size').strip() + media_type = physical_drive.get('Med').strip() drive_identifier = 'Drive /c{}/e{}/s{}'.format( str(self.controller_index), str(enclosure), str(slot) ) @@ -41,6 +42,7 @@ class StorcliController(RaidController): 'Model': drive_attr.get('Model Number', '').strip(), 'SN': drive_attr.get('SN', '').strip(), 'Size': size, + 'Type': media_type, }) return ret diff --git a/netbox_agent/server.py b/netbox_agent/server.py index 11f5b03..b85baf2 100644 --- a/netbox_agent/server.py +++ b/netbox_agent/server.py @@ -284,9 +284,9 @@ class ServerBase(): def print_debug(self): self.inventory = Inventory(server=self) # FIXME: do something more generic by looping on every get_* methods - print(self.inventory.get_memory()) - print(self.inventory.get_raid_cards()) - print(self.inventory.get_netbox_raid_cards()) +# print(self.inventory.get_memory()) +# print(self.inventory.get_raid_cards()) +# print(self.inventory.get_netbox_raid_cards()) print(self.inventory.get_disks()) return print('Datacenter:', self.get_datacenter())