pkg/armhelpers/disk.go (31 lines of code) (raw):
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license.
package armhelpers
import (
"context"
"github.com/Azure/azure-sdk-for-go/profile/p20200901/resourcemanager/compute/armcompute"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/policy"
"github.com/pkg/errors"
)
// DeleteManagedDisk deletes a managed disk.
func (az *AzureClient) DeleteManagedDisk(ctx context.Context, resourceGroupName string, diskName string) error {
ctx = policy.WithHTTPHeader(ctx, az.acceptLanguageHeader)
poller, err := az.disksClient.BeginDelete(ctx, resourceGroupName, diskName, nil)
if err != nil {
return errors.Wrapf(err, "deleting managed disk %s/%s", resourceGroupName, diskName)
}
if _, err = poller.PollUntilDone(ctx, nil); err != nil {
return errors.Wrapf(err, "deleting managed disk %s/%s", resourceGroupName, diskName)
}
return nil
}
// ListManagedDisksByResourceGroup lists managed disks in a resource group.
func (az *AzureClient) ListManagedDisksByResourceGroup(ctx context.Context, resourceGroupName string) ([]*armcompute.Disk, error) {
ctx = policy.WithHTTPHeader(ctx, az.acceptLanguageHeader)
pager := az.disksClient.NewListByResourceGroupPager(resourceGroupName, nil)
list := []*armcompute.Disk{}
for pager.More() {
page, err := pager.NextPage(ctx)
if err != nil {
return nil, errors.Wrapf(err, "listing managed disks for resource group %s", resourceGroupName)
}
list = append(list, page.Value...)
}
return list, nil
}