def get_neighbor_list( recv_str ): # save the data to local array neighbor_list = [] recv_tmp = '' tuple_count = 0 recv_str_tail = 0 # parse the recive message by cli type # init the data SystemName = 'System Name' SystemName_val = '' System_des = ' System description : ' Local_ifx = 'Local Intf' Local_ifx_val = '' Local_ifx_tail = ']\r\n' PortID = 'Port ID' PortID_val = '' Port_des = ' Port description :' Capability = 'Capability' Capability_val = '' Agingtime = 'Aging-time' Agingtime_val = '' Neighbor_index_val = '' ChassisID_type_val = '' ChassisID_val = '' while True: SystemName_val = switch_api.get_val_by_str(SystemName, System_des, recv_tmp) SystemName_val = SystemName_val[:-2] #print 'get_lldp_neighbor SystemName_val = %s \r\n' % SystemName_val, # get val message by search string in revice message Local_ifx_val = switch_api.get_val_by_str(Local_ifx, Local_ifx_tail, recv_tmp) if len(Local_ifx_val) == 0: print'get_lldp_neighbor can not find Local_ifx_val !\r\n' #print 'get_lldp_neighbor Local_ifx_val = %s \r\n' % Local_ifx_val, PortID_val = switch_api.get_val_by_str(PortID, Port_des, recv_tmp) PortID_val = PortID_val[:-2] #print 'get_lldp_neighbor PortID_val = %s \r\n' % PortID_val, recv_str = recv_str[recv_str_tail:-1] #print '\r\n#################################################### \r\n' #print 'get_lldp_neighbor recv_str 3 = %s \r\n' % recv_str, #print '\r\n#################################################### \r\n' #print 'get_lldp_neighbor recv_str_head = %d \r\n' % recv_str_tail, if len(Local_ifx_val) > 0: ifx = Local_ifx_val #print 'get_lldp_neighbor ifx = %s \r\n' % ifx, neighbor_tuple = (ifx, Neighbor_index_val, ChassisID_type_val, ChassisID_val) neighbor_list.insert( tuple_count, neighbor_tuple ) tuple_count = tuple_count +1 continue return neighbor_list
def get_neighbor_list_details( recv_str ): # save the data to local array neighbor_list = [] recv_tmp = '' tuple_count = 0 recv_str_tail = 0 # parse the recive message by cli type # init the data Local_ifx = 'LLDP neighbor-information of port [' Local_ifx_val = '' Local_ifx_tail = ']\r\n' Neighbor_index = 'Neighbor index : ' Neighbor_index_val = '' Device_type = ' Device type : ' ChassisID_type = ' Chassis ID type : ' ChassisID_type_val = '' ChassisID = ' Chassis ID : ' ChassisID_val = '' SystemName = ' System name : ' SystemName_val = '' System_des = ' System description : ' PortID_type = ' Port ID type : ' PortID_type_val = '' PortID = 'Port ID : ' PortID_val = '' Port_des = ' Port description :' Port_VLANID = 'Port VLAN ID : ' Port_VLANID_val = '' PPVID = ' Port and protocol VLAN ID(PPVID) : ' UnitEnd = ' Maximum frame Size :' while True: ret = recv_str.find(UnitEnd) if ret == -1: break; recv_str_tail = ret + len(UnitEnd) recv_tmp = recv_str[0:recv_str_tail] # get val message by search string in revice message Local_ifx_val = switch_api.get_val_by_str(Local_ifx, Local_ifx_tail, recv_tmp) if len(Local_ifx_val) == 0: LOG.debug("get_lldp_neighbor can not find Local_ifx_val !") Neighbor_index_val = switch_api.get_val_by_str(Neighbor_index, Device_type, recv_tmp) if len(Neighbor_index_val) == 0: LOG.error("get_lldp_neighbor Neighbor_index_val not find = %s ",Neighbor_index_val) break Neighbor_index_val = Neighbor_index_val[:-2] ChassisID_type_val = switch_api.get_val_by_str(ChassisID_type, ChassisID, recv_tmp) ChassisID_type_val = ChassisID_type_val[:-2] ChassisID_val = switch_api.get_val_by_str(ChassisID, SystemName, recv_tmp) ChassisID_val = ChassisID_val[:ChassisID_val.find('\r\n')] SystemName_val = switch_api.get_val_by_str(SystemName, System_des, recv_tmp) SystemName_val = SystemName_val[:-2] PortID_type_val = switch_api.get_val_by_str(PortID_type, PortID, recv_tmp) PortID_type_val = PortID_type_val[:PortID_type_val.find('\r\n')] PortID_val = switch_api.get_val_by_str(PortID, Port_des, recv_tmp) PortID_val = PortID_val[:PortID_val.find('\r\n')] Port_VLANID_val = switch_api.get_val_by_str(Port_VLANID, PPVID, recv_tmp) Port_VLANID_val = Port_VLANID_val[:-2] recv_str = recv_str[recv_str_tail:-1] LOG.debug("get_lldp_neighbor recv_str 3 = %s \r\n ",recv_str) if len(Local_ifx_val) > 0: ifx = Local_ifx_val neighbor_tuple = (ifx, Neighbor_index_val, PortID_type_val, PortID_val) neighbor_list.insert( tuple_count, neighbor_tuple ) tuple_count = tuple_count +1 LOG.debug("get_lldp_neighbor serach = %d times\r\n ",tuple_count) continue return neighbor_list