Skip to content

Commit

Permalink
Merge remote-tracking branch 'remotes/azure/master' into lldp_sensor
Browse files Browse the repository at this point in the history
Signed-off-by: SuvarnaMeenakshi <sumeenak@microsoft.com>
  • Loading branch information
SuvarnaMeenakshi committed May 29, 2020
2 parents 6b55884 + a677876 commit 01e70be
Show file tree
Hide file tree
Showing 43 changed files with 4,242 additions and 52 deletions.
27 changes: 27 additions & 0 deletions src/sonic_ax_impl/mibs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,11 @@ def update_data(self):
self.oid_list = []
self.oid_map = {}

<<<<<<< HEAD
keys = Namespace.get_dbs_keys(self.db_conn, SNMP_OVERLAY_DB, self.prefix_str + '*')
=======
keys = Namespace.dbs_keys(self.db_conn, SNMP_OVERLAY_DB, self.prefix_str + '*')
>>>>>>> remotes/azure/master
# TODO: fix db_conn.keys to return empty list instead of None if there is no match
if keys is None:
keys = []
Expand All @@ -428,7 +432,11 @@ def update_data(self):
key = key.decode()
oid = oid2tuple(key, dot_prefix=False)
self.oid_list.append(oid)
<<<<<<< HEAD
value = Namespace.get_all_dbs(self.db_conn, SNMP_OVERLAY_DB, key)
=======
value = Namespace.dbs_get_all(self.db_conn, SNMP_OVERLAY_DB, key)
>>>>>>> remotes/azure/master
if value[b'type'] in [b'COUNTER_32', b'COUNTER_64']:
self.oid_map[oid] = int(value[b'data'])
else:
Expand Down Expand Up @@ -458,7 +466,11 @@ def connect_all_dbs(dbs, db_name):
db_conn.connect(db_name)

@staticmethod
<<<<<<< HEAD
def get_dbs_keys(dbs, db_name, pattern='*'):
=======
def dbs_keys(dbs, db_name, pattern='*'):
>>>>>>> remotes/azure/master
"""
db keys function execute on global and all namespace DBs.
"""
Expand All @@ -471,6 +483,7 @@ def get_dbs_keys(dbs, db_name, pattern='*'):
return result_keys

