Adding deletesecret functionality 37/32737/1
authorKiran <kiran.k.kamineni@intel.com>
Fri, 23 Feb 2018 23:11:48 +0000 (15:11 -0800)
committerKiran <kiran.k.kamineni@intel.com>
Fri, 23 Feb 2018 23:11:56 +0000 (15:11 -0800)
Adding deletesecret functionality in backend and handler

Issue-ID: AAF-142
Change-Id: I09dfc78af72dff1d60ce25cc22053d72948f7433
Signed-off-by: Kiran <kiran.k.kamineni@intel.com>
sms-service/src/sms/backend/vault.go
sms-service/src/sms/handler/handler.go

index 7fc1747..259b4f3 100644 (file)
@@ -153,7 +153,7 @@ func (v *Vault) CreateSecret(dom string, sec Secret) error {
 
        dom = v.vaultMount + "/" + dom
 
-       // Vault write return is empty on successful write
+       // Vault return is empty on successful write
        _, err = v.vaultClient.Logical().Write(dom+"/"+sec.Name, sec.Values)
        if err != nil {
                return errors.New("Unable to create Secret at provided path")
@@ -171,6 +171,18 @@ func (v *Vault) DeleteSecretDomain(name string) error {
 
 // DeleteSecret deletes a secret mounted on the path provided
 func (v *Vault) DeleteSecret(dom string, name string) error {
+       err := v.checkToken()
+       if err != nil {
+               return errors.New("Token checking returned an error" + err.Error())
+       }
+
+       dom = v.vaultMount + "/" + dom
+
+       // Vault return is empty on successful delete
+       _, err = v.vaultClient.Logical().Delete(dom + "/" + name)
+       if err != nil {
+               return errors.New("Unable to delete Secret at provided path")
+       }
 
        return nil
 }
index 3798023..e9c7eab 100644 (file)
@@ -121,7 +121,11 @@ func (h handler) deleteSecretHandler(w http.ResponseWriter, r *http.Request) {
        domName := vars["domName"]
        secName := vars["secretName"]
 
-       h.secretBackend.DeleteSecret(domName, secName)
+       err := h.secretBackend.DeleteSecret(domName, secName)
+       if err != nil {
+               http.Error(w, err.Error(), http.StatusInternalServerError)
+               return
+       }
 }
 
 // struct that tracks various status items for SMS and backend