Example #1
0
    def __create_nic_component(self):
        nic_info = self.clean_data.get('nic')
        if nic_info:
            for nic_item in nic_info:
                try:
                    self.__verify_field(nic_item, 'macaddress', str)
                    if not len(
                            self.response['error']
                    ):  # no processing when there's no error happend
                        data_set = {
                            'asset_id': self.asset_obj.id,
                            'name': nic_item.get('name'),
                            'sn': nic_item.get('sn'),
                            'macaddress': nic_item.get('macaddress'),
                            'ipaddress': nic_item.get('ipaddress'),
                            'bonding': nic_item.get('bonding'),
                            'model': nic_item.get('model'),
                            'netmask': nic_item.get('netmask'),
                        }

                        obj = models.NIC(**data_set)
                        obj.save()

                except Exception as e:
                    self.response_msg('error', 'ObjectCreationException',
                                      'Object [nic] %s' % str(e))
        else:
            self.response_msg(
                'error', 'LackOfData',
                'NIC info is not provied in your reporting data')
Example #2
0
 def _create_nic_info(self):
     for nic_info in self.asset_data.get("interfaces_information"):
         if not (nic_info.get("name") == "lo"
                 or nic_info.get("ip_address") == "127.0.0.1"):
             nic_obj = models.NIC(
                 asset=self.asset_obj,
                 name=nic_info.get("name"),
                 netmask=nic_info.get("netmask"),
                 ip_address=nic_info.get("ip_address"),
                 ip_address_v6=nic_info.get("ip_address_v6"),
                 mac_address=nic_info.get("macaddress"))
             nic_obj.save()
             logmsg = "新增网卡,网卡名:%s IP地址:%s" % (nic_obj.name,
                                               nic_obj.ip_address)
             self.log_handler(2, detail=logmsg)
Example #3
0
 def _create_nic(self, asset):
     """创建网卡,可能有多个网卡,甚至虚拟网卡"""
     nic_list = self.data.get("nic")
     if not nic_list:
         return
     for nic_dict in nic_list:
         if not nic_dict.get("mac"):
             raise ValueError("网卡缺少mac地址!")
         if not nic_dict.get("model"):
             raise ValueError("网卡型号未知!")
         nic = models.NIC()
         nic.asset = asset
         nic.name = nic_dict.get("name")
         nic.model = nic_dict.get("model")
         nic.mac = nic_dict.get("mac")
         nic.ip_addr = nic_dict.get("ip_address")
         if nic_dict.get("net_mask") and len(nic_dict.get("net_mask")) > 0:
             nic.net_mask = nic_dict.get("net_mask")
         nic.save()
Example #4
0
 def __create_nic_component(self):
     nic_info = self.clean_data.get("nic")
     if nic_info:
         for nic_item in nic_info:
             try:
                 self.__verify_field(nic_item, "macaddress", str)
                 if not len(self.response["error"]):
                     data_set = {
                         "asset_id": self.asset_obj.id,
                         "name": nic_item.get("name"),
                         "ipaddress": nic_item.get("ipaddress"),
                         "macaddress": nic_item.get("macaddress"),
                         "netmask": nic_item.get("netmask"),
                     }
                     obj = models.NIC(**data_set)
                     obj.save()
             except Exception as e:
                 self.response_msg("error", "ObjectCreationException",
                                   "Object [nic] %s" % str(e))
Example #5
0
    def __handle_update(self):
        file_data = xlrd.open_workbook('%s/%s' % (FILE_PATH, self.file_name))
        table = file_data.sheets()[0]
        table_dic = {}
        # 临时IP列表,用于存放更新失败的IP地址
        false_ip_list = []
        count = 0
        for row in range(0, table.nrows):
            for col in range(0, table.ncols):
                if row == 0:
                    continue
                else:
                    # 更新数据
                    table_dic[self.col_name[col]] = table.row_values(row)[col]

            if table_dic:
                try:
                    get_update_object = cmdb_models.Asset.objects.get(
                        asset_num=table_dic['资产编号'])
                except:
                    get_update_object = None

                if get_update_object:
                    get_update_object.idc = cmdb_models.IDC.objects.get(
                        name=table_dic['机房'])
                    get_update_object.nic_set.all().update(
                        ipaddress=table_dic['IP'])
                    get_update_object.name = table_dic['主机名称']
                    get_update_object.server.sn = table_dic['SN']
                    get_update_object.asset_type = table_dic['资产类型']
                    if table_dic['厂商']:
                        get_update_object.manufactory = cmdb_models.Manufactory.objects.get(
                            manufactory=table_dic['厂商'])
                    get_update_object.server.model = table_dic['型号']
                    get_update_object.server.configuration = table_dic['配置信息']
                    get_update_object.admin = table_dic['运维人']
                    get_update_object.user = table_dic['使用人']
                    get_update_object.dept = table_dic['业务部门']
                    get_update_object.memo = table_dic['备注']
                    get_update_object.server.save()
                    get_update_object.save()
                    for i in get_update_object.nic_set.all():
                        print(i.ipaddress)
                else:
                    get_asset_num = asset_num.asset_num_builder()
                    try:
                        new_asset_data = cmdb_models.Asset(
                            name=table_dic['主机名称'],
                            asset_num=get_asset_num,
                            idc=cmdb_models.IDC.objects.get(
                                name=table_dic['机房']),
                            admin=table_dic['运维人'],
                            user=table_dic['使用人'],
                            dept=table_dic['业务部门'],
                            memo=table_dic['备注'],
                        )

                        if table_dic['厂商']:
                            new_asset_data.manufactory = cmdb_models.Manufactory.objects.get(
                                manufactory=table_dic['厂商'])

                        new_asset_data.save()

                        new_server_data = cmdb_models.Server(
                            asset=new_asset_data,
                            created_by='excel',
                            sn=table_dic['SN'],
                        )
                        new_server_data.save()

                        new_nic_data = cmdb_models.NIC(
                            asset=new_asset_data,
                            ipaddress=table_dic['IP'],
                        )
                        new_nic_data.save()

                    except Exception as e:
                        print(Exception, e)
                        pass
        return 1