Skip to content

Commit af1044c

Browse files
committed
test: list account test
1 parent 0737748 commit af1044c

26 files changed

+13375
-1
lines changed

test/e2e/suite_test.go

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ limitations under the License.
1717
package e2e
1818

1919
import (
20+
"context"
2021
"flag"
2122
"fmt"
2223
"log"
@@ -28,6 +29,8 @@ import (
2829
"testing"
2930

3031
"github.com/kubernetes-csi/csi-driver-smb/pkg/smb"
32+
"github.com/kubernetes-csi/csi-driver-smb/test/utils/azure"
33+
"github.com/kubernetes-csi/csi-driver-smb/test/utils/credentials"
3134
"github.com/onsi/ginkgo/v2"
3235
"github.com/onsi/ginkgo/v2/reporters"
3336
"github.com/onsi/gomega"
@@ -110,7 +113,7 @@ type testCmd struct {
110113
endLog string
111114
}
112115

113-
var _ = ginkgo.BeforeSuite(func() {
116+
var _ = ginkgo.BeforeSuite(func(ctx ginkgo.SpecContext) {
114117
// k8s.io/kubernetes/test/e2e/framework requires env KUBECONFIG to be set
115118
// it does not fall back to defaults
116119
if os.Getenv(kubeconfigEnvVar) == "" {
@@ -123,6 +126,8 @@ var _ = ginkgo.BeforeSuite(func() {
123126
kubeconfig := os.Getenv(kubeconfigEnvVar)
124127
log.Println(testWinServerVerEnvVar, os.Getenv(testWinServerVerEnvVar), fmt.Sprintf("%v", winServerVer))
125128

129+
checkAccountCreationLeak(ctx)
130+
126131
// Install SMB provisioner on cluster
127132
installSMBProvisioner := testCmd{
128133
command: "make",
@@ -315,3 +320,17 @@ func getSmbTestEnvVarValue(envVarName string, defaultVarValue string) (smbTestEn
315320
}
316321
return
317322
}
323+
324+
func checkAccountCreationLeak(ctx context.Context) {
325+
creds, err := credentials.CreateAzureCredentialFile(false)
326+
gomega.Expect(err).NotTo(gomega.HaveOccurred())
327+
azureClient, err := azure.GetAzureClient(creds.Cloud, creds.SubscriptionID, creds.AADClientID, creds.TenantID, creds.AADClientSecret)
328+
gomega.Expect(err).NotTo(gomega.HaveOccurred())
329+
330+
accountNum, err := azureClient.GetAccountNumByResourceGroup(ctx, creds.ResourceGroup)
331+
framework.ExpectNoError(err, fmt.Sprintf("failed to GetAccountNumByResourceGroup(%s): %v", creds.ResourceGroup, err))
332+
ginkgo.By(fmt.Sprintf("GetAccountNumByResourceGroup(%s) returns %d accounts", creds.ResourceGroup, accountNum))
333+
334+
accountLimitInTest := 15
335+
gomega.Expect(accountNum >= accountLimitInTest).To(gomega.BeFalse())
336+
}

test/utils/azure/azure_helpers.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/Azure/azure-sdk-for-go/services/compute/mgmt/2019-03-01/compute"
2727
"github.com/Azure/azure-sdk-for-go/services/network/mgmt/2018-08-01/network"
2828
"github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2018-05-01/resources"
29+
"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage"
2930
"github.com/Azure/go-autorest/autorest"
3031
"github.com/Azure/go-autorest/autorest/adal"
3132
"github.com/Azure/go-autorest/autorest/azure"
@@ -40,6 +41,7 @@ type Client struct {
4041
nicClient network.InterfacesClient
4142
subnetsClient network.SubnetsClient
4243
vnetClient network.VirtualNetworksClient
44+
accountsClient storage.AccountsClient
4345
}
4446

4547
func GetAzureClient(cloud, subscriptionID, clientID, tenantID, clientSecret string) (*Client, error) {
@@ -259,6 +261,7 @@ func getClient(env azure.Environment, subscriptionID string, armSpt *adal.Servic
259261
nicClient: network.NewInterfacesClient(subscriptionID),
260262
subnetsClient: network.NewSubnetsClient(subscriptionID),
261263
vnetClient: network.NewVirtualNetworksClient(subscriptionID),
264+
accountsClient: storage.NewAccountsClient(subscriptionID),
262265
}
263266

264267
authorizer := autorest.NewBearerAuthorizer(armSpt)
@@ -267,10 +270,19 @@ func getClient(env azure.Environment, subscriptionID string, armSpt *adal.Servic
267270
c.nicClient.Authorizer = authorizer
268271
c.subnetsClient.Authorizer = authorizer
269272
c.vnetClient.Authorizer = authorizer
273+
c.accountsClient.Authorizer = authorizer
270274

271275
return c
272276
}
273277

278+
func (az *Client) GetAccountNumByResourceGroup(ctx context.Context, groupName string) (count int, err error) {
279+
_, err = az.accountsClient.ListByResourceGroup(ctx, groupName)
280+
if err != nil {
281+
return -1, err
282+
}
283+
return 0, nil
284+
}
285+
274286
func stringPointer(s string) *string {
275287
return &s
276288
}

vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2019-06-01/storage/_meta.json

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)