Adds a generic vendor for unrecognizable systems (#105)

Co-authored-by: Solvik <solvik@solvik.fr>
This commit is contained in:
ThomasADavis 2020-02-02 15:38:23 -08:00 committed by GitHub
commit a5bc16d3b1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 623 additions and 2 deletions

View file

@ -2,6 +2,7 @@ import netbox_agent.dmidecode as dmidecode
from netbox_agent.config import config
from netbox_agent.logging import logging # NOQA
from netbox_agent.vendors.dell import DellHost
from netbox_agent.vendors.generic import GenericHost
from netbox_agent.vendors.hp import HPHost
from netbox_agent.vendors.qct import QCTHost
from netbox_agent.vendors.supermicro import SupermicroHost
@ -12,12 +13,17 @@ MANUFACTURERS = {
'HPE': HPHost,
'Supermicro': SupermicroHost,
'Quanta Cloud Technology Inc.': QCTHost,
'Generic': GenericHost,
}
def run(config):
manufacturer = dmidecode.get_by_type('Chassis')[0].get('Manufacturer')
server = MANUFACTURERS[manufacturer](dmi=dmidecode)
try:
server = MANUFACTURERS[manufacturer](dmi=dmidecode)
except KeyError:
server = GenericHost
if config.debug:
server.print_debug()

23
netbox_agent/vendors/generic.py vendored Normal file
View file

@ -0,0 +1,23 @@
import netbox_agent.dmidecode as dmidecode
from netbox_agent.server import ServerBase
class GenericHost(ServerBase):
def __init__(self, *args, **kwargs):
super(GenericHost, self).__init__(*args, **kwargs)
self.manufacturer = dmidecode.get_by_type('Baseboard')[0].get('Manufacturer')
def is_blade(self):
return None
def get_blade_slot(self):
return None
def get_chassis_name(self):
return None
def get_chassis(self):
return self.get_product_name()
def get_chassis_service_tag(self):
return self.get_service_tag()