diff options
author | Bin Yang <bin.yang@windriver.com> | 2019-04-19 09:06:34 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@onap.org> | 2019-04-19 09:06:34 +0000 |
commit | 4f3fb377141d211bbaf7421c66fbf356974d338a (patch) | |
tree | c94ebc808bb341c82a8079c3bb1417302a10fb3a | |
parent | d5dbb07a38abfc68900070366fe7c239f124ecc6 (diff) | |
parent | bb712bce5402d65a3f522b62a6f95bf5e0166e66 (diff) |
Merge "Support non-namespaced objects in generic plugin"
-rw-r--r-- | src/k8splugin/plugins/generic/plugin.go | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/src/k8splugin/plugins/generic/plugin.go b/src/k8splugin/plugins/generic/plugin.go index 9073535c..f3b2798a 100644 --- a/src/k8splugin/plugins/generic/plugin.go +++ b/src/k8splugin/plugins/generic/plugin.go @@ -17,6 +17,7 @@ import ( "log" pkgerrors "github.com/pkg/errors" + "k8s.io/apimachinery/pkg/api/meta" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime/schema" @@ -59,8 +60,17 @@ func (g genericPlugin) Create(yamlFilePath string, namespace string, client *app } gvr := mapping.Resource + var createdObj *unstructured.Unstructured + + switch mapping.Scope.Name() { + case meta.RESTScopeNameNamespace: + createdObj, err = dynClient.Resource(gvr).Namespace(namespace).Create(unstruct, metav1.CreateOptions{}) + case meta.RESTScopeNameRoot: + createdObj, err = dynClient.Resource(gvr).Create(unstruct, metav1.CreateOptions{}) + default: + return "", pkgerrors.New("Got an unknown RESTSCopeName for mapping: " + gvk.String()) + } - createdObj, err := dynClient.Resource(gvr).Namespace(namespace).Create(unstruct, metav1.CreateOptions{}) if err != nil { return "", pkgerrors.Wrap(err, "Create object error") } @@ -93,11 +103,18 @@ func (g genericPlugin) Delete(resource helm.KubernetesResource, namespace string gvr := mapping.Resource log.Printf("Using gvr: %s, %s, %s", gvr.Group, gvr.Version, gvr.Resource) - err = dynClient.Resource(gvr).Namespace(namespace).Delete(resource.Name, opts) + switch mapping.Scope.Name() { + case meta.RESTScopeNameNamespace: + err = dynClient.Resource(gvr).Namespace(namespace).Delete(resource.Name, opts) + case meta.RESTScopeNameRoot: + err = dynClient.Resource(gvr).Delete(resource.Name, opts) + default: + return pkgerrors.New("Got an unknown RESTSCopeName for mapping: " + resource.GVK.String()) + } + if err != nil { return pkgerrors.Wrap(err, "Delete object error") } - return nil } |