update memory and cpu
This commit is contained in:
parent
b90cee6b35
commit
c508fa17f0
1 changed files with 48 additions and 19 deletions
|
@ -74,6 +74,19 @@ class Inventory():
|
||||||
discovered=True,
|
discovered=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def update_netbox_cpus(self):
|
||||||
|
cpus_number, model = self.get_cpus()
|
||||||
|
nb_cpus = nb.dcim.inventory_items.filter(
|
||||||
|
device_id=self.device_id,
|
||||||
|
tag=INVENTORY_TAG['cpu']['slug'],
|
||||||
|
)
|
||||||
|
|
||||||
|
if not len(nb_cpus) or \
|
||||||
|
len(nb_cpus) and cpus_number != len(nb_cpus):
|
||||||
|
for x in nb_cpus:
|
||||||
|
x.delete()
|
||||||
|
self.create_netbox_cpus()
|
||||||
|
|
||||||
def get_raid_cards(self):
|
def get_raid_cards(self):
|
||||||
if self.server.manufacturer == 'Dell':
|
if self.server.manufacturer == 'Dell':
|
||||||
if is_tool('storcli'):
|
if is_tool('storcli'):
|
||||||
|
@ -206,6 +219,7 @@ class Inventory():
|
||||||
'PN': value['Part Number'].strip(),
|
'PN': value['Part Number'].strip(),
|
||||||
'SN': value['Serial Number'].strip(),
|
'SN': value['Serial Number'].strip(),
|
||||||
'Locator': value['Locator'].strip(),
|
'Locator': value['Locator'].strip(),
|
||||||
|
'Type': value['Type'].strip(),
|
||||||
})
|
})
|
||||||
return memories
|
return memories
|
||||||
|
|
||||||
|
@ -222,8 +236,7 @@ class Inventory():
|
||||||
)
|
)
|
||||||
return memories
|
return memories
|
||||||
|
|
||||||
def create_netbox_memory(self):
|
def create_netbox_memory(self, memory):
|
||||||
for memory in self.get_memory():
|
|
||||||
manufacturer = nb.dcim.manufacturers.get(
|
manufacturer = nb.dcim.manufacturers.get(
|
||||||
name=memory['Manufacturer']
|
name=memory['Manufacturer']
|
||||||
)
|
)
|
||||||
|
@ -232,18 +245,32 @@ class Inventory():
|
||||||
name=memory['Manufacturer'],
|
name=memory['Manufacturer'],
|
||||||
slug=memory['Manufacturer'].lower(),
|
slug=memory['Manufacturer'].lower(),
|
||||||
)
|
)
|
||||||
memories = nb.dcim.inventory_items.create(
|
memory = nb.dcim.inventory_items.create(
|
||||||
device=self.device_id,
|
device=self.device_id,
|
||||||
discovered=True,
|
discovered=True,
|
||||||
manufacturer=manufacturer.id,
|
manufacturer=manufacturer.id,
|
||||||
tags=[INVENTORY_TAG['memory']['name']],
|
tags=[INVENTORY_TAG['memory']['name']],
|
||||||
name='{} ({})'.format(memory['Locator'], memory['Size']),
|
name='{} ({} {})'.format(memory['Locator'], memory['Size'], memory['Type']),
|
||||||
part_id=memory['PN'],
|
part_id=memory['PN'],
|
||||||
serial=memory['SN'],
|
serial=memory['SN'],
|
||||||
)
|
)
|
||||||
|
return memory
|
||||||
|
|
||||||
|
def create_netbox_memories(self):
|
||||||
|
for memory in self.get_memory():
|
||||||
|
self.create_netbox_memory(memory)
|
||||||
|
|
||||||
def update_netbox_memory(self):
|
def update_netbox_memory(self):
|
||||||
pass
|
memories = self.get_memory()
|
||||||
|
nb_memories = self.get_netbox_memory()
|
||||||
|
|
||||||
|
for nb_memory in nb_memories:
|
||||||
|
if nb_memory.serial not in [x['SN'] for x in memories]:
|
||||||
|
nb_memory.delete()
|
||||||
|
|
||||||
|
for memory in memories:
|
||||||
|
if memory['SN'] not in [x.serial for x in nb_memories]:
|
||||||
|
self.create_netbox_memory(memory)
|
||||||
|
|
||||||
def create(self):
|
def create(self):
|
||||||
self.create_netbox_cpus()
|
self.create_netbox_cpus()
|
||||||
|
@ -255,3 +282,5 @@ class Inventory():
|
||||||
self.update_netbox_memory()
|
self.update_netbox_memory()
|
||||||
self.update_netbox_raid_cards()
|
self.update_netbox_raid_cards()
|
||||||
self.update_netbox_disks()
|
self.update_netbox_disks()
|
||||||
|
self.update_netbox_cpus()
|
||||||
|
self.update_netbox_memory()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue