diff --git a/test/e2e/federated-service.go b/test/e2e/federated-service.go index 6cf3cfdfab6..46aad1f6478 100644 --- a/test/e2e/federated-service.go +++ b/test/e2e/federated-service.go @@ -64,6 +64,11 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { }) Describe("Service creation", func() { + var ( + service *v1.Service + nsName string + ) + BeforeEach(func() { framework.SkipUnlessFederated(f.Client) // Placeholder @@ -71,37 +76,37 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { AfterEach(func() { framework.SkipUnlessFederated(f.Client) - // Placeholder + + if service != nil { + By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", service.Name, nsName)) + cleanupServiceShardsAndProviderResources(nsName, service, clusters) + service = nil + nsName = "" + } }) It("should succeed", func() { framework.SkipUnlessFederated(f.Client) - nsName := f.FederationNamespace.Name - service := createServiceOrFail(f.FederationClientset_1_4, nsName, FederatedServiceName) + nsName = f.FederationNamespace.Name + service = createServiceOrFail(f.FederationClientset_1_4, nsName, FederatedServiceName) By(fmt.Sprintf("Creation of service %q in namespace %q succeeded. Deleting service.", service.Name, nsName)) // Cleanup err := f.FederationClientset_1_4.Services(nsName).Delete(service.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace) By(fmt.Sprintf("Deletion of service %q in namespace %q succeeded.", service.Name, nsName)) - - By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", service.Name, nsName)) - cleanupServiceShardsAndProviderResources(nsName, service, clusters) }) It("should create matching services in underlying clusters", func() { framework.SkipUnlessFederated(f.Client) - nsName := f.FederationNamespace.Name - service := createServiceOrFail(f.FederationClientset_1_4, nsName, FederatedServiceName) + nsName = f.FederationNamespace.Name + service = createServiceOrFail(f.FederationClientset_1_4, nsName, FederatedServiceName) defer func() { // Cleanup By(fmt.Sprintf("Deleting service %q in namespace %q", service.Name, nsName)) err := f.FederationClientset_1_4.Services(nsName).Delete(service.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, nsName) - - By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", service.Name, nsName)) - cleanupServiceShardsAndProviderResources(nsName, service, clusters) }() waitForServiceShardsOrFail(nsName, service, clusters) }) @@ -130,10 +135,11 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { if service != nil { deleteServiceOrFail(f.FederationClientset_1_4, nsName, service.Name) - service = nil By(fmt.Sprintf("Deleting service shards and their provider resources in underlying clusters for service %q in namespace %q", service.Name, nsName)) cleanupServiceShardsAndProviderResources(nsName, service, clusters) + + service = nil } else { By("No service to delete. Service is nil") }