e2etest/stress_generators/acct_rm.go (78 lines of code) (raw):

package main import ( "fmt" "github.com/Azure/azure-sdk-for-go/sdk/azcore" blobservice "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/service" blobfsservice "github.com/Azure/azure-sdk-for-go/sdk/storage/azdatalake/service" fileservice "github.com/Azure/azure-sdk-for-go/sdk/storage/azfile/service" "github.com/Azure/azure-storage-azcopy/v10/common" "github.com/Azure/azure-storage-azcopy/v10/e2etest" ) // OAuthAccountResourceManager is jank incarnate, this isn't meant to be here long. if you're feeling the growing pains of it, // maybe looking at merging it into the new e2e tests, it's time to burn the building down. type OAuthAccountResourceManager struct { serviceClientOptions azcore.ClientOptions cred azcore.TokenCredential accountName string } func (a *OAuthAccountResourceManager) AccountName() string { return a.accountName } func (a *OAuthAccountResourceManager) AccountType() e2etest.AccountType { return e2etest.EAccountType.Standard() // this gets unused for the most part, it's ok if we return a possibly false value. it isn't used for most logic. } func (a *OAuthAccountResourceManager) AvailableServices() []common.Location { return []common.Location{ common.ELocation.Blob(), common.ELocation.BlobFS(), common.ELocation.File(), } } func (a *OAuthAccountResourceManager) GetService(asserter e2etest.Asserter, location common.Location) e2etest.ServiceResourceManager { var serviceSuffix = map[common.Location]string{ common.ELocation.Blob(): ".blob.core.windows.net", common.ELocation.File(): ".file.core.windows.net", common.ELocation.BlobFS(): ".dfs.core.windows.net", } uri := fmt.Sprint("https://%s%s/", a.accountName, serviceSuffix) var out e2etest.ServiceResourceManager switch location { case common.ELocation.Blob(): c, err := blobservice.NewClient(uri, a.cred, &blobservice.ClientOptions{ ClientOptions: a.serviceClientOptions, }) if err != nil { asserter.NoError("create blob service", err) return nil } out = &e2etest.BlobServiceResourceManager{ InternalAccount: nil, InternalClient: c, } case common.ELocation.File(): c, err := fileservice.NewClient(uri, a.cred, &fileservice.ClientOptions{ ClientOptions: a.serviceClientOptions, }) if err != nil { asserter.NoError("create file service", err) return nil } out = &e2etest.FileServiceResourceManager{ InternalAccount: nil, InternalClient: c, } case common.ELocation.BlobFS(): c, err := blobfsservice.NewClient(uri, a.cred, &blobfsservice.ClientOptions{ ClientOptions: a.serviceClientOptions, }) if err != nil { asserter.NoError("create blob service", err) return nil } out = &e2etest.BlobFSServiceResourceManager{ InternalAccount: nil, InternalClient: c, } default: asserter.Error("Invalid service specified: " + location.String()) } return out }