From 013a3d9f3cf6aff49284822639c78b10888264d6 Mon Sep 17 00:00:00 2001
From: Damyan Mitev <damyan.mitev@vereign.com>
Date: Mon, 17 Feb 2020 18:36:42 +0200
Subject: [PATCH] Change missing keys error handling

---
 handler/manage_device_key.go | 4 +++-
 utils/utils.go               | 5 +++--
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/handler/manage_device_key.go b/handler/manage_device_key.go
index 59b0e4e..7038e0b 100644
--- a/handler/manage_device_key.go
+++ b/handler/manage_device_key.go
@@ -100,7 +100,9 @@ func (s *KeyStorageServerImpl) updateAll(ctx context.Context, uuid string, updat
 	for _, kType := range []api.KeyType{api.KeyType_PRIVATE, api.KeyType_PUBLIC, api.KeyType_CERTIFICATE} {
 		err := updateKey(client, uuid, kType, updateFunc)
 		if err != nil {
-			return err
+			if !errors.Wraps(err, keyutils.ErrNoData) {
+				return err
+			}
 		}
 	}
 
diff --git a/utils/utils.go b/utils/utils.go
index a769701..552d845 100644
--- a/utils/utils.go
+++ b/utils/utils.go
@@ -37,6 +37,8 @@ import (
 	"code.vereign.com/code/viam-apis/key-storage-agent/api"
 )
 
+var ErrNoData = errors.New("No data")
+
 func GenerateUnusedUUID(client *client.DataStorageClientImpl) (string, error) {
 	count := 0
 	for {
@@ -145,8 +147,7 @@ func GetKey(client *client.DataStorageClientImpl, uuid string, keyType api.KeyTy
 	}
 
 	if !hasData {
-		err = errors.New("No data")
-		return nil, errors.WrapUserFormat(err, "Could not get key %s", uuid+"/"+api.KeyType.String(keyType))
+		return nil, errors.WrapUserFormat(ErrNoData, "Could not get key %s", uuid+"/"+api.KeyType.String(keyType))
 	}
 
 	return key, nil
-- 
GitLab