mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 14:07:14 +00:00
Handle deleteTimestamp in federated ns e2e tests
This commit is contained in:
parent
99f77f42e2
commit
e67c6a750f
@ -21,7 +21,6 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4"
|
|
||||||
"k8s.io/kubernetes/pkg/api"
|
"k8s.io/kubernetes/pkg/api"
|
||||||
"k8s.io/kubernetes/pkg/api/errors"
|
"k8s.io/kubernetes/pkg/api/errors"
|
||||||
api_v1 "k8s.io/kubernetes/pkg/api/v1"
|
api_v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||||
@ -55,9 +54,16 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func
|
|||||||
|
|
||||||
AfterEach(func() {
|
AfterEach(func() {
|
||||||
framework.SkipUnlessFederated(f.Client)
|
framework.SkipUnlessFederated(f.Client)
|
||||||
deleteAllTestNamespacesFed14(f.FederationClientset_1_4)
|
// TODO: set wait to true once NS controller is fixed.
|
||||||
|
deleteAllTestNamespaces(
|
||||||
|
f.FederationClientset_1_4.Core().Namespaces().List,
|
||||||
|
f.FederationClientset_1_4.Core().Namespaces().Delete,
|
||||||
|
false)
|
||||||
for _, clientset := range clusterClientSet {
|
for _, clientset := range clusterClientSet {
|
||||||
deleteAllTestNamespaces13(clientset)
|
deleteAllTestNamespaces(
|
||||||
|
clientset.Core().Namespaces().List,
|
||||||
|
clientset.Core().Namespaces().Delete,
|
||||||
|
false)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -88,40 +94,48 @@ var _ = framework.KubeDescribe("Federation namespace [Feature:Federation]", func
|
|||||||
})
|
})
|
||||||
framework.ExpectNoError(err, "Not all namespaces created")
|
framework.ExpectNoError(err, "Not all namespaces created")
|
||||||
|
|
||||||
err = f.FederationClientset_1_4.Core().Namespaces().Delete(ns.Name, &api.DeleteOptions{})
|
// TODO: set wait to true once NS controller is fixed.
|
||||||
framework.ExpectNoError(err, "Failed to delete namespace %s", ns.Name)
|
deleteAllTestNamespaces(
|
||||||
|
f.FederationClientset_1_4.Core().Namespaces().List,
|
||||||
|
f.FederationClientset_1_4.Core().Namespaces().Delete,
|
||||||
|
false)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
func deleteAllTestNamespacesFed14(clientset *federation_release_1_4.Clientset) {
|
func deleteAllTestNamespaces(lister func(api.ListOptions) (*api_v1.NamespaceList, error), deleter func(string, *api.DeleteOptions) error, waitForDeletion bool) {
|
||||||
list, err := clientset.Core().Namespaces().List(api.ListOptions{})
|
list, err := lister(api.ListOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to get all namespaes: %v", err)
|
framework.Failf("Failed to get all namespaes: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
for _, namespace := range list.Items {
|
for _, namespace := range list.Items {
|
||||||
if strings.HasPrefix(namespace.Name, namespacePrefix) {
|
if strings.HasPrefix(namespace.Name, namespacePrefix) && namespace.DeletionTimestamp != nil {
|
||||||
err := clientset.Core().Namespaces().Delete(namespace.Name, &api.DeleteOptions{})
|
err := deleter(namespace.Name, &api.DeleteOptions{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
framework.Failf("Failed to delete %s: %v", namespace.Name, err)
|
framework.Failf("Failed to set %s for deletion: %v", namespace.Name, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if waitForDeletion {
|
||||||
|
waitForNoTestNamespaces(lister)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func deleteAllTestNamespaces13(clientset *release_1_3.Clientset) {
|
func waitForNoTestNamespaces(lister func(api.ListOptions) (*api_v1.NamespaceList, error)) {
|
||||||
list, err := clientset.Core().Namespaces().List(api.ListOptions{})
|
err := wait.Poll(5*time.Second, 2*time.Minute, func() (bool, error) {
|
||||||
if err != nil {
|
list, err := lister(api.ListOptions{})
|
||||||
framework.Failf("Failed to get all namespaes: %v", err)
|
if err != nil {
|
||||||
return
|
return false, err
|
||||||
}
|
}
|
||||||
for _, namespace := range list.Items {
|
for _, namespace := range list.Items {
|
||||||
if strings.HasPrefix(namespace.Name, namespacePrefix) {
|
if strings.HasPrefix(namespace.Name, namespacePrefix) {
|
||||||
err := clientset.Core().Namespaces().Delete(namespace.Name, &api.DeleteOptions{})
|
return false, nil
|
||||||
if err != nil {
|
|
||||||
framework.Failf("Failed to delete %s: %v", namespace.Name, err)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return true, nil
|
||||||
|
})
|
||||||
|
if err != nil {
|
||||||
|
framework.Failf("Namespaces not deleted: %v", err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user