[VOL-2650] Deleting gem ports from local cache not working as expected
Fixed the gem port deletion from local cache and added a unit test case
Change-Id: Ic22e7345072641957516417b41e26e70c685be78
diff --git a/adaptercore/openolt_flowmgr.go b/adaptercore/openolt_flowmgr.go
index 5a4225a..2b8855a 100644
--- a/adaptercore/openolt_flowmgr.go
+++ b/adaptercore/openolt_flowmgr.go
@@ -1475,14 +1475,15 @@
f.lockCache.Lock()
defer f.lockCache.Unlock()
onugem := f.onuGemInfo[intfID]
- for _, onu := range onugem {
+ for i, onu := range onugem {
if onu.OnuID == onuID {
- for i, gem := range onu.GemPorts {
+ for j, gem := range onu.GemPorts {
// If the gemport is found, delete it from local cache.
if gem == gemPortID {
- onu.GemPorts = append(onu.GemPorts[:i], onu.GemPorts[i+1:]...)
+ onu.GemPorts = append(onu.GemPorts[:j], onu.GemPorts[j+1:]...)
+ onugem[i] = onu
log.Debugw("removed gemport from local cache",
- log.Fields{"intfID": intfID, "onuID": onuID, "gemPortID": gemPortID})
+ log.Fields{"intfID": intfID, "onuID": onuID, "deletedGemPortID": gemPortID, "gemPorts": onu.GemPorts})
break
}
}