From ff9a7fe6e669dee49d331f33f35e6618cc055b12 Mon Sep 17 00:00:00 2001 From: vaikas-google Date: Thu, 28 Jan 2016 11:30:26 -0800 Subject: [PATCH] Use the actual kubernetes object when deleting to ensure it matches what is expected to delete --- resourcifier/configurator/configurator.go | 7 ++++++- util/kubernetes.go | 2 +- util/kubernetes_kubectl.go | 8 +++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/resourcifier/configurator/configurator.go b/resourcifier/configurator/configurator.go index 3d07e4818..8570138da 100644 --- a/resourcifier/configurator/configurator.go +++ b/resourcifier/configurator/configurator.go @@ -165,7 +165,12 @@ func (a *Configurator) configureResource(resource *common.Resource, o operation) case GetOperation: return a.k.Get(resource.Name, resource.Type) case DeleteOperation: - ret, err = a.k.Delete(resource.Name, resource.Type) + obj, err := marshalResource(resource) + if err != nil { + resource.State = failState(err) + return "", err + } + ret, err = a.k.Delete(obj) // Treat deleting a non-existent resource as success. if err != nil { if strings.HasSuffix(strings.TrimSpace(ret), "not found") { diff --git a/util/kubernetes.go b/util/kubernetes.go index 93d909933..0a9aac138 100644 --- a/util/kubernetes.go +++ b/util/kubernetes.go @@ -37,6 +37,6 @@ type KubernetesConfig struct { type Kubernetes interface { Get(name string, resourceType string) (string, error) Create(resource string) (string, error) - Delete(name string, resourceType string) (string, error) + Delete(resource string) (string, error) Replace(resource string) (string, error) } diff --git a/util/kubernetes_kubectl.go b/util/kubernetes_kubectl.go index 29c4bc3e7..bc25fda70 100644 --- a/util/kubernetes_kubectl.go +++ b/util/kubernetes_kubectl.go @@ -100,11 +100,9 @@ func (k *KubernetesKubectl) Create(resource string) (string, error) { return k.execute(args, resource) } -func (k *KubernetesKubectl) Delete(name string, resourceType string) (string, error) { - args := []string{"delete", - resourceType, - name} - return k.execute(args, "") +func (k *KubernetesKubectl) Delete(resource string) (string, error) { + args := []string{"delete"} + return k.execute(args, resource) } func (k *KubernetesKubectl) Replace(resource string) (string, error) {