def reinit_data(self): """ Subclass update interface information """ self.if_name_map, \ self.if_alias_map, \ self.if_id_map, \ self.oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, self.db_conn) self.lag_name_if_name_map, \ self.if_name_lag_name_map, \ self.oid_lag_name_map, _, _ = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, self.db_conn) """ db_conn - will have db_conn to all namespace DBs and global db. First db in the list is global db. Use first global db to get management interface table. """ self.mgmt_oid_name_map, \ self.mgmt_alias_map = mibs.init_mgmt_interface_tables(self.db_conn[0]) self.vlan_name_map, \ self.vlan_oid_sai_map, \ self.vlan_oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_vlan_tables, self.db_conn) self.rif_port_map, \ self.port_rif_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_rif_tables, self.db_conn) self.if_range = sorted( list(self.oid_name_map.keys()) + list(self.oid_lag_name_map.keys()) + list(self.mgmt_oid_name_map.keys()) + list(self.vlan_oid_name_map.keys())) self.if_range = [(i, ) for i in self.if_range]
def reinit_data(self): """ Subclass update interface information """ self.if_name_map, \ self.if_alias_map, \ self.if_id_map, \ self.oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, self.db_conn) self.mgmt_oid_name_map, \ self.mgmt_alias_map = mibs.init_mgmt_interface_tables(self.db_conn[0]) # merge dataplane and mgmt ports self.oid_name_map.update(self.mgmt_oid_name_map) self.if_alias_map.update(self.mgmt_alias_map) self.if_range = [] # get local port kvs from APP_BD's PORT_TABLE self.loc_port_data = {} for if_oid, if_name in self.oid_name_map.items(): self.update_interface_data(if_name) self.if_range.append((if_oid, )) self.if_range.sort() if not self.loc_port_data: logger.warning( "0 - b'PORT_TABLE' is empty. No local port information could be retrieved." )
def reinit_data(self): """ Subclass update interface information """ self.if_name_map, \ self.if_alias_map, \ self.if_id_map, \ self.oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, self.db_conn) self.update_data()
def reinit_data(self): """ Subclass update interface information """ self.if_name_map, \ self.if_alias_map, \ self.if_id_map, \ self.oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, self.db_conn) for sai_id_key in self.if_id_map: namespace, sai_id = mibs.split_sai_id_key(sai_id_key) if_idx = mibs.get_index_from_str(self.if_id_map[sai_id_key]) self.port_index_namespace[if_idx] = namespace self.port_queues_map, self.queue_stat_map, self.port_queue_list_map = \ Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_queue_tables, self.db_conn) for db_conn in Namespace.get_non_host_dbs(self.db_conn): self.queue_type_map[db_conn.namespace] = db_conn.get_all(mibs.COUNTERS_DB, "COUNTERS_QUEUE_TYPE_MAP", blocking=False)
def reinit_data(self): """ Subclass update interface information """ ( self.if_name_map, self.if_alias_map, self.if_id_map, self.oid_name_map, ) = Namespace.get_sync_d_from_all_namespace( mibs.init_sync_d_interface_tables, self.db_conn) self.lag_name_if_name_map, \ self.if_name_lag_name_map, \ self.oid_lag_name_map, \ _, self.sai_lag_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, self.db_conn) self.if_bpid_map = Namespace.dbs_get_bridge_port_map( self.db_conn, mibs.ASIC_DB) self.bvid_vlan_map.clear()
def test_init_sync_d_lag_tables(self): db_conn = Namespace.init_namespace_dbs() lag_name_if_name_map, \ if_name_lag_name_map, \ oid_lag_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, db_conn) self.assertTrue(b"PortChannel04" in lag_name_if_name_map) self.assertTrue(lag_name_if_name_map[b"PortChannel04"] == [b"Ethernet124"]) self.assertTrue(b"Ethernet124" in if_name_lag_name_map) self.assertTrue(if_name_lag_name_map[b"Ethernet124"] == b"PortChannel04") self.assertTrue(b"PortChannel_Temp" in lag_name_if_name_map) self.assertTrue(lag_name_if_name_map[b"PortChannel_Temp"] == [])
def reinit_data(self): """ Subclass update interface information """ self.if_name_map, \ self.if_alias_map, \ self.if_id_map, \ self.oid_name_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, self.db_conn) """ db_conn - will have db_conn to all namespace DBs and global db. First db in the list is global db. Use first global db to get management interface table. """ self.mgmt_oid_name_map, \ self.mgmt_alias_map = mibs.init_mgmt_interface_tables(self.db_conn[0])
def update_data(self): """ Update redis (caches config) Pulls the table references for each interface. """ for sai_id_key in self.if_id_map: namespace, sai_id = mibs.split_sai_id_key(sai_id_key) if_idx = mibs.get_index_from_str(self.if_id_map[sai_id_key]) self.if_counters[if_idx] = self.namespace_db_map[namespace].get_all(mibs.COUNTERS_DB, \ mibs.counter_table(sai_id), blocking=True) self.lag_name_if_name_map, \ self.if_name_lag_name_map, \ self.oid_lag_name_map, _ = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, self.db_conn) self.if_range = sorted(list(self.oid_name_map.keys()) + list(self.oid_lag_name_map.keys())) self.if_range = [(i,) for i in self.if_range]
def reinit_data(self): """ Re-initialize all data. """ # reinit cache self.physical_classes_map = {} self.physical_description_map = {} self.physical_hw_version_map = {} self.physical_serial_number_map = {} self.physical_mfg_name_map = {} self.physical_model_name_map = {} # update interface maps _, self.if_alias_map, _, _ = \ Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, Namespace.init_namespace_dbs()) device_metadata = mibs.get_device_metadata(self.statedb[0]) chassis_sub_id = (self.CHASSIS_ID, ) self.physical_entities = [chassis_sub_id] if not device_metadata or not device_metadata.get( b"chassis_serial_number"): chassis_serial_number = "" else: chassis_serial_number = device_metadata[b"chassis_serial_number"] self.physical_classes_map[chassis_sub_id] = PhysicalClass.CHASSIS self.physical_serial_number_map[chassis_sub_id] = chassis_serial_number # retrieve the initial list of transceivers that are present in the system transceiver_info = Namespace.dbs_keys(self.statedb, mibs.STATE_DB, self.TRANSCEIVER_KEY_PATTERN) if transceiver_info: self.transceiver_entries = [entry.decode() \ for entry in transceiver_info] else: self.transceiver_entries = [] # update cache with initial data for transceiver_entry in self.transceiver_entries: # extract interface name interface = transceiver_entry.split( mibs.TABLE_NAME_SEPARATOR_VBAR)[-1] self._update_transceiver_cache(interface)
def reinit_data(self): """ Subclass reinit data routine. """ _, _, _, self.oid_name_map = Namespace.get_sync_d_from_all_namespace( mibs.init_sync_d_interface_tables, self.db_conn) self.mgmt_oid_name_map, _ = mibs.init_mgmt_interface_tables( self.db_conn[0]) self.oid_name_map.update(self.mgmt_oid_name_map) # establish connection to application database. Namespace.connect_all_dbs(self.db_conn, mibs.APPL_DB) self.if_range = [] for if_oid, if_name in self.oid_name_map.items(): self.update_rem_if_mgmt(if_oid, if_name)
def test_init_namespace_sync_d_lag_tables(self): dbs = Namespace.init_namespace_dbs() lag_name_if_name_map, \ if_name_lag_name_map, \ oid_lag_name_map, \ lag_sai_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, dbs) #PortChannel in asic0 Namespace self.assertTrue("PortChannel01" in lag_name_if_name_map) self.assertTrue("Ethernet-BP0" in lag_name_if_name_map["PortChannel01"]) self.assertTrue("Ethernet-BP4" in lag_name_if_name_map["PortChannel01"]) #PortChannel in asic2 Namespace self.assertTrue("PortChannel03" in lag_name_if_name_map) self.assertTrue("Ethernet-BP16" in lag_name_if_name_map["PortChannel03"]) self.assertTrue("Ethernet-BP20" in lag_name_if_name_map["PortChannel03"]) self.assertTrue("PortChannel_Temp" in lag_name_if_name_map) self.assertTrue(lag_name_if_name_map["PortChannel_Temp"] == [])
def update_data(self): """ Update redis (caches config) Pulls the table references for each interface. """ self.update_if_counters() self.update_rif_counters() self.aggregate_counters() self.lag_name_if_name_map, \ self.if_name_lag_name_map, \ self.oid_lag_name_map, \ self.lag_sai_map = Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_lag_tables, self.db_conn) self.if_range = sorted(list(self.oid_name_map.keys()) + list(self.oid_lag_name_map.keys()) + list(self.mgmt_oid_name_map.keys()) + list(self.vlan_oid_name_map.keys())) self.if_range = [(i,) for i in self.if_range]
def reinit_data(self): # update interface maps _, self.if_alias_map, _, _ = \ Namespace.get_sync_d_from_all_namespace(mibs.init_sync_d_interface_tables, Namespace.init_namespace_dbs()) PhysicalEntityCacheUpdater.reinit_data(self)