Add another parameter to the definition 30/76330/4
authorKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 25 Jan 2019 02:24:14 +0000 (18:24 -0800)
committerKiran Kamineni <kiran.k.kamineni@intel.com>
Fri, 25 Jan 2019 19:12:28 +0000 (11:12 -0800)
Add a ChartName parameter to definition
This is need to explicitly specify the chart name
to be used within the tar file.

Issue-ID: MULTICLOUD-291
Change-Id: I3d6e20607b74e54801622a6c27d5674777548ee1
Signed-off-by: Kiran Kamineni <kiran.k.kamineni@intel.com>
src/k8splugin/api/defhandler.go
src/k8splugin/api/defhandler_test.go
src/k8splugin/mock_files/mock_json/create_rbdefinition.json
src/k8splugin/rb/definition.go

index 31b0f38..f53acdd 100644 (file)
@@ -54,6 +54,12 @@ func (h rbDefinitionHandler) createHandler(w http.ResponseWriter, r *http.Reques
                return
        }
 
+       // Chart Name is required
+       if v.ChartName == "" {
+               http.Error(w, "Missing chart name in POST request", http.StatusBadRequest)
+               return
+       }
+
        ret, err := h.client.Create(v)
        if err != nil {
                http.Error(w, err.Error(), http.StatusInternalServerError)
index fd17f50..e638ca0 100644 (file)
@@ -90,13 +90,15 @@ func TestRBDefCreateHandler(t *testing.T) {
                        label:        "Create without UUID",
                        expectedCode: http.StatusCreated,
                        reader: bytes.NewBuffer([]byte(`{
-                               "name":"testdomain",
+                               "name":"testresourcebundle",
+                               "chart-name":"testchart",
                                "description":"test description",
                                "service-type":"firewall"
                                }`)),
                        expected: rb.Definition{
                                UUID:        "123e4567-e89b-12d3-a456-426655440000",
                                Name:        "testresourcebundle",
+                               ChartName:   "testchart",
                                Description: "test description",
                                ServiceType: "firewall",
                        },
@@ -106,12 +108,33 @@ func TestRBDefCreateHandler(t *testing.T) {
                                        {
                                                UUID:        "123e4567-e89b-12d3-a456-426655440000",
                                                Name:        "testresourcebundle",
+                                               ChartName:   "testchart",
                                                Description: "test description",
                                                ServiceType: "firewall",
                                        },
                                },
                        },
                },
+               {
+                       label: "Missing Name in Request Body",
+                       reader: bytes.NewBuffer([]byte(`{
+                               "chart-name":"testchart",
+                               "description":"test description",
+                               "service-type":"firewall"
+                               }`)),
+                       expectedCode: http.StatusBadRequest,
+                       rbDefClient:  &mockRBDefinition{},
+               },
+               {
+                       label: "Missing Chart Name in Request Body",
+                       reader: bytes.NewBuffer([]byte(`{
+                               "name":"testresourcebundle",
+                               "description":"test description",
+                               "service-type":"firewall"
+                               }`)),
+                       expectedCode: http.StatusBadRequest,
+                       rbDefClient:  &mockRBDefinition{},
+               },
        }
 
        for _, testCase := range testCases {
index 994afdf..370c3c7 100644 (file)
@@ -1,6 +1,7 @@
 {
+    "uuid": "7eb09e38-4363-9942-1234-3beb2e95fd85",
     "name": "test-rbdef",
+    "chart-name": "testchart",
     "description": "testing resource bundle definition api",
-    "uuid": "7eb09e38-4363-9942-1234-3beb2e95fd85",
     "service-type": "firewall"
 }
\ No newline at end of file
index 91419bf..084abe7 100644 (file)
@@ -31,6 +31,7 @@ import (
 type Definition struct {
        UUID        string `json:"uuid,omitempty"`
        Name        string `json:"name"`
+       ChartName   string `json:"chart-name"`
        Description string `json:"description"`
        ServiceType string `json:"service-type"`
 }