Skip to content

Commit a2bf948

Browse files
committed
test: add account creation leak test
fix fix
1 parent aba979c commit a2bf948

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

test/e2e/suite_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ var _ = ginkgo.AfterSuite(func() {
162162
}
163163
execTestCmd([]testCmd{installDriver, uninstallDriver})
164164

165+
checkAccountCreationLeak()
166+
165167
err := credentials.DeleteAzureCredentialFile()
166168
gomega.Expect(err).NotTo(gomega.HaveOccurred())
167169
})
@@ -200,6 +202,20 @@ func execTestCmd(cmds []testCmd) {
200202
}
201203
}
202204

205+
func checkAccountCreationLeak() {
206+
creds, err := credentials.CreateAzureCredentialFile()
207+
gomega.Expect(err).NotTo(gomega.HaveOccurred())
208+
azureClient, err := azure.GetClient(creds.Cloud, creds.SubscriptionID, creds.AADClientID, creds.TenantID, creds.AADClientSecret)
209+
gomega.Expect(err).NotTo(gomega.HaveOccurred())
210+
211+
accountNum, err := azureClient.GetAccountNumByResourceGroup(context.TODO(), creds.ResourceGroup)
212+
framework.ExpectNoError(err, fmt.Sprintf("failed to GetAccountNumByResourceGroup(%s): %v", creds.ResourceGroup, err))
213+
ginkgo.By(fmt.Sprintf("GetAccountNumByResourceGroup(%s) returns %d accounts", creds.ResourceGroup, accountNum))
214+
215+
accountLimitInTest := 10
216+
framework.ExpectEqual(accountNum >= accountLimitInTest, false, fmt.Sprintf("current account num %d should not exceed %d", accountNum, accountLimitInTest))
217+
}
218+
203219
// handleFlags sets up all flags and parses the command line.
204220
func handleFlags() {
205221
config.CopyFlags(config.Flags, flag.CommandLine)

test/utils/azure/azure_helper.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"time"
2525

2626
"github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-05-01/resources"
27+
"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-02-01/storage"
2728
"github.com/Azure/go-autorest/autorest"
2829
"github.com/Azure/go-autorest/autorest/adal"
2930
"github.com/Azure/go-autorest/autorest/azure"
@@ -33,6 +34,7 @@ type Client struct {
3334
environment azure.Environment
3435
subscriptionID string
3536
groupsClient resources.GroupsClient
37+
accountsClient storage.AccountsClient
3638
}
3739

3840
func GetClient(cloud, subscriptionID, clientID, tenantID, clientSecret string) (*Client, error) {
@@ -100,6 +102,14 @@ func (az *Client) DeleteResourceGroup(ctx context.Context, groupName string) err
100102
return nil
101103
}
102104

105+
func (az *Client) GetAccountNumByResourceGroup(ctx context.Context, groupName string) (count int, err error) {
106+
result, err := az.accountsClient.ListByResourceGroup(ctx, groupName)
107+
if err != nil {
108+
return -1, err
109+
}
110+
return len(result.Values()), nil
111+
}
112+
103113
func getOAuthConfig(env azure.Environment, subscriptionID, tenantID string) (*adal.OAuthConfig, error) {
104114
oauthConfig, err := adal.NewOAuthConfig(env.ActiveDirectoryEndpoint, tenantID)
105115
if err != nil {
@@ -114,10 +124,12 @@ func getClient(env azure.Environment, subscriptionID, tenantID string, armSpt *a
114124
environment: env,
115125
subscriptionID: subscriptionID,
116126
groupsClient: resources.NewGroupsClientWithBaseURI(env.ResourceManagerEndpoint, subscriptionID),
127+
accountsClient: storage.NewAccountsClient(subscriptionID),
117128
}
118129

119130
authorizer := autorest.NewBearerAuthorizer(armSpt)
120131
c.groupsClient.Authorizer = authorizer
132+
c.accountsClient.Authorizer = authorizer
121133

122134
return c
123135
}

0 commit comments

Comments
 (0)