VOL-1400: TP Instance and PON resources are not cleared from KV store
when ONU devices is DISABLED and DELETEd from Voltha
Change-Id: I923dbac6a4c7023e1786d41715bb7c2240bd7053
diff --git a/voltha/adapters/openolt/openolt_resource_manager.py b/voltha/adapters/openolt/openolt_resource_manager.py
index ae94343..bda822c 100644
--- a/voltha/adapters/openolt/openolt_resource_manager.py
+++ b/voltha/adapters/openolt/openolt_resource_manager.py
@@ -28,6 +28,7 @@
class OpenOltResourceMgr(object):
BASE_PATH_KV_STORE = "service/voltha/openolt/{}" # service/voltha/openolt/<device_id>
+ TP_ID_PATH_SUFFIX = 'tp_id/{}'
def __init__(self, device_id, host_and_port, extra_args, device_info):
self.log = structlog.get_logger(id=device_id,
@@ -133,11 +134,6 @@
onu_id = self.resource_mgrs[pon_intf_id].get_resource_id(
pon_intf_id, PONResourceManager.ONU_ID, 1)
- if onu_id is not None:
- pon_intf_onu_id = (pon_intf_id, onu_id)
- self.resource_mgrs[pon_intf_id].init_resource_map(
- pon_intf_onu_id)
-
return onu_id
def get_flow_id(self, intf_id, onu_id, uni_id, flow_store_cookie,
@@ -466,3 +462,12 @@
self.log.error("error-retrieving-flow-info", e=e)
return False
+
+ def get_tech_profile_id_for_onu(self, intf_id, onu_id, uni_id):
+ intf_id_onu_id_uni_id = (intf_id, onu_id, uni_id)
+ try:
+ kv_path = OpenOltResourceMgr.TP_ID_PATH_SUFFIX.format(str(intf_id_onu_id_uni_id))
+ return int(self.kv_store[kv_path])
+ except Exception as e:
+ self.log.warn("tp-id-not-found-on-kv-store", e=e)
+ return DEFAULT_TECH_PROFILE_TABLE_ID