diff options
author | Konrad Bańka <k.banka@samsung.com> | 2020-01-07 16:01:07 +0100 |
---|---|---|
committer | Konrad Bańka <k.banka@samsung.com> | 2020-01-07 16:01:07 +0100 |
commit | 731f6cc1a411276ef348804184416acf11f9477b (patch) | |
tree | abbe302d0009ae40a9d577990de44e2a21028a6c | |
parent | 2a35410560f1c22ed12cd137cbf843e36f74740e (diff) |
Change missing profile HTTP response code to 404
Issue-ID: MULTICLOUD-967
Signed-off-by: Konrad Bańka <k.banka@samsung.com>
Change-Id: I3d213f65ee37443a55b74255b475e27c0d93cf2c
-rw-r--r-- | src/k8splugin/api/profilehandler.go | 11 | ||||
-rw-r--r-- | src/k8splugin/api/profilehandler_test.go | 13 |
2 files changed, 20 insertions, 4 deletions
diff --git a/src/k8splugin/api/profilehandler.go b/src/k8splugin/api/profilehandler.go index 68ab77a4..2461d4f8 100644 --- a/src/k8splugin/api/profilehandler.go +++ b/src/k8splugin/api/profilehandler.go @@ -21,6 +21,7 @@ import ( "io" "io/ioutil" "net/http" + "strings" "github.com/onap/multicloud-k8s/src/k8splugin/internal/rb" @@ -107,8 +108,14 @@ func (h rbProfileHandler) getHandler(w http.ResponseWriter, r *http.Request) { ret, err := h.client.Get(rbName, rbVersion, prName) if err != nil { - http.Error(w, err.Error(), http.StatusInternalServerError) - return + // Separate "Not found" from generic DB errors + if strings.Contains(err.Error(), "Error finding") { + http.Error(w, err.Error(), http.StatusNotFound) + return + } else { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } } w.Header().Set("Content-Type", "application/json") diff --git a/src/k8splugin/api/profilehandler_test.go b/src/k8splugin/api/profilehandler_test.go index 4dae377c..9ec9c54c 100644 --- a/src/k8splugin/api/profilehandler_test.go +++ b/src/k8splugin/api/profilehandler_test.go @@ -184,10 +184,19 @@ func TestRBProfileGetHandler(t *testing.T) { }, }, { - label: "Get Non-Exiting Bundle Profile", - expectedCode: http.StatusInternalServerError, + label: "Get Non-Existing Profile", + expectedCode: http.StatusNotFound, prname: "non-existing-profile", rbProClient: &mockRBProfile{ + Items: nil, + Err: pkgerrors.New("Error finding master table"), + }, + }, + { + label: "Faulty DB response", + expectedCode: http.StatusInternalServerError, + prname: "profile", + rbProClient: &mockRBProfile{ // list of Profiles that will be returned by the mockclient Items: []rb.Profile{}, Err: pkgerrors.New("Internal Error"), |