summaryrefslogtreecommitdiffstats
path: root/src/k8splugin/plugins/network/plugin.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/k8splugin/plugins/network/plugin.go')
-rw-r--r--src/k8splugin/plugins/network/plugin.go22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/k8splugin/plugins/network/plugin.go b/src/k8splugin/plugins/network/plugin.go
index ca5aa959..aa0d584b 100644
--- a/src/k8splugin/plugins/network/plugin.go
+++ b/src/k8splugin/plugins/network/plugin.go
@@ -14,9 +14,10 @@ limitations under the License.
package main
import (
- v1 "github.com/onap/multicloud-k8s/src/k8splugin/plugins/network/v1"
"regexp"
+ v1 "github.com/onap/multicloud-k8s/src/k8splugin/plugins/network/v1"
+
utils "github.com/onap/multicloud-k8s/src/k8splugin/internal"
"github.com/onap/multicloud-k8s/src/k8splugin/internal/helm"
"github.com/onap/multicloud-k8s/src/k8splugin/internal/plugin"
@@ -25,20 +26,25 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema"
)
+// Compile time check to see if networkPlugin implements the correct interface
+var _ plugin.Reference = networkPlugin{}
+
// ExportedVariable is what we will look for when calling the plugin
var ExportedVariable networkPlugin
type networkPlugin struct {
}
-func extractData(data string) (cniType, networkName string) {
+func extractData(data string) (cniType, networkName string, err error) {
re := regexp.MustCompile("_")
split := re.Split(data, -1)
- if len(split) != 3 {
+ if len(split) != 2 {
+ err = pkgerrors.New("Couldn't split resource '" + data +
+ "' into CNI type and Network name")
return
}
- cniType = split[1]
- networkName = split[2]
+ cniType = split[0]
+ networkName = split[1]
return
}
@@ -82,7 +88,11 @@ func (p networkPlugin) List(gvk schema.GroupVersionKind, namespace string,
// Delete an existing Network
func (p networkPlugin) Delete(resource helm.KubernetesResource, namespace string, client plugin.KubernetesConnector) error {
- cniType, networkName := extractData(resource.Name)
+ cniType, networkName, err := extractData(resource.Name)
+ if err != nil {
+ return pkgerrors.Wrap(err, "Error extracting CNI type from resource")
+ }
+
typePlugin, ok := utils.LoadedPlugins[cniType+"-network"]
if !ok {
return pkgerrors.New("No plugin for resource " + cniType + " found")