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 }