Beispiel #1
0
    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]
Beispiel #2
0
    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."
            )
Beispiel #3
0
    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()
Beispiel #4
0
    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)
Beispiel #5
0
    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()
Beispiel #6
0
    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])
Beispiel #8
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]
Beispiel #9
0
    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)
Beispiel #10
0
    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)
Beispiel #11
0
    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"] == [])
Beispiel #12
0
    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]
Beispiel #13
0
 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)