Пример #1
0
    def __init__(self):
        """
        init the updater
        """
        super().__init__()
        self.db_conn = Namespace.init_namespace_dbs()
        self.lag_name_if_name_map = {}
        self.if_name_lag_name_map = {}
        self.oid_lag_name_map = {}
        self.queue_type_map = {}

        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_sai_map = {}
        self.oid_name_map = {}

        self.port_queues_map = {}
        self.queue_stat_map = {}
        self.port_queue_list_map = {}

        self.mib_oid_to_queue_map = {}
        self.mib_oid_list = []

        self.queue_type_map = {}
Пример #2
0
    def __init__(self):
        super().__init__()

        self.statedb = Namespace.init_namespace_dbs()
        Namespace.connect_all_dbs(self.statedb, mibs.STATE_DB)

        # List of available sub OIDs.
        self.physical_entities = []

        # Map sub ID to its data.
        self.physical_classes_map = {}
        self.physical_description_map = {}
        self.physical_name_map = {}
        self.physical_hw_version_map = {}
        self.physical_serial_number_map = {}
        self.physical_mfg_name_map = {}
        self.physical_model_name_map = {}
        self.physical_contained_in_map = {}
        self.physical_parent_relative_pos_map = {}
        self.physical_fru_map = {}

        # Map physical entity name and oid. According to RFC2737, entPhysicalContainedIn is indicates the value of
        # entPhysicalIndex for the physical entity which 'contains' this physical entity. However, there is
        # only parent entity name in database, so need a way to get physical entity oid by name.
        self.physical_name_to_oid_map = {}

        # Map physical entity name that need resolve. The key is the entity name, value is a list of Callback objects
        # that will be called when the entity name is added to self.physical_name_to_oid_map.
        # It's possible the parent name and parent oid are still not in self.physical_name_to_oid_map when child entity
        # update cache. In that case, the child entity might not be able to calculate its sub id and cannot update its
        # cache or do future operation. So this dictionary provides a way to store such operations for future executes.
        self.pending_resolve_parent_name_map = {}

        # physical entity updaters
        self.physical_entity_updaters = self.create_physical_entity_updaters()
Пример #3
0
    def __init__(self):
        super().__init__()
        self.db_conn = Namespace.init_namespace_dbs()

        self.lag_name_if_name_map = {}
        self.if_name_lag_name_map = {}
        self.oid_lag_name_map = {}
        self.lag_sai_map = {}
        self.mgmt_oid_name_map = {}
        self.mgmt_alias_map = {}
        self.vlan_oid_name_map = {}
        self.vlan_name_map = {}
        self.rif_port_map = {}
        self.port_rif_map = {}

        # cache of interface counters
        self.if_counters = {}
        self.if_range = []
        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_name_map = {}
        self.rif_counters = {}

        self.namespace_db_map = Namespace.get_namespace_db_map(self.db_conn)
Пример #4
0
    def __init__(self):
        super().__init__()
        self.db_conn = Namespace.init_namespace_dbs()

        self.neigh_state_map = {}
        self.session_status_map = {}
        self.session_status_list = []
Пример #5
0
 def __init__(self):
     super().__init__()
     self.db_conn = Namespace.init_namespace_dbs()
     self.arp_dest_map = {}
     self.arp_dest_list = []
     self.arp_dest_map = {}
     self.arp_dest_list = []
     self.neigh_key_list = {}
Пример #6
0
 def __init__(self):
     super().__init__()
     self.tos = 0  # ipCidrRouteTos
     self.db_conn = Namespace.init_namespace_dbs()
     self.route_dest_map = {}
     self.route_dest_list = []
     ## loopback ip string -> ip address object
     self.loips = {}
Пример #7
0
    def __init__(self):
        super().__init__()

        self.db_conn = Namespace.init_namespace_dbs()
        # establish connection to application database.
        Namespace.connect_all_dbs(self.db_conn, mibs.APPL_DB)
        self.if_range = []
        self.oid_name_map = {}
        self.mgmt_oid_name_map = {}
        self.pubsub = [None] * len(self.db_conn)
Пример #8
0
    def __init__(self):
        super().__init__()
        self.db_conn = Namespace.init_namespace_dbs()

        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_name_map = {}
        self.vlanmac_ifindex_map = {}
        self.vlanmac_ifindex_list = []
        self.if_bpid_map = {}
        self.bvid_vlan_map = {}
