From 2fa10f8ad615a2280fdcc6c3879fe0217bfdd3c4 Mon Sep 17 00:00:00 2001 From: Mike Danese Date: Mon, 28 Sep 2015 11:04:17 -0700 Subject: [PATCH] delete job when namespace is deleted --- .../namespace/namespace_controller.go | 18 ++++++++++++++++++ .../namespace/namespace_controller_test.go | 1 + 2 files changed, 19 insertions(+) diff --git a/pkg/controller/namespace/namespace_controller.go b/pkg/controller/namespace/namespace_controller.go index da740d86f04..c4b85784573 100644 --- a/pkg/controller/namespace/namespace_controller.go +++ b/pkg/controller/namespace/namespace_controller.go @@ -201,6 +201,10 @@ func deleteAllContent(kubeClient client.Interface, experimentalMode bool, namesp if err != nil { return estimate, err } + err = deleteJobs(kubeClient.Experimental(), namespace) + if err != nil { + return estimate, err + } err = deleteDeployments(kubeClient.Experimental(), namespace) if err != nil { return estimate, err @@ -465,6 +469,20 @@ func deleteDaemonSets(expClient client.ExperimentalInterface, ns string) error { return nil } +func deleteJobs(expClient client.ExperimentalInterface, ns string) error { + items, err := expClient.Jobs(ns).List(labels.Everything(), fields.Everything()) + if err != nil { + return err + } + for i := range items.Items { + err := expClient.Jobs(ns).Delete(items.Items[i].Name, nil) + if err != nil && !errors.IsNotFound(err) { + return err + } + } + return nil +} + func deleteDeployments(expClient client.ExperimentalInterface, ns string) error { items, err := expClient.Deployments(ns).List(labels.Everything(), fields.Everything()) if err != nil { diff --git a/pkg/controller/namespace/namespace_controller_test.go b/pkg/controller/namespace/namespace_controller_test.go index 5f935a669b3..d8d7fdd85a7 100644 --- a/pkg/controller/namespace/namespace_controller_test.go +++ b/pkg/controller/namespace/namespace_controller_test.go @@ -113,6 +113,7 @@ func testSyncNamespaceThatIsTerminating(t *testing.T, experimentalMode bool) { strings.Join([]string{"list", "horizontalpodautoscalers", ""}, "-"), strings.Join([]string{"list", "daemonsets", ""}, "-"), strings.Join([]string{"list", "deployments", ""}, "-"), + strings.Join([]string{"list", "jobs", ""}, "-"), ) }