9.28-9.29 课程记录

网卡插件

from repository import models


class 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))

这里写图片描述

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值