From: Kiran Kamineni Date: Tue, 13 Mar 2018 19:59:37 +0000 (-0700) Subject: Update listsecret return to send a JSON object X-Git-Tag: 2.0.0-ONAP~55 X-Git-Url: https://gerrit.onap.org/r/gitweb?a=commitdiff_plain;h=9b16de820c0bef5643746bdeb3186714a85281f1;p=aaf%2Fsms.git Update listsecret return to send a JSON object Instead of sending JSONArray, retrun JSON object for consistency and client processing Issue-ID: AAF-172 Change-Id: I17d2e2c2865a817c8016987f998c87259413f306 Signed-off-by: Kiran Kamineni --- diff --git a/sms-service/doc/api_swagger.html b/sms-service/doc/api_swagger.html index 94a72aa..7f987a3 100644 --- a/sms-service/doc/api_swagger.html +++ b/sms-service/doc/api_swagger.html @@ -181,7 +181,7 @@ font-style: italic;

Secret Management Service

This is a service that provides secret management facilities
-
More information:
+
More information: https://helloreverb.com
Version: 1.0.0
BasePath:/v1/sms/
@@ -295,8 +295,8 @@ font-style: italic;

Example data

Content-Type: application/json
{
-  "name" : "aeiou",
-  "uuid" : "aeiou"
+  "name" : "name",
+  "uuid" : "uuid"
 }

Produces

@@ -356,7 +356,7 @@ font-style: italic;
Content-Type: application/json
{
   "ttl" : 0,
-  "token" : "aeiou"
+  "token" : "token"
 }

Produces

@@ -397,15 +397,15 @@ font-style: italic;

Return type

+ inline_response_200_2 - array[String]

Example data

Content-Type: application/json
-
[ "secret1", "secret2", "secret3" ]
+
"{\"secretnames\":[\"secretname1\",\"secretname2\",\"secretname3\"]}"

Produces

This API call produces the following media types according to the Accept request header; @@ -417,7 +417,7 @@ font-style: italic;

Responses

200

Successful operation - + inline_response_200_2

404

Invalid Path or Path not found @@ -552,7 +552,7 @@ font-style: italic; "Age" : 40, "admin" : true }, - "name" : "aeiou" + "name" : "name" }

Produces

@@ -596,7 +596,7 @@ font-style: italic;

Example data

Content-Type: application/json
{
-  "sealstatus" : "aeiou"
+  "sealstatus" : "sealstatus"
 }

Produces

@@ -672,6 +672,7 @@ font-style: italic;
  • body -
  • inline_response_200 -
  • inline_response_200_1 -
  • +
  • inline_response_200_2 -
  • @@ -720,5 +721,12 @@ font-style: italic;
    sealstatus (optional)
    String seal status of backend
    +
    +

    inline_response_200_2 - Up

    + +
    +
    secretnames (optional)
    array[String] Array of strings referencing the secret names
    +
    +
    diff --git a/sms-service/doc/api_swagger.yaml b/sms-service/doc/api_swagger.yaml index 08e3c18..61cd091 100644 --- a/sms-service/doc/api_swagger.yaml +++ b/sms-service/doc/api_swagger.yaml @@ -89,12 +89,14 @@ paths: properties: unsealshard: type: string - description: Unseal shard that will be used along with other shards to unseal backend + description: >- + Unseal shard that will be used along with other shards to + unseal backend responses: '201': description: Submitted unseal key '404': - description: Invalid Path or Path not found + description: Invalid Path or Path not found /domain: post: tags: @@ -182,10 +184,15 @@ paths: '200': description: Successful operation schema: - type: array - items: - type: string - example: ['secret1', 'secret2', 'secret3'] + type: object + properties: + secretnames: + type: array + items: + type: string + description: Array of strings referencing the secret names + example: + secretnames: ["secretname1", "secretname2", "secretname3"] '404': description: Invalid Path or Path not found '/domain/{domainName}/secret/{secretName}': @@ -239,9 +246,9 @@ paths: description: Invalid Path or Path not found securityDefinitions: token: - type: "apiKey" - name: "token" - in: "header" + type: apiKey + name: token + in: header definitions: Credential: type: object @@ -273,9 +280,9 @@ definitions: additionalProperties: type: object example: - "name": "john" - "Age": 40 - "admin": true + name: john + Age: 40 + admin: true externalDocs: description: Find out more about Swagger url: 'http://swagger.io' diff --git a/sms-service/src/sms/handler/handler.go b/sms-service/src/sms/handler/handler.go index 4456806..f2800fc 100644 --- a/sms-service/src/sms/handler/handler.go +++ b/sms-service/src/sms/handler/handler.go @@ -131,14 +131,21 @@ func (h handler) listSecretHandler(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) domName := vars["domName"] - sec, err := h.secretBackend.ListSecret(domName) + secList, err := h.secretBackend.ListSecret(domName) if err != nil { smslogger.WriteError(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) return } - jdata, err := json.Marshal(sec) + // Creating an anonymous struct to store the returned list of data + var retStruct = struct { + SecretNames []string `json:"secretnames"` + }{ + secList, + } + + jdata, err := json.Marshal(retStruct) if err != nil { smslogger.WriteError(err.Error()) http.Error(w, err.Error(), http.StatusInternalServerError) diff --git a/sms-service/src/sms/handler/handler_test.go b/sms-service/src/sms/handler/handler_test.go index e1b5b34..5e9e965 100644 --- a/sms-service/src/sms/handler/handler_test.go +++ b/sms-service/src/sms/handler/handler_test.go @@ -249,9 +249,16 @@ func TestListSecretHandler(t *testing.T) { t.Errorf("Expected statusCreated return code. Got: %v", rr.Code) } - expected := []string{"testsecret1", "testsecret2"} + var expected = struct { + SecretNames []string `json:"secretnames"` + }{ + []string{"testsecret1", "testsecret2"}, + } + + var got struct { + SecretNames []string `json:"secretnames"` + } - var got []string json.NewDecoder(rr.Body).Decode(&got) if reflect.DeepEqual(expected, got) == false {