fix logging and add media type for physical disk

This commit is contained in:
Solvik Blum 2019-08-21 17:36:30 +02:00
parent 4c3864b94e
commit afdf26c920
No known key found for this signature in database
GPG key ID: CC12B3DC262B6C47
3 changed files with 20 additions and 10 deletions

View file

@ -72,8 +72,9 @@ class Inventory():
tags=[INVENTORY_TAG['cpu']['name']], tags=[INVENTORY_TAG['cpu']['name']],
name=model, name=model,
discovered=True, 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): def update_netbox_cpus(self):
cpus_number, model = self.get_cpus() cpus_number, model = self.get_cpus()
@ -121,7 +122,7 @@ class Inventory():
name=name, name=name,
slug=name.lower(), slug=name.lower(),
) )
logging.info('Created missing manufacturer {name}'.format(name=name)) logging.info('Creating missing manufacturer {name}'.format(name=name))
return manufacturer return manufacturer
def create_netbox_raid_card(self, raid_card): def create_netbox_raid_card(self, raid_card):
@ -137,8 +138,9 @@ class Inventory():
tags=[INVENTORY_TAG['raid_card']['name']], tags=[INVENTORY_TAG['raid_card']['name']],
name='{}'.format(name), name='{}'.format(name),
serial='{}'.format(serial), 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, name=name,
serial=serial, serial=serial,
)) ))
@ -191,13 +193,17 @@ class Inventory():
def create_netbox_disks(self): def create_netbox_disks(self):
for disk in self.get_disks(): for disk in self.get_disks():
disk = nb.dcim.inventory_items.create( _ = nb.dcim.inventory_items.create(
device=self.device_id, device=self.device_id,
discovered=True, discovered=True,
tags=[INVENTORY_TAG['disk']['name']], tags=[INVENTORY_TAG['disk']['name']],
name='{} ({})'.format(disk['Model'], disk['Size']), name='{} ({})'.format(disk['Model'], disk['Size']),
serial=disk['SN'], serial=disk['SN'],
) )
logging.info('Creating Disk {model} {serial}'.format(
model=disk['Model'],
serial=disk['SN'],
))
def update_netbox_disks(self): def update_netbox_disks(self):
nb_disks = self.get_netbox_disks() nb_disks = self.get_netbox_disks()
@ -215,12 +221,13 @@ class Inventory():
# create disks that are not in netbox # create disks that are not in netbox
for disk in disks: for disk in disks:
if disk['SN'] not in [x.serial for x in nb_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, device=self.device_id,
discovered=True, discovered=True,
tags=[INVENTORY_TAG['disk']['name']], tags=[INVENTORY_TAG['disk']['name']],
name='{} ({})'.format(disk['Model'], disk['Size']), name='{} ({})'.format(disk['Model'], disk['Size']),
serial=disk['SN'], serial=disk['SN'],
description=disk.get('Type', ''),
) )
logging.info('Creating Disk {model} {serial}'.format( logging.info('Creating Disk {model} {serial}'.format(
model=disk['Model'], model=disk['Model'],
@ -264,7 +271,7 @@ class Inventory():
name=memory['Manufacturer'], name=memory['Manufacturer'],
slug=memory['Manufacturer'].lower(), slug=memory['Manufacturer'].lower(),
) )
memory = nb.dcim.inventory_items.create( nb_memory = nb.dcim.inventory_items.create(
device=self.device_id, device=self.device_id,
discovered=True, discovered=True,
manufacturer=manufacturer.id, manufacturer=manufacturer.id,
@ -272,12 +279,13 @@ class Inventory():
name='{} ({} {})'.format(memory['Locator'], memory['Size'], memory['Type']), name='{} ({} {})'.format(memory['Locator'], memory['Size'], memory['Type']),
part_id=memory['PN'], part_id=memory['PN'],
serial=memory['SN'], serial=memory['SN'],
description='RAM',
) )
logging.info('Creating Memory {type} {size}'.format( logging.info('Creating Memory {type} {size}'.format(
type=memory['Type'], type=memory['Type'],
size=memory['Size'], size=memory['Size'],
)) ))
return memory return nb_memory
def create_netbox_memories(self): def create_netbox_memories(self):
for memory in self.get_memory(): for memory in self.get_memory():

View file

@ -32,6 +32,7 @@ class StorcliController(RaidController):
enclosure = physical_drive.get('EID:Slt').split(':')[0] enclosure = physical_drive.get('EID:Slt').split(':')[0]
slot = physical_drive.get('EID:Slt').split(':')[1] slot = physical_drive.get('EID:Slt').split(':')[1]
size = physical_drive.get('Size').strip() size = physical_drive.get('Size').strip()
media_type = physical_drive.get('Med').strip()
drive_identifier = 'Drive /c{}/e{}/s{}'.format( drive_identifier = 'Drive /c{}/e{}/s{}'.format(
str(self.controller_index), str(enclosure), str(slot) str(self.controller_index), str(enclosure), str(slot)
) )
@ -41,6 +42,7 @@ class StorcliController(RaidController):
'Model': drive_attr.get('Model Number', '').strip(), 'Model': drive_attr.get('Model Number', '').strip(),
'SN': drive_attr.get('SN', '').strip(), 'SN': drive_attr.get('SN', '').strip(),
'Size': size, 'Size': size,
'Type': media_type,
}) })
return ret return ret

View file

@ -284,9 +284,9 @@ class ServerBase():
def print_debug(self): def print_debug(self):
self.inventory = Inventory(server=self) self.inventory = Inventory(server=self)
# FIXME: do something more generic by looping on every get_* methods # FIXME: do something more generic by looping on every get_* methods
print(self.inventory.get_memory()) # print(self.inventory.get_memory())
print(self.inventory.get_raid_cards()) # print(self.inventory.get_raid_cards())
print(self.inventory.get_netbox_raid_cards()) # print(self.inventory.get_netbox_raid_cards())
print(self.inventory.get_disks()) print(self.inventory.get_disks())
return return
print('Datacenter:', self.get_datacenter()) print('Datacenter:', self.get_datacenter())