Skip to content

Commit

Permalink
Merge pull request #2301 from ZeroMagic/azurefile-context
Browse files Browse the repository at this point in the history
Pass the context for AzureFile
  • Loading branch information
k8s-ci-robot committed Sep 15, 2022
2 parents c827783 + fba1f9f commit 3fb3df7
Show file tree
Hide file tree
Showing 7 changed files with 81 additions and 67 deletions.
26 changes: 13 additions & 13 deletions pkg/azureclients/fileclient/azure_fileclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func (c *Client) WithSubscriptionID(subscriptionID string) Interface {
}

// CreateFileShare creates a file share
func (c *Client) CreateFileShare(resourceGroupName, accountName string, shareOptions *ShareOptions) error {
func (c *Client) CreateFileShare(ctx context.Context, resourceGroupName, accountName string, shareOptions *ShareOptions) error {
mc := metrics.NewMetricContext("file_shares", "create", resourceGroupName, c.subscriptionID, "")

if shareOptions == nil {
Expand All @@ -110,7 +110,7 @@ func (c *Client) CreateFileShare(resourceGroupName, accountName string, shareOpt
Name: &shareOptions.Name,
FileShareProperties: fileShareProperties,
}
_, err := c.fileSharesClient.Create(context.Background(), resourceGroupName, accountName, shareOptions.Name, fileShare, "")
_, err := c.fileSharesClient.Create(ctx, resourceGroupName, accountName, shareOptions.Name, fileShare, "")
var rerr *retry.Error
if err != nil {
rerr = &retry.Error{
Expand All @@ -123,10 +123,10 @@ func (c *Client) CreateFileShare(resourceGroupName, accountName string, shareOpt
}

// DeleteFileShare deletes a file share
func (c *Client) DeleteFileShare(resourceGroupName, accountName, name string) error {
func (c *Client) DeleteFileShare(ctx context.Context, resourceGroupName, accountName, name string) error {
mc := metrics.NewMetricContext("file_shares", "delete", resourceGroupName, c.subscriptionID, "")

_, err := c.fileSharesClient.Delete(context.Background(), resourceGroupName, accountName, name, "", "")
_, err := c.fileSharesClient.Delete(ctx, resourceGroupName, accountName, name, "", "")
var rerr *retry.Error
if err != nil {
rerr = &retry.Error{
Expand All @@ -139,13 +139,13 @@ func (c *Client) DeleteFileShare(resourceGroupName, accountName, name string) er
}

// ResizeFileShare resizes a file share
func (c *Client) ResizeFileShare(resourceGroupName, accountName, name string, sizeGiB int) error {
func (c *Client) ResizeFileShare(ctx context.Context, resourceGroupName, accountName, name string, sizeGiB int) error {
mc := metrics.NewMetricContext("file_shares", "resize", resourceGroupName, c.subscriptionID, "")
var rerr *retry.Error

quota := int32(sizeGiB)

share, err := c.fileSharesClient.Get(context.Background(), resourceGroupName, accountName, name, "stats", "")
share, err := c.fileSharesClient.Get(ctx, resourceGroupName, accountName, name, "stats", "")
if err != nil {
rerr = &retry.Error{
RawError: err,
Expand All @@ -160,7 +160,7 @@ func (c *Client) ResizeFileShare(resourceGroupName, accountName, name string, si
}

share.FileShareProperties.ShareQuota = &quota
_, err = c.fileSharesClient.Update(context.Background(), resourceGroupName, accountName, name, share)
_, err = c.fileSharesClient.Update(ctx, resourceGroupName, accountName, name, share)
if err != nil {
rerr = &retry.Error{
RawError: err,
Expand All @@ -176,10 +176,10 @@ func (c *Client) ResizeFileShare(resourceGroupName, accountName, name string, si
}

// GetFileShare gets a file share
func (c *Client) GetFileShare(resourceGroupName, accountName, name string) (storage.FileShare, error) {
func (c *Client) GetFileShare(ctx context.Context, resourceGroupName, accountName, name string) (storage.FileShare, error) {
mc := metrics.NewMetricContext("file_shares", "get", resourceGroupName, c.subscriptionID, "")

result, err := c.fileSharesClient.Get(context.Background(), resourceGroupName, accountName, name, "stats", "")
result, err := c.fileSharesClient.Get(ctx, resourceGroupName, accountName, name, "stats", "")
var rerr *retry.Error
if err != nil {
rerr = &retry.Error{
Expand All @@ -192,11 +192,11 @@ func (c *Client) GetFileShare(resourceGroupName, accountName, name string) (stor
}

// GetServiceProperties get service properties
func (c *Client) GetServiceProperties(resourceGroupName, accountName string) (storage.FileServiceProperties, error) {
return c.fileServicesClient.GetServiceProperties(context.Background(), resourceGroupName, accountName)
func (c *Client) GetServiceProperties(ctx context.Context, resourceGroupName, accountName string) (storage.FileServiceProperties, error) {
return c.fileServicesClient.GetServiceProperties(ctx, resourceGroupName, accountName)
}

// SetServiceProperties set service properties
func (c *Client) SetServiceProperties(resourceGroupName, accountName string, parameters storage.FileServiceProperties) (storage.FileServiceProperties, error) {
return c.fileServicesClient.SetServiceProperties(context.Background(), resourceGroupName, accountName, parameters)
func (c *Client) SetServiceProperties(ctx context.Context, resourceGroupName, accountName string, parameters storage.FileServiceProperties) (storage.FileServiceProperties, error) {
return c.fileServicesClient.SetServiceProperties(ctx, resourceGroupName, accountName, parameters)
}
14 changes: 8 additions & 6 deletions pkg/azureclients/fileclient/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,19 @@ limitations under the License.
package fileclient

import (
"context"

"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage"
)

// Interface is the client interface for creating file shares, interface for test injection.
// Don't forget to run "hack/update-mock-clients.sh" command to generate the mock client.
type Interface interface {
CreateFileShare(resourceGroupName, accountName string, shareOptions *ShareOptions) error
DeleteFileShare(resourceGroupName, accountName, name string) error
ResizeFileShare(resourceGroupName, accountName, name string, sizeGiB int) error
GetFileShare(resourceGroupName, accountName, name string) (storage.FileShare, error)
GetServiceProperties(resourceGroupName, accountName string) (storage.FileServiceProperties, error)
SetServiceProperties(resourceGroupName, accountName string, parameters storage.FileServiceProperties) (storage.FileServiceProperties, error)
CreateFileShare(ctx context.Context, resourceGroupName, accountName string, shareOptions *ShareOptions) error
DeleteFileShare(ctx context.Context, resourceGroupName, accountName, name string) error
ResizeFileShare(ctx context.Context, resourceGroupName, accountName, name string, sizeGiB int) error
GetFileShare(ctx context.Context, resourceGroupName, accountName, name string) (storage.FileShare, error)
GetServiceProperties(ctx context.Context, resourceGroupName, accountName string) (storage.FileServiceProperties, error)
SetServiceProperties(ctx context.Context, resourceGroupName, accountName string, parameters storage.FileServiceProperties) (storage.FileServiceProperties, error)
WithSubscriptionID(subscriptionID string) Interface
}
49 changes: 25 additions & 24 deletions pkg/azureclients/fileclient/mockfileclient/interface.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

18 changes: 10 additions & 8 deletions pkg/provider/azure_file.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,24 +17,26 @@ limitations under the License.
package provider

import (
"context"

"github.com/Azure/azure-sdk-for-go/services/storage/mgmt/2021-09-01/storage"

"sigs.k8s.io/cloud-provider-azure/pkg/azureclients/fileclient"
)

// create file share
func (az *Cloud) createFileShare(subsID, resourceGroupName, accountName string, shareOptions *fileclient.ShareOptions) error {
return az.FileClient.WithSubscriptionID(subsID).CreateFileShare(resourceGroupName, accountName, shareOptions)
func (az *Cloud) createFileShare(ctx context.Context, subsID, resourceGroupName, accountName string, shareOptions *fileclient.ShareOptions) error {
return az.FileClient.WithSubscriptionID(subsID).CreateFileShare(ctx, resourceGroupName, accountName, shareOptions)
}

func (az *Cloud) deleteFileShare(subsID, resourceGroupName, accountName, name string) error {
return az.FileClient.WithSubscriptionID(subsID).DeleteFileShare(resourceGroupName, accountName, name)
func (az *Cloud) deleteFileShare(ctx context.Context, subsID, resourceGroupName, accountName, name string) error {
return az.FileClient.WithSubscriptionID(subsID).DeleteFileShare(ctx, resourceGroupName, accountName, name)
}

func (az *Cloud) resizeFileShare(subsID, resourceGroupName, accountName, name string, sizeGiB int) error {
return az.FileClient.WithSubscriptionID(subsID).ResizeFileShare(resourceGroupName, accountName, name, sizeGiB)
func (az *Cloud) resizeFileShare(ctx context.Context, subsID, resourceGroupName, accountName, name string, sizeGiB int) error {
return az.FileClient.WithSubscriptionID(subsID).ResizeFileShare(ctx, resourceGroupName, accountName, name, sizeGiB)
}

func (az *Cloud) getFileShare(subsID, resourceGroupName, accountName, name string) (storage.FileShare, error) {
return az.FileClient.WithSubscriptionID(subsID).GetFileShare(resourceGroupName, accountName, name)
func (az *Cloud) getFileShare(ctx context.Context, subsID, resourceGroupName, accountName, name string) (storage.FileShare, error) {
return az.FileClient.WithSubscriptionID(subsID).GetFileShare(ctx, resourceGroupName, accountName, name)
}
14 changes: 7 additions & 7 deletions pkg/provider/azure_storage.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,28 +54,28 @@ func (az *Cloud) CreateFileShare(ctx context.Context, accountOptions *AccountOpt
return "", "", fmt.Errorf("could not get storage key for storage account %s: %w", accountOptions.Name, err)
}

if err := az.createFileShare(accountOptions.SubscriptionID, accountOptions.ResourceGroup, accountName, shareOptions); err != nil {
if err := az.createFileShare(ctx, accountOptions.SubscriptionID, accountOptions.ResourceGroup, accountName, shareOptions); err != nil {
return "", "", fmt.Errorf("failed to create share %s in account %s: %w", shareOptions.Name, accountName, err)
}
klog.V(4).Infof("created share %s in account %s", shareOptions.Name, accountOptions.Name)
return accountName, accountKey, nil
}

// DeleteFileShare deletes a file share using storage account name and key
func (az *Cloud) DeleteFileShare(subsID, resourceGroup, accountName, shareName string) error {
if err := az.deleteFileShare(subsID, resourceGroup, accountName, shareName); err != nil {
func (az *Cloud) DeleteFileShare(ctx context.Context, subsID, resourceGroup, accountName, shareName string) error {
if err := az.deleteFileShare(ctx, subsID, resourceGroup, accountName, shareName); err != nil {
return err
}
klog.V(4).Infof("share %s deleted", shareName)
return nil
}

// ResizeFileShare resizes a file share
func (az *Cloud) ResizeFileShare(subsID, resourceGroup, accountName, name string, sizeGiB int) error {
return az.resizeFileShare(subsID, resourceGroup, accountName, name, sizeGiB)
func (az *Cloud) ResizeFileShare(ctx context.Context, subsID, resourceGroup, accountName, name string, sizeGiB int) error {
return az.resizeFileShare(ctx, subsID, resourceGroup, accountName, name, sizeGiB)
}

// GetFileShare gets a file share
func (az *Cloud) GetFileShare(subsID, resourceGroupName, accountName, name string) (storage.FileShare, error) {
return az.getFileShare(subsID, resourceGroupName, accountName, name)
func (az *Cloud) GetFileShare(ctx context.Context, subsID, resourceGroupName, accountName, name string) (storage.FileShare, error) {
return az.getFileShare(ctx, subsID, resourceGroupName, accountName, name)
}

0 comments on commit 3fb3df7

Please sign in to comment.