Skip to content

Commit

Permalink
Merge pull request #217 from nilo19/t-qini-fix_group_not_cleaned
Browse files Browse the repository at this point in the history
Fix the bug: cannot delete test pip and resource group after test.
  • Loading branch information
k8s-ci-robot committed Aug 14, 2019
2 parents beae84a + e13a3f0 commit ce12cc0
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 11 deletions.
6 changes: 3 additions & 3 deletions tests/e2e/network/ensureloadbalancer.go
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ var _ = FDescribe("Ensure LoadBalancer", func() {
By("Cleaning up")
err = cs.CoreV1().Services(ns.Name).Delete(serviceName, nil)
Expect(err).NotTo(HaveOccurred())
err = utils.DeletePIPWithRetry(tc, ipName)
err = utils.DeletePIPWithRetry(tc, ipName, "")
Expect(err).NotTo(HaveOccurred())
}()

Expand Down Expand Up @@ -186,7 +186,7 @@ var _ = FDescribe("Ensure LoadBalancer", func() {
By("Cleaning up")
err = cs.CoreV1().Services(ns.Name).Delete(serviceName, nil)
Expect(err).NotTo(HaveOccurred())
err = utils.DeletePIPWithRetry(tc, ipName)
err = utils.DeletePIPWithRetry(tc, ipName, "")
Expect(err).NotTo(HaveOccurred())
}()

Expand Down Expand Up @@ -232,7 +232,7 @@ var _ = FDescribe("Ensure LoadBalancer", func() {
By("Cleaning up")
err = cs.CoreV1().Services(ns.Name).Delete(serviceName, nil)
Expect(err).NotTo(HaveOccurred())
err = utils.DeletePIPWithRetry(tc, ipName)
err = utils.DeletePIPWithRetry(tc, ipName, "")
Expect(err).NotTo(HaveOccurred())
}()

Expand Down
9 changes: 8 additions & 1 deletion tests/e2e/network/service_annotations.go
Original file line number Diff line number Diff line change
Expand Up @@ -233,9 +233,16 @@ var _ = FDescribe("Service with annotation", func() {
defer cleanup(to.String(rg.Name))

By("creating test PIP in the test resource group")
testPIPName := "testPIP" + string(uuid.NewUUID())[0:4]
testPIPName := "testPIP-" + string(uuid.NewUUID())[0:4]
pip, err := utils.WaitCreateNewPIP(tc, testPIPName, *rg.Name, defaultPublicIPAddress(testPIPName))
Expect(err).NotTo(HaveOccurred())
defer func() {
By("Cleaning up")
err = cs.CoreV1().Services(ns.Name).Delete(serviceName, nil)
Expect(err).NotTo(HaveOccurred())
err = utils.DeletePIPWithRetry(tc, testPIPName, *rg.Name)
Expect(err).NotTo(HaveOccurred())
}()

annotation := map[string]string{
azure.ServiceAnnotationLoadBalancerResourceGroup: to.String(rg.Name),
Expand Down
10 changes: 7 additions & 3 deletions tests/e2e/utils/network_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -210,12 +210,16 @@ func WaitCreateNewPIP(azureTestClient *AzureTestClient, ipName, rgName string, i
}

// DeletePIPWithRetry tries to delete a pulic ip resourc
func DeletePIPWithRetry(azureTestClient *AzureTestClient, ipName string) error {
Logf("Deleting public IP resource named %s", ipName)
func DeletePIPWithRetry(azureTestClient *AzureTestClient, ipName, rgName string) error {
if rgName == "" {
rgName = azureTestClient.GetResourceGroup()
}
Logf("Deleting public IP resource named %s in resource group %s", ipName, rgName)
pipClient := azureTestClient.createPublicIPAddressesClient()
err := wait.PollImmediate(poll, singleCallTimeout, func() (bool, error) {
_, err := pipClient.Delete(context.Background(), azureTestClient.GetResourceGroup(), ipName)
_, err := pipClient.Delete(context.Background(), rgName, ipName)
if err != nil {
Logf("error: %v, will retry soon", err)
return false, nil
}
return true, nil
Expand Down
20 changes: 16 additions & 4 deletions tests/e2e/utils/resource_group_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,11 +22,10 @@ import (

"github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-05-01/resources"
"github.com/Azure/go-autorest/autorest/to"

"k8s.io/apimachinery/pkg/util/uuid"

. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"

"k8s.io/apimachinery/pkg/util/uuid"
)

// CreateTestResourceGroup create a test rg
Expand All @@ -39,12 +38,25 @@ func CreateTestResourceGroup(tc *AzureTestClient) (*resources.Group, func(string

return &rg, func(rgName string) {
Logf("cleaning up test resource group %s", rgName)
_, err := gc.Delete(context.Background(), rgName)
future, err := gc.Delete(context.Background(), rgName)
Expect(err).NotTo(HaveOccurred())
err = WaitForDeleteResourceGroupCompletion(gc, future, rgName)
Expect(err).NotTo(HaveOccurred())
return
}
}

// WaitForDeleteResourceGroupCompletion waits for delete group operations to finish
func WaitForDeleteResourceGroupCompletion(gc *resources.GroupsClient, future resources.GroupsDeleteFuture, rgName string) error {
err := future.WaitForCompletionRef(context.Background(), gc.Client)
if err != nil {
return err
}

Logf("finished deleting group '%s'", rgName)
return nil
}

func createTestTemplate(tc *AzureTestClient, name *string) resources.Group {
return resources.Group{
Name: name,
Expand Down

0 comments on commit ce12cc0

Please sign in to comment.