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))
阅读全文
0 0
- 9.30 课程记录
- 课程记录
- CSS课程记录
- javascript课程记录1
- MIT python课程记录
- 9.28-9.29 课程记录
- 课程项目的记录
- 【课程记录】:移动终端开发课程概要
- 程序设计实践课程记录1
- 程序设计实践课程记录2
- 程序设计实践课程记录3
- 程序设计实践课程记录5
- 程序设计实践课程记录6
- 程序设计实践课程记录7
- 0228UML应用TUP过程课程记录
- CS231n课程:反向传播学习记录
- 课程
- 课程
- 未能写入输出文件“c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\106f9ae8\cc0e1
- 给ajax()方法中的success函数传入参数
- 九月英语--英文缩写
- 关于Linux shell脚本中的 if判断“不起作用”的问题
- Android studio 刮刮乐两种方法
- 9.30 课程记录
- HTML+CSS学习笔记2
- Ajax 实现点击按钮加载更多
- 接口----细节
- HDU 1180 诡异的楼梯
- 【jQuery】jQuery中ajax的4种常用请求方式
- server编译code和cifs mount步骤。
- IO操作——对象流(高级流,字节流)
- 一般函数指针和类的成员函数指针