Пример #9
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"] == [])
Пример #10
0
    def __init__(self):
        super().__init__()

        self.db_conn = Namespace.init_namespace_dbs()
        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_name_map = {}

        self.mgmt_oid_name_map = {}

        self.if_range = []

        # cache of interface counters
        # { sai_id -> { 'counter': 'value' } }
        self.lldp_counters = {}
Пример #11
0
    def __init__(self):
        super().__init__()
        self.db_conn = Namespace.init_namespace_dbs()

        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_sai_map = {}
        self.oid_name_map = {}

        self.lag_name_if_name_map = {}
        self.if_name_lag_name_map = {}
        self.oid_lag_name_map = {}

        # cache of interface counters
        self.if_counters = {}
        self.if_range = []
Пример #12
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.init_namespace_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)
Пример #13
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, \
        lag_sai_map = Namespace.init_namespace_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"] == [])
        self.assertTrue(lag_sai_map[b"PortChannel01"] == b"2000000000006")
Пример #14
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.init_namespace_sync_d_lag_tables(dbs)
        #PortChannel in asic0 Namespace
        self.assertTrue(b"PortChannel01" in lag_name_if_name_map)
        self.assertTrue(b"Ethernet-BP0" in lag_name_if_name_map[b"PortChannel01"])
        self.assertTrue(b"Ethernet-BP4" in lag_name_if_name_map[b"PortChannel01"])
        #PortChannel in asic2 Namespace
        self.assertTrue(b"PortChannel03" in lag_name_if_name_map)
        self.assertTrue(b"Ethernet-BP16" in lag_name_if_name_map[b"PortChannel03"])
        self.assertTrue(b"Ethernet-BP20" in lag_name_if_name_map[b"PortChannel03"])

        self.assertTrue(b"PortChannel_Temp" in lag_name_if_name_map)
        self.assertTrue(lag_name_if_name_map[b"PortChannel_Temp"] == [])
Пример #15
0
    def __init__(self):
        super().__init__()

        self.statedb = Namespace.init_namespace_dbs()
        Namespace.connect_all_dbs(self.statedb, mibs.STATE_DB)

        self.if_alias_map = {}

        # List of available sub OIDs.
        self.physical_entities = []

        # Map sub ID to its data.
        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 = {}

        self.pubsub = [None] * len(self.statedb)
Пример #16
0
    def __init__(self):
        super().__init__()

        self.db_conn = Namespace.init_namespace_dbs()
        # establish connection to application database.
        Namespace.connect_all_dbs(self.db_conn, mibs.APPL_DB)
        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_name_map = {}

        self.mgmt_oid_name_map = {}
        self.mgmt_alias_map = {}

        self.if_range = []

        # cache of port data
        # { if_name -> { 'key': 'value' } }
        self.loc_port_data = {}
        self.pubsub = [None] * len(self.db_conn)
Пример #17
0
    def __init__(self):
        """
        ctor
        """

        super().__init__()

        self.statedb = Namespace.init_namespace_dbs()
        Namespace.connect_all_dbs(self.statedb, mibs.STATE_DB)

        # list of available sub OIDs
        self.sub_ids = []

        # sensor MIB requiered values
        self.ent_phy_sensor_type_map = {}
        self.ent_phy_sensor_scale_map = {}
        self.ent_phy_sensor_precision_map = {}
        self.ent_phy_sensor_value_map = {}
        self.ent_phy_sensor_oper_state_map = {}

        self.transceiver_dom = []
Пример #18
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, _ = 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"] == [])
Пример #19
0
    def __init__(self):
        super().__init__()

        self.db_conn = Namespace.init_namespace_dbs()

        self.lag_name_if_name_map = {}
        self.if_name_lag_name_map = {}
        self.oid_lag_name_map = {}
        self.mgmt_oid_name_map = {}
        self.mgmt_alias_map = {}

        self.if_counters = {}
        self.if_range = []
        self.if_name_map = {}
        self.if_alias_map = {}
        self.if_id_map = {}
        self.oid_name_map = {}
        self.lag_name_if_name_map = {}
        self.if_name_lag_name_map = {}
        self.oid_lag_name_map = {}

        self.namespace_db_map = Namespace.get_namespace_db_map(self.db_conn)
Пример #20
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)
Пример #21
0
    def __init__(self):
        super().__init__()

        self.db_conn = Namespace.init_namespace_dbs()
        self.loc_chassis_data = {}
Пример #22
0
 def __init__(self):
     super().__init__()
     self.db_conn = Namespace.init_namespace_dbs()
     self.nexthop_map = {}
     self.route_list = []