VOL-4427: Clear stale keys from etcd
Change-Id: I7a78b5bf6fceab6245e79b9372d0dfa91786328c
diff --git a/vendor/github.com/opencord/voltha-lib-go/v5/pkg/ponresourcemanager/ponresourcemanager.go b/vendor/github.com/opencord/voltha-lib-go/v5/pkg/ponresourcemanager/ponresourcemanager.go
index a8738ee..23bc6c7 100644
--- a/vendor/github.com/opencord/voltha-lib-go/v5/pkg/ponresourcemanager/ponresourcemanager.go
+++ b/vendor/github.com/opencord/voltha-lib-go/v5/pkg/ponresourcemanager/ponresourcemanager.go
@@ -1138,15 +1138,23 @@
var Value []byte
var err error
Path := fmt.Sprintf(ALLOC_ID_RESOURCE_MAP_PATH, PONRMgr.DeviceID, IntfONUID)
- Value, err = json.Marshal(AllocIDs)
- if err != nil {
- logger.Error(ctx, "failed to Marshal")
- return err
- }
+ if AllocIDs == nil {
+ // No more alloc ids associated with the key. Delete the key entirely
+ if err = PONRMgr.KVStore.Delete(ctx, Path); err != nil {
+ logger.Errorf(ctx, "Failed to delete key %s", Path)
+ return err
+ }
+ } else {
+ Value, err = json.Marshal(AllocIDs)
+ if err != nil {
+ logger.Error(ctx, "failed to Marshal")
+ return err
+ }
- if err = PONRMgr.KVStore.Put(ctx, Path, Value); err != nil {
- logger.Errorf(ctx, "Failed to update resource %s", Path)
- return err
+ if err = PONRMgr.KVStore.Put(ctx, Path, Value); err != nil {
+ logger.Errorf(ctx, "Failed to update resource %s", Path)
+ return err
+ }
}
return err
}
@@ -1162,15 +1170,23 @@
var err error
Path := fmt.Sprintf(GEMPORT_ID_RESOURCE_MAP_PATH, PONRMgr.DeviceID, IntfONUID)
logger.Debugf(ctx, "Updating gemport ids for %s", Path)
- Value, err = json.Marshal(GEMPortIDs)
- if err != nil {
- logger.Error(ctx, "failed to Marshal")
- return err
- }
+ if GEMPortIDs == nil {
+ // No more gemport ids associated with the key. Delete the key entirely
+ if err = PONRMgr.KVStore.Delete(ctx, Path); err != nil {
+ logger.Errorf(ctx, "Failed to delete key %s", Path)
+ return err
+ }
+ } else {
+ Value, err = json.Marshal(GEMPortIDs)
+ if err != nil {
+ logger.Error(ctx, "failed to Marshal")
+ return err
+ }
- if err = PONRMgr.KVStore.Put(ctx, Path, Value); err != nil {
- logger.Errorf(ctx, "Failed to update resource %s", Path)
- return err
+ if err = PONRMgr.KVStore.Put(ctx, Path, Value); err != nil {
+ logger.Errorf(ctx, "Failed to update resource %s", Path)
+ return err
+ }
}
return err
}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 22ca5b8..f406be3 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -58,7 +58,7 @@
# github.com/jcmturner/gofork v1.0.0
github.com/jcmturner/gofork/encoding/asn1
github.com/jcmturner/gofork/x/crypto/pbkdf2
-# github.com/opencord/voltha-lib-go/v5 v5.0.6
+# github.com/opencord/voltha-lib-go/v5 v5.0.7
## explicit
github.com/opencord/voltha-lib-go/v5/pkg/adapters
github.com/opencord/voltha-lib-go/v5/pkg/adapters/adapterif