Local inventory #16

Merged
Solvik merged 12 commits from feature/inventory into master 2019-08-26 16:54:49 +02:00
5 changed files with 20 additions and 10 deletions
Showing only changes of commit 397cc7a648 - Show all commits

View file

@ -65,6 +65,8 @@ rack_location:
#
# driver: "file:/tmp/datacenter"
# regex: "(.*)"
inventory: true
```
# Hardware

View file

@ -23,4 +23,6 @@ rack_location:
# regex: 'SysName:[ ]+[A-Za-z]+-[A-Za-z]+-([A-Za-z0-9]+)'
#
# driver: "file:/tmp/datacenter"
# regex: "(.*)"
# regex: "(.*)"
inventory: true

View file

@ -38,3 +38,5 @@ if config.get('network'):
NETWORK_IGNORE_INTERFACES = config['network'].get('ignore_interfaces')
NETWORK_IGNORE_IPS = config['network'].get('ignore_ips')
NETWORK_LLDP = config['network'].get('lldp') is True
INVENTORY_ENABLED = config.get('inventory') == True

View file

@ -2,7 +2,7 @@ import logging
import subprocess
import re
from netbox_agent.config import netbox_instance as nb
from netbox_agent.config import netbox_instance as nb, INVENTORY_ENABLED
from netbox_agent.misc import is_tool
from netbox_agent.raid.hp import HPRaid
from netbox_agent.raid.storcli import StorcliRaid
@ -43,6 +43,10 @@ class Inventory():
* get netbox item
* create netbox item
* update netbox item
Known issues:
- no scan of non-raid devices
- no scan of NVMe devices
"""
def __init__(self, server):
@ -306,13 +310,19 @@ class Inventory():
self.create_netbox_memory(memory)
def create(self):
if not INVENTORY_ENABLED:
return False
self.create_netbox_cpus()
self.create_netbox_memory()
self.create_netbox_raid_cards()
self.create_netbox_disks()
return True
def update(self):
if not INVENTORY_ENABLED:
return False
self.update_netbox_cpus()
self.update_netbox_memory()
self.update_netbox_raid_cards()
self.update_netbox_disks()
return True

View file

@ -274,7 +274,7 @@ class ServerBase():
# check network cards
self.network = Network(server=self)
self.network.update_netbox_network_cards()
# check raid_cards
# update inventory
self.inventory = Inventory(server=self)
self.inventory.update()
if update:
@ -282,13 +282,7 @@ class ServerBase():
logging.debug('Finished updating Server!')
def print_debug(self):
self.inventory = Inventory(server=self)
# FIXME: do something more generic by looping on every get_* methods
# print(self.inventory.get_memory())
# print(self.inventory.get_raid_cards())
# print(self.inventory.get_netbox_raid_cards())
print(self.inventory.get_disks())
return
self.network = Network(server=self)
print('Datacenter:', self.get_datacenter())
print('Netbox Datacenter:', self.get_netbox_datacenter())
print('Rack:', self.get_rack())