diff --git a/config/configs.go b/config/configs.go index 4412340e463340f4e107643cf8cef779e51825e0..5bd3a94a560e4027b32c319a6ee393979303a29c 100644 --- a/config/configs.go +++ b/config/configs.go @@ -25,6 +25,8 @@ var CaCertificatePEM []byte var VereignCaCertificatePEM []byte var VereignCaKeyPEM []byte +var ReplaceKey bool + var MaxMessageSize int var GrpcListenAddress string @@ -42,6 +44,8 @@ func SetConfigValues(configFile, etcdURL string) { viper.SetDefault("dataStorageUrl", "data-storage-agent:7777") viper.SetDefault("entitiesManagerUrl", "entities-management-agent:7779") + viper.SetDefault("replaceKey", false) + viper.SetDefault("viamUUID", "viam-system") viper.SetDefault("viamSession", "viam-session") @@ -127,6 +131,8 @@ func SetConfigValues(configFile, etcdURL string) { DataStorageUrl = viper.GetString("dataStorageUrl") EntitiesManagerUrl = viper.GetString("entitiesManagerUrl") + ReplaceKey = viper.GetBool("replaceKey") + SystemAuth.Uuid = viper.GetString("viamUUID") SystemAuth.Session = viper.GetString("viamSession") diff --git a/handler/handler.go b/handler/handler.go index 4c2ce23cb1b61be9694abca7ad1792dcdafc188d..92bda0e7e0db1a0f261d218b4ba9711cb2451712 100644 --- a/handler/handler.go +++ b/handler/handler.go @@ -22,6 +22,7 @@ import ( "errors" "log" "strings" + "code.vereign.com/code/viam-apis/clientutils" keyutils "code.vereign.com/code/key-storage-agent/utils" @@ -113,7 +114,7 @@ func (s *KeyStorageServerImpl) GetKey(ctx context.Context, in *api.GetKeyRequest getKeyResponse.StatusList = utils.AddStatus(getKeyResponse.StatusList, "500", api.StatusType_ERROR, errorsString) } - + if !hasData { log.Println("No such key " + in.Uuid) getKeyResponse.Key = nil @@ -149,18 +150,20 @@ func (s *KeyStorageServerImpl) SetKey(ctx context.Context, in *api.SetKeyRequest key := &api.Key{} - _, _, err := client.GetData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), key) - if err != nil { - log.Printf("grpc call GetData to DataStorage failed: %s", err) - setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, - "500", api.StatusType_ERROR, err.Error()) - return setKeyResponse, nil - } + if ReplaceKey == false { + _, _, err := client.GetData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), key) + if err != nil { + log.Printf("grpc call GetData to DataStorage failed: %s", err) + setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, + "500", api.StatusType_ERROR, err.Error()) + return setKeyResponse, nil + } - if len(key.Content) > 0 { - setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, - "400", api.StatusType_ERROR, "Key is already set") - return setKeyResponse, nil + if len(key.Content) > 0 { + setKeyResponse.StatusList = utils.AddStatus(setKeyResponse.StatusList, + "400", api.StatusType_ERROR, "Key is already set") + return setKeyResponse, nil + } } result, errors, err := client.PutData("keys", in.Uuid+"/"+api.KeyType.String(in.KeyType), in.Key) @@ -268,7 +271,7 @@ func (s *KeyStorageServerImpl) GetKeyId(ctx context.Context, in *api.GetKeyIdByK log.Printf("Error: %s", errorsString) return nil, errors.New(errorsString) } - + if !hasData { log.Println("No such checkID " + checkID) return nil, errors.New("No such checkID " + checkID)