github.com/darmach/terratest@v0.34.8-0.20210517103231-80931f95e3ff/modules/azure/loganalytics.go (about) 1 package azure 2 3 import ( 4 "context" 5 "fmt" 6 7 "github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights" 8 "github.com/gruntwork-io/terratest/modules/testing" 9 "github.com/stretchr/testify/require" 10 ) 11 12 // LogAnalyticsWorkspaceExists indicates whether the operatonal insights workspaces exists. 13 // This function would fail the test if there is an error. 14 func LogAnalyticsWorkspaceExists(t testing.TestingT, workspaceName string, resourceGroupName string, subscriptionID string) bool { 15 exists, err := LogAnalyticsWorkspaceExistsE(workspaceName, resourceGroupName, subscriptionID) 16 require.NoError(t, err) 17 return exists 18 } 19 20 // GetLogAnalyticsWorkspace gets an operational insights workspace if it exists in a subscription. 21 // This function would fail the test if there is an error. 22 func GetLogAnalyticsWorkspace(t testing.TestingT, workspaceName string, resourceGroupName string, subscriptionID string) *operationalinsights.Workspace { 23 ws, err := GetLogAnalyticsWorkspaceE(workspaceName, resourceGroupName, subscriptionID) 24 require.NoError(t, err) 25 26 return ws 27 } 28 29 // GetLogAnalyticsWorkspaceE gets an operational insights workspace if it exists in a subscription. 30 func GetLogAnalyticsWorkspaceE(workspaceName, resoureGroupName, subscriptionID string) (*operationalinsights.Workspace, error) { 31 client, err := GetLogAnalyticsWorkspacesClientE(subscriptionID) 32 if err != nil { 33 return nil, err 34 } 35 36 ws, err := client.Get(context.Background(), resoureGroupName, workspaceName) 37 if err != nil { 38 return nil, err 39 } 40 return &ws, nil 41 } 42 43 // LogAnalyticsWorkspaceExistsE indicates whether the operatonal insights workspaces exists and may return an error. 44 func LogAnalyticsWorkspaceExistsE(workspaceName string, resourceGroupName string, subscriptionID string) (bool, error) { 45 _, err := GetLogAnalyticsWorkspaceE(workspaceName, resourceGroupName, subscriptionID) 46 if err != nil { 47 if ResourceNotFoundErrorExists(err) { 48 return false, nil 49 } 50 return false, err 51 } 52 return true, nil 53 } 54 55 // GetLogAnalyticsWorkspacesClientE return workspaces client; otherwise error. 56 func GetLogAnalyticsWorkspacesClientE(subscriptionID string) (*operationalinsights.WorkspacesClient, error) { 57 subscriptionID, err := getTargetAzureSubscription(subscriptionID) 58 if err != nil { 59 fmt.Println("Workspace client error getting subscription") 60 return nil, err 61 } 62 63 client := operationalinsights.NewWorkspacesClient(subscriptionID) 64 authorizer, err := NewAuthorizer() 65 if err != nil { 66 fmt.Println("authorizer error") 67 return nil, err 68 } 69 70 client.Authorizer = *authorizer 71 return &client, nil 72 }