diff options
Diffstat (limited to 'src/k8splugin/vnfd')
-rw-r--r-- | src/k8splugin/vnfd/vnfd.go | 134 | ||||
-rw-r--r-- | src/k8splugin/vnfd/vnfd_test.go | 262 |
2 files changed, 0 insertions, 396 deletions
diff --git a/src/k8splugin/vnfd/vnfd.go b/src/k8splugin/vnfd/vnfd.go deleted file mode 100644 index 0fb81dbd..00000000 --- a/src/k8splugin/vnfd/vnfd.go +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright 2018 Intel Corporation, Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package vnfd - -import ( - "k8splugin/db" - "log" - - uuid "github.com/hashicorp/go-uuid" - pkgerrors "github.com/pkg/errors" -) - -// VNFDefinition contains the parameters needed for VNF Definitions -// It implements the interface for managing the definitions -type VNFDefinition struct { - Name string `json:"name"` - Description string `json:"description"` - UUID string `json:"uuid,omitempty"` - ServiceType string `json:"service-type"` -} - -// VNFDefinitionInterface is an interface exposes the VNFDefinition functionality -type VNFDefinitionInterface interface { - Create(vnfd VNFDefinition) (VNFDefinition, error) - List() ([]VNFDefinition, error) - Get(vnfID string) (VNFDefinition, error) - Delete(vnfID string) error -} - -// VNFDefinitionClient implements the VNFDefinitionInterface -// It will also be used to maintain some localized state -type VNFDefinitionClient struct { - keyPrefix string -} - -// GetVNFDClient Returns an instance of the VNFDefinitionClient -// which implements the VNFDefinitionInterface interface -func GetVNFDClient() *VNFDefinitionClient { - return &VNFDefinitionClient{ - keyPrefix: "vnfd/"} -} - -// Create creates an entry for the VNF in the database -func (v *VNFDefinitionClient) Create(vnfd VNFDefinition) (VNFDefinition, error) { - // If UUID is empty, we will generate one - if vnfd.UUID == "" { - vnfd.UUID, _ = uuid.GenerateUUID() - } - key := v.keyPrefix + vnfd.UUID - - serData, err := db.Serialize(v) - if err != nil { - return VNFDefinition{}, pkgerrors.Wrap(err, "Serialize VNF Definition") - } - - err = db.DBconn.Create(key, serData) - if err != nil { - return VNFDefinition{}, pkgerrors.Wrap(err, "Creating DB Entry") - } - - return vnfd, nil -} - -// List lists all vnf entries in the database -func (v *VNFDefinitionClient) List() ([]VNFDefinition, error) { - strArray, err := db.DBconn.ReadAll(v.keyPrefix) - if err != nil { - return []VNFDefinition{}, pkgerrors.Wrap(err, "Listing VNF Definitions") - } - - var retData []VNFDefinition - - for _, key := range strArray { - value, err := db.DBconn.Read(key) - if err != nil { - log.Printf("Error Reading Key: %s", key) - continue - } - if value != "" { - vnfd := VNFDefinition{} - err = db.DeSerialize(value, &vnfd) - if err != nil { - log.Printf("Error Deserializing Value: %s", value) - continue - } - retData = append(retData, vnfd) - } - } - - return retData, nil -} - -// Get returns the VNF Definition for corresponding ID -func (v *VNFDefinitionClient) Get(vnfID string) (VNFDefinition, error) { - value, err := db.DBconn.Read(v.keyPrefix + vnfID) - if err != nil { - return VNFDefinition{}, pkgerrors.Wrap(err, "Get VNF Definitions") - } - - if value != "" { - vnfd := VNFDefinition{} - err = db.DeSerialize(value, &vnfd) - if err != nil { - return VNFDefinition{}, pkgerrors.Wrap(err, "Deserializing Value") - } - return vnfd, nil - } - - return VNFDefinition{}, pkgerrors.New("Error getting VNF Definition") -} - -// Delete deletes the VNF Definition from database -func (v *VNFDefinitionClient) Delete(vnfID string) error { - err := db.DBconn.Delete(v.keyPrefix + vnfID) - if err != nil { - return pkgerrors.Wrap(err, "Delete VNF Definitions") - } - - return nil -} diff --git a/src/k8splugin/vnfd/vnfd_test.go b/src/k8splugin/vnfd/vnfd_test.go deleted file mode 100644 index 3230d3ef..00000000 --- a/src/k8splugin/vnfd/vnfd_test.go +++ /dev/null @@ -1,262 +0,0 @@ -// +build unit - -/* - * Copyright 2018 Intel Corporation, Inc - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package vnfd - -import ( - "k8splugin/db" - "reflect" - "strings" - "testing" - - "github.com/hashicorp/consul/api" - pkgerrors "github.com/pkg/errors" -) - -func TestCreate(t *testing.T) { - testCases := []struct { - label string - inp VNFDefinition - expectedError string - mockdb *db.MockDB - expected VNFDefinition - }{ - { - label: "Create VNF Definition", - inp: VNFDefinition{ - UUID: "123e4567-e89b-12d3-a456-426655440000", - Name: "testvnf", - Description: "testvnf", - ServiceType: "firewall", - }, - expected: VNFDefinition{ - UUID: "123e4567-e89b-12d3-a456-426655440000", - Name: "testvnf", - Description: "testvnf", - ServiceType: "firewall", - }, - expectedError: "", - mockdb: &db.MockDB{}, - }, - { - label: "Failed Create VNF Definition", - expectedError: "Error Creating Definition", - mockdb: &db.MockDB{ - Err: pkgerrors.New("Error Creating Definition"), - }, - }, - } - - for _, testCase := range testCases { - t.Run(testCase.label, func(t *testing.T) { - db.DBconn = testCase.mockdb - vimpl := GetVNFDClient() - got, err := vimpl.Create(testCase.inp) - if err != nil { - if testCase.expectedError == "" { - t.Fatalf("Create returned an unexpected error %s", err) - } - if strings.Contains(err.Error(), testCase.expectedError) == false { - t.Fatalf("Create returned an unexpected error %s", err) - } - } else { - if reflect.DeepEqual(testCase.expected, got) == false { - t.Errorf("Create VNF returned unexpected body: got %v;"+ - " expected %v", got, testCase.expected) - } - } - }) - } -} - -func TestList(t *testing.T) { - - testCases := []struct { - label string - expectedError string - mockdb *db.MockDB - expected []VNFDefinition - }{ - { - label: "List VNF Definition", - expected: []VNFDefinition{ - { - UUID: "123e4567-e89b-12d3-a456-426655440000", - Name: "testvnf", - Description: "testvnf", - ServiceType: "firewall", - }, - { - UUID: "123e4567-e89b-12d3-a456-426655441111", - Name: "testvnf2", - Description: "testvnf2", - ServiceType: "dns", - }, - }, - expectedError: "", - mockdb: &db.MockDB{ - Items: api.KVPairs{ - &api.KVPair{ - Key: "vnfd/123e4567-e89b-12d3-a456-426655440000", - Value: []byte("{\"name\":\"testvnf\"," + - "\"description\":\"testvnf\"," + - "\"uuid\":\"123e4567-e89b-12d3-a456-426655440000\"," + - "\"service-type\":\"firewall\"}"), - }, - &api.KVPair{ - Key: "vnfd/123e4567-e89b-12d3-a456-426655441111", - Value: []byte("{\"name\":\"testvnf2\"," + - "\"description\":\"testvnf2\"," + - "\"uuid\":\"123e4567-e89b-12d3-a456-426655441111\"," + - "\"service-type\":\"dns\"}"), - }, - }, - }, - }, - { - label: "List Error", - expectedError: "DB Error", - mockdb: &db.MockDB{ - Err: pkgerrors.New("DB Error"), - }, - }, - } - - for _, testCase := range testCases { - t.Run(testCase.label, func(t *testing.T) { - db.DBconn = testCase.mockdb - vimpl := GetVNFDClient() - got, err := vimpl.List() - if err != nil { - if testCase.expectedError == "" { - t.Fatalf("List returned an unexpected error %s", err) - } - if strings.Contains(err.Error(), testCase.expectedError) == false { - t.Fatalf("List returned an unexpected error %s", err) - } - } else { - if reflect.DeepEqual(testCase.expected, got) == false { - t.Errorf("List VNF returned unexpected body: got %v;"+ - " expected %v", got, testCase.expected) - } - } - }) - } -} - -func TestGet(t *testing.T) { - - testCases := []struct { - label string - expectedError string - mockdb *db.MockDB - inp string - expected VNFDefinition - }{ - { - label: "Get VNF Definition", - inp: "123e4567-e89b-12d3-a456-426655440000", - expected: VNFDefinition{ - UUID: "123e4567-e89b-12d3-a456-426655440000", - Name: "testvnf", - Description: "testvnf", - ServiceType: "firewall", - }, - expectedError: "", - mockdb: &db.MockDB{ - Items: api.KVPairs{ - &api.KVPair{ - Key: "vnfd/123e4567-e89b-12d3-a456-426655440000", - Value: []byte("{\"name\":\"testvnf\"," + - "\"description\":\"testvnf\"," + - "\"uuid\":\"123e4567-e89b-12d3-a456-426655440000\"," + - "\"service-type\":\"firewall\"}"), - }, - }, - }, - }, - { - label: "Get Error", - expectedError: "DB Error", - mockdb: &db.MockDB{ - Err: pkgerrors.New("DB Error"), - }, - }, - } - - for _, testCase := range testCases { - t.Run(testCase.label, func(t *testing.T) { - db.DBconn = testCase.mockdb - vimpl := GetVNFDClient() - got, err := vimpl.Get(testCase.inp) - if err != nil { - if testCase.expectedError == "" { - t.Fatalf("Get returned an unexpected error %s", err) - } - if strings.Contains(err.Error(), testCase.expectedError) == false { - t.Fatalf("Get returned an unexpected error %s", err) - } - } else { - if reflect.DeepEqual(testCase.expected, got) == false { - t.Errorf("Get VNF returned unexpected body: got %v;"+ - " expected %v", got, testCase.expected) - } - } - }) - } -} - -func TestDelete(t *testing.T) { - - testCases := []struct { - label string - inp string - expectedError string - mockdb *db.MockDB - expected []VNFDefinition - }{ - { - label: "Delete VNF Definition", - inp: "123e4567-e89b-12d3-a456-426655440000", - mockdb: &db.MockDB{}, - }, - { - label: "Delete Error", - expectedError: "DB Error", - mockdb: &db.MockDB{ - Err: pkgerrors.New("DB Error"), - }, - }, - } - - for _, testCase := range testCases { - t.Run(testCase.label, func(t *testing.T) { - db.DBconn = testCase.mockdb - vimpl := GetVNFDClient() - err := vimpl.Delete(testCase.inp) - if err != nil { - if testCase.expectedError == "" { - t.Fatalf("Delete returned an unexpected error %s", err) - } - if strings.Contains(err.Error(), testCase.expectedError) == false { - t.Fatalf("Delete returned an unexpected error %s", err) - } - } - }) - } -} |