2 Copyright 2018 Intel Corporation.
3 Licensed under the Apache License, Version 2.0 (the "License");
4 you may not use this file except in compliance with the License.
5 You may obtain a copy of the License at
6 http://www.apache.org/licenses/LICENSE-2.0
7 Unless required by applicable law or agreed to in writing, software
8 distributed under the License is distributed on an "AS IS" BASIS,
9 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 See the License for the specific language governing permissions and
11 limitations under the License.
18 "k8s.io/client-go/kubernetes"
24 pkgerrors "github.com/pkg/errors"
30 func LoadMockPlugins(krdLoadedPlugins *map[string]*plugin.Plugin) error {
31 if _, err := os.Stat("../mock_files/mock_plugins/mockplugin.so"); os.IsNotExist(err) {
32 return pkgerrors.New("mockplugin.so does not exist. Please compile mockplugin.go to generate")
35 mockPlugin, err := plugin.Open("../mock_files/mock_plugins/mockplugin.so")
37 return pkgerrors.Cause(err)
40 (*krdLoadedPlugins)["namespace"] = mockPlugin
41 (*krdLoadedPlugins)["deployment"] = mockPlugin
42 (*krdLoadedPlugins)["service"] = mockPlugin
47 func TestCreateVNF(t *testing.T) {
48 oldkrdPluginData := krd.LoadedPlugins
49 oldReadMetadataFile := ReadMetadataFile
52 krd.LoadedPlugins = oldkrdPluginData
53 ReadMetadataFile = oldReadMetadataFile
56 err := LoadMockPlugins(&krd.LoadedPlugins)
58 t.Fatalf("TestCreateVNF returned an error (%s)", err)
61 ReadMetadataFile = func(yamlFilePath string) (MetadataFile, error) {
62 var seqFile MetadataFile
64 if _, err := os.Stat(yamlFilePath); err == nil {
65 rawBytes, err := ioutil.ReadFile("../mock_files/mock_yamls/metadata.yaml")
67 return seqFile, pkgerrors.Wrap(err, "Metadata YAML file read error")
70 err = yaml.Unmarshal(rawBytes, &seqFile)
72 return seqFile, pkgerrors.Wrap(err, "Metadata YAML file unmarshall error")
79 kubeclient := kubernetes.Clientset{}
81 t.Run("Successfully create VNF", func(t *testing.T) {
82 externaluuid, data, err := CreateVNF("uuid", "cloudregion1", "test", &kubeclient)
84 t.Fatalf("TestCreateVNF returned an error (%s)", err)
87 log.Println(externaluuid)
90 t.Fatalf("TestCreateVNF returned empty data (%s)", data)
96 func TestDeleteVNF(t *testing.T) {
97 oldkrdPluginData := krd.LoadedPlugins
100 krd.LoadedPlugins = oldkrdPluginData
103 err := LoadMockPlugins(&krd.LoadedPlugins)
105 t.Fatalf("TestCreateVNF returned an error (%s)", err)
108 kubeclient := kubernetes.Clientset{}
110 t.Run("Successfully delete VNF", func(t *testing.T) {
111 data := map[string][]string{
112 "deployment": []string{"cloud1-default-uuid-sisedeploy"},
113 "service": []string{"cloud1-default-uuid-sisesvc"},
116 err := DestroyVNF(data, "test", &kubeclient)
118 t.Fatalf("TestCreateVNF returned an error (%s)", err)
123 func TestReadMetadataFile(t *testing.T) {
124 t.Run("Successfully read Metadata YAML file", func(t *testing.T) {
125 _, err := ReadMetadataFile("../mock_files//mock_yamls/metadata.yaml")
127 t.Fatalf("TestReadMetadataFile returned an error (%s)", err)