code cleanup

This commit is contained in:
Solvik Blum 2019-08-03 23:27:29 +02:00
commit ef7d318c8c
No known key found for this signature in database
GPG key ID: CC12B3DC262B6C47
3 changed files with 44 additions and 25 deletions

34
netbox_agent/cli.py Normal file
View file

@ -0,0 +1,34 @@
import argparse
import sys
from pprint import pprint
import netbox_agent.dmidecode as dmidecode
from netbox_agent.dell.dell import DellHost
from netbox_agent.hp.hp import HPHost
MANUFACTURERS = {
'Dell Inc.': DellHost,
'HP': HPHost,
'HPE': HPHost,
}
def run(args):
manufacturer = dmidecode.get_by_type('Chassis')[0].get('Manufacturer')
server = MANUFACTURERS[manufacturer](dmidecode)
if args.debug:
server.print_debug()
if args.register:
server.netbox_create()
return True
def main():
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('--register', action='store_true',
help='Register server in Netbox')
parser.add_argument('--debug', action='store_true',
help='Print debug informations')
args = parser.parse_args()
return run(args)
if __name__ == '__main__':
main()

View file

@ -1,25 +0,0 @@
import sys
from pprint import pprint
import netbox_agent.dmidecode as dmidecode
from netbox_agent.dell.dell import DellHost
from netbox_agent.hp.hp import HPHost
MANUFACTURERS = {
'Dell Inc.': DellHost,
'HP': HPHost,
'HPE': HPHost,
}
def main():
manufacturer = dmidecode.get_by_type('Chassis')[0].get('Manufacturer')
print(manufacturer)
server = MANUFACTURERS[manufacturer](dmidecode)
print(server.get_product_name())
print(server.get_chassis())
print(server.get_service_tag())
print(server.get_chassis_service_tag())
server.netbox_create()
# print(server.get_network_cards())
if __name__ == '__main__':
main()

View file

@ -155,3 +155,13 @@ class ServerBase():
server = nb.dcim.devices.get(serial=self.get_service_tag())
if not server:
self._netbox_create_server()
def print_debug(self):
# FIXME: do something more generic by looping on every get_* methods
print('Datacenter:', self.get_datacenter())
print('Netbox Datacenter:', self.get_netbox_datacenter())
print('Is blade:', self.is_blade())
print('Product Name:', self.get_product_name())
print('Chassis:', self.get_chassis())
print('Chassis service tag:', self.get_chassis_service_tag())
print('Service tag:', self.get_service_tag())