@staticmethod
<<<<<<< HEAD
def get_all_dbs(dbs, db_name, _hash, *args, **kwargs):
"""
db get_all function executed on global and all namespace DBs.
Expand All @@ -480,6 +493,20 @@ def get_all_dbs(dbs, db_name, _hash, *args, **kwargs):
if(db_conn.exists(db_name, _hash)):
return db_conn.get_all(db_name, _hash, *args, **kwargs)
return {}
=======
def dbs_get_all(dbs, db_name, _hash, *args, **kwargs):
"""
db get_all function executed on global and all namespace DBs.
"""
result = {}
for db_conn in dbs:
db_conn.connect(db_name)
if(db_conn.exists(db_name, _hash)):
ns_result = db_conn.get_all(db_name, _hash, *args, **kwargs)
if ns_result is not None:
result.update(ns_result)
return result
>>>>>>> remotes/azure/master

@staticmethod
def get_non_host_dbs(dbs):
Expand Down
30 changes: 17 additions & 13 deletions src/sonic_ax_impl/mibs/ietf/rfc1213.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
from bisect import bisect_right

from sonic_ax_impl import mibs
from sonic_ax_impl.mibs import Namespace
from ax_interface.mib import MIBMeta, ValueType, MIBUpdater, MIBEntry, SubtreeMIBEntry, OverlayAdpaterMIBEntry, OidMIBEntry
from ax_interface.encodings import ObjectIdentifier
from ax_interface.util import mac_decimals, ip2tuple_v4
Expand Down Expand Up @@ -93,7 +94,7 @@ def get_next(self, sub_id):
class NextHopUpdater(MIBUpdater):
def __init__(self):
super().__init__()
self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()
self.nexthop_map = {}
self.route_list = []

Expand All @@ -105,8 +106,7 @@ def update_data(self):
self.nexthop_map = {}
self.route_list = []

self.db_conn.connect(mibs.APPL_DB)
route_entries = self.db_conn.keys(mibs.APPL_DB, "ROUTE_TABLE:*")
route_entries = Namespace.dbs_keys(self.db_conn, mibs.APPL_DB, "ROUTE_TABLE:*")
if not route_entries:
return

Expand All @@ -115,7 +115,7 @@ def update_data(self):
ipnstr = routestr[len("ROUTE_TABLE:"):]
if ipnstr == "0.0.0.0/0":
ipn = ipaddress.ip_network(ipnstr)
ent = self.db_conn.get_all(mibs.APPL_DB, routestr, blocking=True)
ent = Namespace.dbs_get_all(self.db_conn, mibs.APPL_DB, routestr, blocking=True)
nexthops = ent[b"nexthop"].decode()
for nh in nexthops.split(','):
# TODO: if ipn contains IP range, create more sub_id here
Expand Down Expand Up @@ -152,7 +152,7 @@ class InterfacesUpdater(MIBUpdater):

def __init__(self):
super().__init__()
self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()

self.lag_name_if_name_map = {}
self.if_name_lag_name_map = {}
Expand All @@ -177,23 +177,27 @@ def reinit_data(self):
self.if_alias_map, \
self.if_id_map, \
self.oid_sai_map, \
self.oid_name_map = mibs.init_sync_d_interface_tables(self.db_conn)

self.oid_name_map = Namespace.init_namespace_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)
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.
"""
self.if_counters = \
{sai_id: self.db_conn.get_all(mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
for sai_id in self.if_id_map}
{sai_id: Namespace.dbs_get_all(self.db_conn, mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
for sai_id in self.if_id_map}

self.lag_name_if_name_map, \
self.if_name_lag_name_map, \
self.oid_lag_name_map = mibs.init_sync_d_lag_tables(self.db_conn)
self.oid_lag_name_map = Namespace.init_namespace_sync_d_lag_tables(self.db_conn)

self.if_range = sorted(list(self.oid_sai_map.keys()) +
list(self.oid_lag_name_map.keys()) +
Expand Down Expand Up @@ -318,7 +322,7 @@ def _get_if_entry(self, sub_id):
else:
return None

return self.db_conn.get_all(db, if_table, blocking=True)
return Namespace.dbs_get_all(self.db_conn, db, if_table, blocking=True)

def _get_if_entry_state_db(self, sub_id):
"""
Expand All @@ -337,7 +341,7 @@ def _get_if_entry_state_db(self, sub_id):
else:
return None

return self.db_conn.get_all(db, if_table, blocking=False)
return Namespace.dbs_get_all(self.db_conn, db, if_table, blocking=False)

def _get_status(self, sub_id, key):
"""
Expand Down
19 changes: 12 additions & 7 deletions src/sonic_ax_impl/mibs/ietf/rfc2863.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

from sonic_ax_impl import mibs
from ax_interface.mib import MIBMeta, MIBUpdater, ValueType, SubtreeMIBEntry, OverlayAdpaterMIBEntry, OidMIBEntry
from sonic_ax_impl.mibs import Namespace

@unique
class DbTables32(int, Enum):
Expand Down Expand Up @@ -47,7 +48,7 @@ class InterfaceMIBUpdater(MIBUpdater):
def __init__(self):
super().__init__()

self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()

self.lag_name_if_name_map = {}
self.if_name_lag_name_map = {}
Expand All @@ -74,14 +75,18 @@ def reinit_data(self):
self.if_alias_map, \
self.if_id_map, \
self.oid_sai_map, \
self.oid_name_map = mibs.init_sync_d_interface_tables(self.db_conn)
self.oid_name_map = Namespace.init_namespace_sync_d_interface_tables(self.db_conn)

self.lag_name_if_name_map, \
self.if_name_lag_name_map, \
self.oid_lag_name_map = mibs.init_sync_d_lag_tables(self.db_conn)

self.oid_lag_name_map = Namespace.init_namespace_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)
self.mgmt_alias_map = mibs.init_mgmt_interface_tables(self.db_conn[0])

self.if_range = sorted(list(self.oid_sai_map.keys()) +
list(self.oid_lag_name_map.keys()) +
Expand All @@ -94,7 +99,7 @@ def update_data(self):
Pulls the table references for each interface.
"""
self.if_counters = {
sai_id: self.db_conn.get_all(mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
sai_id: Namespace.dbs_get_all(self.db_conn, mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
for sai_id in self.if_id_map}


Expand Down Expand Up @@ -217,7 +222,7 @@ def _get_if_entry(self, sub_id):
else:
return None

return self.db_conn.get_all(db, if_table, blocking=True)
return Namespace.dbs_get_all(self.db_conn, db, if_table, blocking=True)

def get_high_speed(self, sub_id):
"""
Expand Down
11 changes: 5 additions & 6 deletions src/sonic_ax_impl/mibs/ietf/rfc4292.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import ipaddress

from sonic_ax_impl import mibs
from sonic_ax_impl.mibs import Namespace
from ax_interface import MIBMeta, ValueType, MIBUpdater, SubtreeMIBEntry
from ax_interface.util import ip2tuple_v4
from bisect import bisect_right
Expand All @@ -9,7 +10,7 @@ class RouteUpdater(MIBUpdater):
def __init__(self):
super().__init__()
self.tos = 0 # ipCidrRouteTos
self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()
self.route_dest_map = {}
self.route_dest_list = []
## loopback ip string -> ip address object
Expand All @@ -21,8 +22,7 @@ def reinit_data(self):
"""
self.loips = {}

self.db_conn.connect(mibs.APPL_DB)
loopbacks = self.db_conn.keys(mibs.APPL_DB, "INTF_TABLE:lo:*")
loopbacks = Namespace.dbs_keys(self.db_conn, mibs.APPL_DB, "INTF_TABLE:lo:*")
if not loopbacks:
return

Expand All @@ -49,8 +49,7 @@ def update_data(self):
self.route_dest_list.append(sub_id)
self.route_dest_map[sub_id] = self.loips[loip].packed

self.db_conn.connect(mibs.APPL_DB)
route_entries = self.db_conn.keys(mibs.APPL_DB, "ROUTE_TABLE:*")
route_entries = Namespace.dbs_keys(self.db_conn, mibs.APPL_DB, "ROUTE_TABLE:*")
if not route_entries:
return

Expand All @@ -59,7 +58,7 @@ def update_data(self):
ipnstr = routestr[len("ROUTE_TABLE:"):]
if ipnstr == "0.0.0.0/0":
ipn = ipaddress.ip_network(ipnstr)
ent = self.db_conn.get_all(mibs.APPL_DB, routestr, blocking=True)
ent = Namespace.dbs_get_all(self.db_conn, mibs.APPL_DB, routestr, blocking=True)
nexthops = ent[b"nexthop"].decode()
ifnames = ent[b"ifname"].decode()
for nh, ifn in zip(nexthops.split(','), ifnames.split(',')):
Expand Down
9 changes: 5 additions & 4 deletions src/sonic_ax_impl/mibs/vendor/cisco/ciscoPfcExtMIB.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
from bisect import bisect_right

from sonic_ax_impl import mibs
from sonic_ax_impl.mibs import Namespace
from ax_interface import MIBMeta, ValueType, MIBUpdater, MIBEntry, SubtreeMIBEntry
from ax_interface.encodings import ObjectIdentifier

Expand All @@ -11,7 +12,7 @@ class PfcUpdater(MIBUpdater):
"""
def __init__(self):
super().__init__()
self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()

self.if_name_map = {}
self.if_alias_map = {}
Expand All @@ -35,7 +36,7 @@ def reinit_data(self):
self.if_alias_map, \
self.if_id_map, \
self.oid_sai_map, \
self.oid_name_map = mibs.init_sync_d_interface_tables(self.db_conn)
self.oid_name_map = Namespace.init_namespace_sync_d_interface_tables(self.db_conn)

self.update_data()

Expand All @@ -45,12 +46,12 @@ def update_data(self):
Pulls the table references for each interface.
"""
self.if_counters = \
{sai_id: self.db_conn.get_all(mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
{sai_id: Namespace.dbs_get_all(self.db_conn, mibs.COUNTERS_DB, mibs.counter_table(sai_id), blocking=True)
for sai_id in self.if_id_map}

self.lag_name_if_name_map, \
self.if_name_lag_name_map, \
self.oid_lag_name_map = mibs.init_sync_d_lag_tables(self.db_conn)
self.oid_lag_name_map = Namespace.init_namespace_sync_d_lag_tables(self.db_conn)

self.if_range = sorted(list(self.oid_sai_map.keys()) + list(self.oid_lag_name_map.keys()))
self.if_range = [(i,) for i in self.if_range]
Expand Down
11 changes: 6 additions & 5 deletions src/sonic_ax_impl/mibs/vendor/cisco/ciscoSwitchQosMIB.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from bisect import bisect_right

from sonic_ax_impl import mibs
from sonic_ax_impl.mibs import Namespace
from ax_interface import MIBMeta, ValueType, MIBUpdater, MIBEntry, SubtreeMIBEntry
from ax_interface.encodings import ObjectIdentifier

Expand Down Expand Up @@ -44,7 +45,7 @@ def __init__(self):
init the updater
"""
super().__init__()
self.db_conn = mibs.init_db()
self.db_conn = Namespace.init_namespace_dbs()
self.lag_name_if_name_map = {}
self.if_name_lag_name_map = {}
self.oid_lag_name_map = {}
Expand Down Expand Up @@ -73,12 +74,12 @@ def reinit_data(self):
self.if_alias_map, \
self.if_id_map, \
self.oid_sai_map, \
self.oid_name_map = mibs.init_sync_d_interface_tables(self.db_conn)
self.oid_name_map = Namespace.init_namespace_sync_d_interface_tables(self.db_conn)

self.port_queues_map, self.queue_stat_map, self.port_queue_list_map = \
mibs.init_sync_d_queue_tables(self.db_conn)
Namespace.init_namespace_sync_d_queue_tables(self.db_conn)

self.queue_type_map = self.db_conn.get_all(mibs.COUNTERS_DB, "COUNTERS_QUEUE_TYPE_MAP", blocking=False)
self.queue_type_map = Namespace.dbs_get_all(self.db_conn, mibs.COUNTERS_DB, "COUNTERS_QUEUE_TYPE_MAP", blocking=False)

self.update_data()

Expand All @@ -89,7 +90,7 @@ def update_data(self):
"""
for queue_key, sai_id in self.port_queues_map.items():
queue_stat_name = mibs.queue_table(sai_id)
queue_stat = self.db_conn.get_all(mibs.COUNTERS_DB, queue_stat_name, blocking=False)
queue_stat = Namespace.dbs_get_all(self.db_conn, mibs.COUNTERS_DB, queue_stat_name, blocking=False)
if queue_stat is not None:
self.queue_stat_map[queue_stat_name] = queue_stat

Expand Down
Loading

0 comments on commit 01e70be

Please sign in to comment.