diff options
Diffstat (limited to 'src/k8splugin/api')
-rw-r--r-- | src/k8splugin/api/handler.go | 18 | ||||
-rw-r--r-- | src/k8splugin/api/handler_test.go | 8 | ||||
-rw-r--r-- | src/k8splugin/api/model.go | 3 |
3 files changed, 18 insertions, 11 deletions
diff --git a/src/k8splugin/api/handler.go b/src/k8splugin/api/handler.go index a6db3c18..32bfa594 100644 --- a/src/k8splugin/api/handler.go +++ b/src/k8splugin/api/handler.go @@ -27,6 +27,7 @@ import ( helper "k8splugin/internal/app" "k8splugin/internal/db" + "k8splugin/internal/rb" ) //TODO: Separate the http handler code and backend code out @@ -53,7 +54,11 @@ func validateBody(body interface{}) error { werr := pkgerrors.Wrap(errors.New("Invalid/Missing CsarID in POST request"), "CreateVnfRequest bad request") return werr } - if strings.Contains(b.CloudRegionID, "|") || strings.Contains(b.Namespace, "|") { + if b.RBProfileID == "" { + werr := pkgerrors.Wrap(errors.New("Invalid/Missing RB ProfileID in POST request"), "CreateVnfRequest bad request") + return werr + } + if strings.Contains(b.CloudRegionID, "|") { werr := pkgerrors.Wrap(errors.New("Character \"|\" not allowed in CSAR ID"), "CreateVnfRequest bad request") return werr } @@ -104,18 +109,21 @@ func CreateHandler(w http.ResponseWriter, r *http.Request) { }, nil */ - externalVNFID, resourceNameMap, err := helper.CreateVNF(resource.CsarID, resource.CloudRegionID, resource.Namespace, &kubeclient) + externalVNFID, resourceNameMap, err := helper.CreateVNF(resource.CsarID, resource.CloudRegionID, + resource.RBProfileID, &kubeclient) if err != nil { werr := pkgerrors.Wrap(err, "Read Kubernetes Data information error") http.Error(w, werr.Error(), http.StatusInternalServerError) return } + rbProfile, _ := rb.NewProfileClient().Get(resource.RBProfileID) + namespace := rbProfile.Namespace // cloud1-default-uuid - internalVNFID := resource.CloudRegionID + "-" + resource.Namespace + "-" + externalVNFID + internalVNFID := resource.CloudRegionID + "-" + namespace + "-" + externalVNFID // Persist in AAI database. - log.Printf("Cloud Region ID: %s, Namespace: %s, VNF ID: %s ", resource.CloudRegionID, resource.Namespace, externalVNFID) + log.Printf("Cloud Region ID: %s, Namespace: %s, VNF ID: %s ", resource.CloudRegionID, namespace, externalVNFID) // TODO: Uncomment when annotations are done // krd.AddNetworkAnnotationsToPod(kubeData, resource.Networks) @@ -132,7 +140,7 @@ func CreateHandler(w http.ResponseWriter, r *http.Request) { resp := CreateVnfResponse{ VNFID: externalVNFID, CloudRegionID: resource.CloudRegionID, - Namespace: resource.Namespace, + Namespace: namespace, VNFComponents: resourceNameMap, } diff --git a/src/k8splugin/api/handler_test.go b/src/k8splugin/api/handler_test.go index 40d198b7..fccda3f4 100644 --- a/src/k8splugin/api/handler_test.go +++ b/src/k8splugin/api/handler_test.go @@ -98,7 +98,7 @@ func TestCreateHandler(t *testing.T) { label: "Fail to get the VNF client", input: bytes.NewBuffer([]byte(`{ "cloud_region_id": "region1", - "namespace": "test", + "rb_profile_id": "123e4567-e89b-12d3-a456-426655440000", "csar_id": "UUID-1" }`)), expectedCode: http.StatusInternalServerError, @@ -108,7 +108,7 @@ func TestCreateHandler(t *testing.T) { label: "Fail to create the VNF instance", input: bytes.NewBuffer([]byte(`{ "cloud_region_id": "region1", - "namespace": "test", + "rb_profile_id": "123e4567-e89b-12d3-a456-426655440000", "csar_id": "UUID-1" }`)), expectedCode: http.StatusInternalServerError, @@ -120,7 +120,7 @@ func TestCreateHandler(t *testing.T) { label: "Fail to create a VNF DB record", input: bytes.NewBuffer([]byte(`{ "cloud_region_id": "region1", - "namespace": "test", + "rb_profile_id": "123e4567-e89b-12d3-a456-426655440000", "csar_id": "UUID-1" }`)), expectedCode: http.StatusInternalServerError, @@ -135,7 +135,7 @@ func TestCreateHandler(t *testing.T) { label: "Succesful create a VNF", input: bytes.NewBuffer([]byte(`{ "cloud_region_id": "region1", - "namespace": "test", + "rb_profile_id": "123e4567-e89b-12d3-a456-426655440000", "csar_id": "UUID-1" }`)), expectedCode: http.StatusCreated, diff --git a/src/k8splugin/api/model.go b/src/k8splugin/api/model.go index 0e4863c4..164143c2 100644 --- a/src/k8splugin/api/model.go +++ b/src/k8splugin/api/model.go @@ -17,9 +17,9 @@ package api type CreateVnfRequest struct { CloudRegionID string `json:"cloud_region_id"` CsarID string `json:"csar_id"` + RBProfileID string `json:"rb_profile_id"` OOFParams []map[string]interface{} `json:"oof_parameters"` NetworkParams NetworkParameters `json:"network_parameters"` - Namespace string `json:"namespace"` Name string `json:"vnf_instance_name"` Description string `json:"vnf_instance_description"` } @@ -56,7 +56,6 @@ type UpdateVnfRequest struct { CsarID string `json:"csar_id"` OOFParams []map[string]interface{} `json:"oof_parameters"` NetworkParams NetworkParameters `json:"network_parameters"` - Namespace string `json:"namespace"` Name string `json:"vnf_instance_name"` Description string `json:"vnf_instance_description"` } |