From dad4a3b57db83da5ab8bb2c163d767e8eadd8c59 Mon Sep 17 00:00:00 2001 From: Thomas Davis Date: Mon, 20 Jan 2020 15:04:49 -0800 Subject: [PATCH] Adds a generic vendor for unrecognizable systems --- netbox_agent/cli.py | 8 +++++++- netbox_agent/vendors/generic.py | 23 +++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 netbox_agent/vendors/generic.py diff --git a/netbox_agent/cli.py b/netbox_agent/cli.py index b965421..7ff77d5 100644 --- a/netbox_agent/cli.py +++ b/netbox_agent/cli.py @@ -5,6 +5,7 @@ from netbox_agent.vendors.dell import DellHost from netbox_agent.vendors.hp import HPHost from netbox_agent.vendors.qct import QCTHost from netbox_agent.vendors.supermicro import SupermicroHost +from netbox_agent.vendors.generic import GenericHost MANUFACTURERS = { 'Dell Inc.': DellHost, @@ -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 = MANUFACTURERS["Generic"] if config.debug: server.print_debug() diff --git a/netbox_agent/vendors/generic.py b/netbox_agent/vendors/generic.py new file mode 100644 index 0000000..695c0d2 --- /dev/null +++ b/netbox_agent/vendors/generic.py @@ -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()