9.28-9.29 课程记录

来源:互联网 发布:mac 双定制粉底液 肤质 编辑:程序博客网 时间:2024/06/08 20:07

网卡插件

from repository import modelsclass Nic(object):    def __init__(self, server_obj, info):        self.server_obj = server_obj        self.nic_dict = info    def process(self):        new_nic_info_dict = self.nic_dict['data']        old_disk_info_list = self.server_obj.nic.all()        new_nic_name_set = set(new_nic_info_dict.keys())        old_nic_name_set = {nic.name for nic in old_disk_info_list}        add_name_list = new_nic_name_set.difference(old_nic_name_set)        print(add_name_list)        del_name_list = old_nic_name_set.difference(new_nic_name_set)        print(del_name_list)        update_name_list = old_nic_name_set.intersection(new_nic_name_set)        print(update_name_list)        add_record_list = []        for name in add_name_list:            nic_dick = new_nic_info_dict[name]            tmp = '[%s]添加网卡:网卡名称[%s]' %(self.server_obj.hostname, name)            add_record_list.append(tmp)            nic_dick['server_obj'] = self.server_obj            models.NIC.objects.create(**nic_dick)        if add_record_list:            models.ServerRecord.objects.create(server_obj=self.server_obj, content=';'.join(add_record_list))        del_record_list = []        models.NIC.objects.filter(server_obj=self.server_obj, name__in=del_name_list).delete()        for name in del_name_list:            tmp = '[%s]删除网卡:网卡名称[%s]' % (self.server_obj.hostname, name)            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 name in update_name_list:            tmp = '[%s]更新网卡:网卡名称[%s],' % (self.server_obj.hostname, name)            nic_dict = new_nic_info_dict[name]            obj = models.NIC.objects.filter(server_obj=self.server_obj, name=name).first()            for k, new_val in nic_dict.items():                old_val = getattr(obj, k)                if old_val != new_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))

这里写图片描述

这里写图片描述