github.com/darmach/terratest@v0.34.8-0.20210517103231-80931f95e3ff/modules/azure/resourcegroup.go (about)

     1  package azure
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/Azure/azure-sdk-for-go/services/resources/mgmt/2019-05-01/resources"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  // ResourceGroupExists indicates whether a resource group exists within a subscription; otherwise false
    12  // This function would fail the test if there is an error.
    13  func ResourceGroupExists(t *testing.T, resourceGroupName string, subscriptionID string) bool {
    14  	result, err := ResourceGroupExistsE(resourceGroupName, subscriptionID)
    15  	require.NoError(t, err)
    16  	return result
    17  }
    18  
    19  // ResourceGroupExistsE indicates whether a resource group exists within a subscription
    20  func ResourceGroupExistsE(resourceGroupName, subscriptionID string) (bool, error) {
    21  	exists, err := GetResourceGroupE(resourceGroupName, subscriptionID)
    22  	if err != nil {
    23  		if ResourceNotFoundErrorExists(err) {
    24  			return false, nil
    25  		}
    26  		return false, err
    27  	}
    28  	return exists, nil
    29  
    30  }
    31  
    32  // GetResourceGroupE gets a resource group within a subscription
    33  func GetResourceGroupE(resourceGroupName, subscriptionID string) (bool, error) {
    34  	subscriptionID, err := getTargetAzureSubscription(subscriptionID)
    35  	if err != nil {
    36  		return false, err
    37  	}
    38  	client, err := CreateResourceGroupClientE(subscriptionID)
    39  	if err != nil {
    40  		return false, err
    41  	}
    42  	rg, err := client.Get(context.Background(), resourceGroupName)
    43  	if err != nil {
    44  		return false, err
    45  	}
    46  	return (resourceGroupName == *rg.Name), nil
    47  }
    48  
    49  // GetResourceGroupClientE gets a resource group client in a subscription
    50  // TODO: remove in next version
    51  func GetResourceGroupClientE(subscriptionID string) (*resources.GroupsClient, error) {
    52  	subscriptionID, err := getTargetAzureSubscription(subscriptionID)
    53  	if err != nil {
    54  		return nil, err
    55  	}
    56  	resourceGroupClient := resources.NewGroupsClient(subscriptionID)
    57  	authorizer, err := NewAuthorizer()
    58  	if err != nil {
    59  		return nil, err
    60  	}
    61  	resourceGroupClient.Authorizer = *authorizer
    62  	return &resourceGroupClient, nil
    63  }