diff options
Diffstat (limited to 'src/k8splugin/plugins/network/plugin.go')
-rw-r--r-- | src/k8splugin/plugins/network/plugin.go | 22 |
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") |