fix various failed dmidecode calls

This commit is contained in:
Solvik Blum 2020-02-15 20:19:25 +01:00
commit d1631580ce
5 changed files with 10 additions and 10 deletions

View file

@ -16,7 +16,7 @@ class PowerSupply():
def get_power_supply(self): def get_power_supply(self):
power_supply = [] power_supply = []
for psu in self.server.dmi.get_by_type(PSU_DMI_TYPE): for psu in dmidecode.get_by_type(self.server.dmi, PSU_DMI_TYPE):
if 'Present' not in psu['Status'] or psu['Status'] == 'Not Present': if 'Present' not in psu['Status'] or psu['Status'] == 'Not Present':
continue continue

View file

@ -20,7 +20,7 @@ class DellHost(ServerBase):
` Location In Chassis: Slot 03` ` Location In Chassis: Slot 03`
""" """
if self.is_blade(): if self.is_blade():
return self.dmi.get_by_type('Baseboard')[0].get('Location In Chassis').strip() return self.baseboard[0].get('Location In Chassis').strip()
return None return None
def get_chassis_name(self): def get_chassis_name(self):
@ -30,12 +30,12 @@ class DellHost(ServerBase):
def get_chassis(self): def get_chassis(self):
if self.is_blade(): if self.is_blade():
return self.dmi.get_by_type('Chassis')[0]['Version'].strip() return self.chassis[0]['Version'].strip()
return self.get_product_name() return self.get_product_name()
def get_chassis_service_tag(self): def get_chassis_service_tag(self):
if self.is_blade(): if self.is_blade():
return self.dmi.get_by_type('Chassis')[0]['Serial Number'].strip() return self.chassis[0]['Serial Number'].strip()
return self.get_service_tag() return self.get_service_tag()
def get_power_consumption(self): def get_power_consumption(self):

View file

@ -5,7 +5,7 @@ from netbox_agent.server import ServerBase
class GenericHost(ServerBase): class GenericHost(ServerBase):
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
super(GenericHost, self).__init__(*args, **kwargs) super(GenericHost, self).__init__(*args, **kwargs)
self.manufacturer = dmidecode.get_by_type('Baseboard')[0].get('Manufacturer') self.manufacturer = dmidecode.get_by_type(self.dmi, 'Baseboard')[0].get('Manufacturer')
def is_blade(self): def is_blade(self):
return None return None

View file

@ -19,7 +19,7 @@ class HPHost(ServerBase):
""" """
# FIXME: make a dmidecode function get_by_dminame() ? # FIXME: make a dmidecode function get_by_dminame() ?
if self.is_blade(): if self.is_blade():
locator = self.dmi.get_by_type(204) locator = dmidecode.get_by_type(self.dmi, 204)
if self.get_product_name() == 'ProLiant BL460c Gen10': if self.get_product_name() == 'ProLiant BL460c Gen10':
locator = locator[0]['Strings'] locator = locator[0]['Strings']
return { return {

View file

@ -7,12 +7,12 @@ class QCTHost(ServerBase):
self.manufacturer = 'QCT' self.manufacturer = 'QCT'
def is_blade(self): def is_blade(self):
return 'Location In Chassis' in self.dmi.get_by_type('Baseboard')[0].keys() return 'Location In Chassis' in self.baseboard[0].keys()
def get_blade_slot(self): def get_blade_slot(self):
if self.is_blade(): if self.is_blade():
return 'Slot {}'.format( return 'Slot {}'.format(
self.dmi.get_by_type('Baseboard')[0].get('Location In Chassis').strip() self.baseboard[0].get('Location In Chassis').strip()
) )
return None return None
@ -23,10 +23,10 @@ class QCTHost(ServerBase):
def get_chassis(self): def get_chassis(self):
if self.is_blade(): if self.is_blade():
return self.dmi.get_by_type('Chassis')[0]['Version'].strip() return self.chassis[0]['Version'].strip()
return self.get_product_name() return self.get_product_name()
def get_chassis_service_tag(self): def get_chassis_service_tag(self):
if self.is_blade(): if self.is_blade():
return self.dmi.get_by_type('Chassis')[0]['Serial Number'].strip() return self.chassis[0]['Serial Number'].strip()
return self.get_service_tag() return self.get_service_tag()