9.30 课程记录

来源:互联网 发布:印度教 知乎 编辑:程序博客网 时间:2024/05/18 03:13
from repository import modelsclass Memory(object):    def __init__(self, server_obj, info):        self.server_obj = server_obj        self.memory_dict = info    def process(self):        new_memory_info_dict = self.memory_dict['data']        old_memory_info_list = self.server_obj.memory.all()        new_memory_slot_set = set(new_memory_info_dict.keys())        old_memory_slot_set = {memory.slot for memory in old_memory_info_list}        add_slot_list = new_memory_slot_set.difference(old_memory_slot_set)        print(add_slot_list)        del_slot_list = old_memory_slot_set.difference(new_memory_slot_set)        print(del_slot_list)        update_slot_list = old_memory_slot_set.intersection(new_memory_slot_set)        print(update_slot_list)        add_record_list = []        for slot in add_slot_list:            memory_dick = new_memory_info_dict[slot]            tmp = '[%s]添加新内存:槽位[%s],容量[%s];' % (            self.server_obj.hostname, slot, new_memory_info_dict[slot]['capacity'])            add_record_list.append(tmp)            memory_dick['server_obj'] = self.server_obj            models.Memory.objects.create(**memory_dick)        if add_record_list:            models.ServerRecord.objects.create(server_obj=self.server_obj, content=';'.join(add_record_list))        del_record_list = []        models.Memory.objects.filter(server_obj=self.server_obj, slot__in=del_record_list).delete()        for slot in del_slot_list:            tmp = '[%s]删除内存:槽位[%s];' %(self.server_obj.hostname, slot)            del_record_list.append(tmp)        if del_record_list:            models.ServerRecord.objects.create(server_obj = self.server_obj, content=';'.join(del_record_list))        update_record_list = []        for slot in update_slot_list:            tmp = '[%s]更新内存:槽位[%s]' %(self.server_obj.hostname, slot)            memory_dick = new_memory_info_dict[slot]            obj = models.Memory.objects.filter(server_obj=self.server_obj, slot=slot).first()            for k, new_val in memory_dick:                old_val = getattr(obj, k)                if not new_val == old_val:                    setattr(obj, k, new_val)                    tmp = tmp + '[%s]由[%s]更新为[%s]' %(k, old_val, new_val)            obj.save()            update_record_list.append(tmp)        if update_record_list:            models.ServerRecord.objects.create(server_obj=self.server_obj, content=';'.join(update_record_list))

这里写图片描述

原创粉丝点击