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')
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)
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()
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))
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