国庆假第一天,补充服务器资产管理server端网卡Memory插件代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了国庆假第一天,补充服务器资产管理server端网卡Memory插件代码相关的知识,希望对你有一定的参考价值。

from asset import models
class Memory(object):
def __init__(self,server_obj,info):
self.server_obj = server_obj
self.memory_dict = info

def process(self):
"""
存在内存增加,删除,更新3中可能
:return:
"""
if not self.memory_dict[‘status‘]:
record_content = self.memory_dict[‘msg‘]
models.ServerRecord.objects.create(self.server_obj.hostname, content=record_content)
return False

new_memory_info_dict = self.memory_dict[‘data‘]
new_memory_obj_queryset = self.server_obj.dic_set.all()
new_memory_slot_set = set(new_memory_info_dict.keys())
old_memory_slot_set = {obj.slot for obj in new_memory_obj_queryset}

add_slot_list = new_memory_slot_set.difference(old_memory_slot_set)
del_slot_list = old_memory_slot_set.difference(new_memory_slot_set)
update_slot_list = new_memory_slot_set.intersection(old_memory_slot_set)

record_list = []

# 增加
if add_slot_list:
for slot in add_slot_list:
new_memory_info = new_memory_info_dict[slot]
add_record = ‘[%s]的在卡槽[%s]添加了内存‘ % (self.server_obj.hostname,slot)
record_list.append(add_record)
new_memory_info[‘server_obj‘] = self.server_obj
models.Memory.objects.create(**new_memory_info)

# 删除
if del_slot_list:
for slot in del_slot_list:
del_record = ‘[%s]的卡槽[%s]移除了内存‘ % (self.server_obj.hostname, slot)
record_list.append(del_record)
models.Memory.objects.filter(server_obj=self.server_obj, slot__in=del_slot_list).delete()

# 更新
if update_slot_list:
for slot in update_slot_list:
new_memory_info = new_memory_info_dict[slot]
update_memory_obj = models.Memory.objects.get(server_obj=self.server_obj, slot=slot)
for k, v in new_memory_info:
if v != getattr(update_memory_obj, k):
update_record = ‘[%s]内存卡槽[%s]的[%s]由[%s]变为[%s]‘ % (
self.server_obj.hostname, slot, k, getattr(update_memory_obj, k), v)
record_list.append(update_record)
setattr(update_memory_obj, k, v)
update_memory_obj.save()

if record_list:
models.ServerRecord.objects.create(server_obj=self.server_obj, content=‘;‘.join(record_list))






















































以上是关于国庆假第一天,补充服务器资产管理server端网卡Memory插件代码的主要内容,如果未能解决你的问题,请参考以下文章

国庆假第四天,1API代码;2一些概念代码等

国庆假期之CMDB管理系统

回到学校,国庆收假的第一天

cmdb资产管理系统server端资产新增和修改(内存和网卡)

2017 10 1国庆培训七天总结(提高组),第一天(STL)。

国庆七天乐——第一天