github.com/darmach/terratest@v0.34.8-0.20210517103231-80931f95e3ff/modules/azure/monitor.go (about) 1 package azure 2 3 import ( 4 "context" 5 6 "github.com/Azure/azure-sdk-for-go/profiles/preview/preview/monitor/mgmt/insights" 7 "github.com/gruntwork-io/terratest/modules/testing" 8 "github.com/stretchr/testify/require" 9 ) 10 11 // DiagnosticSettingsResourceExists indicates whether the diagnostic settings resource exists 12 // This function would fail the test if there is an error. 13 func DiagnosticSettingsResourceExists(t testing.TestingT, diagnosticSettingsResourceName string, resourceURI string, subscriptionID string) bool { 14 exists, err := DiagnosticSettingsResourceExistsE(diagnosticSettingsResourceName, resourceURI, subscriptionID) 15 require.NoError(t, err) 16 17 return exists 18 } 19 20 // DiagnosticSettingsResourceExistsE indicates whether the diagnostic settings resource exists 21 func DiagnosticSettingsResourceExistsE(diagnosticSettingsResourceName string, resourceURI string, subscriptionID string) (bool, error) { 22 _, err := GetDiagnosticsSettingsResourceE(diagnosticSettingsResourceName, resourceURI, subscriptionID) 23 if err != nil { 24 if ResourceNotFoundErrorExists(err) { 25 return false, nil 26 } 27 return false, err 28 } 29 30 return true, nil 31 } 32 33 // GetDiagnosticsSettingsResource gets the diagnostics settings for a specified resource 34 // This function would fail the test if there is an error. 35 func GetDiagnosticsSettingsResource(t testing.TestingT, name string, resourceURI string, subscriptionID string) *insights.DiagnosticSettingsResource { 36 resource, err := GetDiagnosticsSettingsResourceE(name, resourceURI, subscriptionID) 37 require.NoError(t, err) 38 return resource 39 } 40 41 // GetDiagnosticsSettingsResourceE gets the diagnostics settings for a specified resource 42 func GetDiagnosticsSettingsResourceE(name string, resourceURI string, subscriptionID string) (*insights.DiagnosticSettingsResource, error) { 43 // Validate Azure subscription ID 44 subscriptionID, err := getTargetAzureSubscription(subscriptionID) 45 if err != nil { 46 return nil, err 47 } 48 49 client, err := CreateDiagnosticsSettingsClientE(subscriptionID) 50 if err != nil { 51 return nil, err 52 } 53 54 settings, err := client.Get(context.Background(), resourceURI, name) 55 if err != nil { 56 return nil, err 57 } 58 59 return &settings, nil 60 } 61 62 // GetDiagnosticsSettingsClientE returns a diagnostics settings client 63 // TODO: delete in next version 64 func GetDiagnosticsSettingsClientE(subscriptionID string) (*insights.DiagnosticSettingsClient, error) { 65 // Validate Azure subscription ID 66 subscriptionID, err := getTargetAzureSubscription(subscriptionID) 67 if err != nil { 68 return nil, err 69 } 70 71 client := insights.NewDiagnosticSettingsClient(subscriptionID) 72 authorizer, err := NewAuthorizer() 73 if err != nil { 74 return nil, err 75 } 76 77 client.Authorizer = *authorizer 78 79 return &client, nil 80 } 81 82 // GetVMInsightsOnboardingStatus get diagnostics VM onboarding status 83 // This function would fail the test if there is an error. 84 func GetVMInsightsOnboardingStatus(t testing.TestingT, resourceURI string, subscriptionID string) *insights.VMInsightsOnboardingStatus { 85 status, err := GetVMInsightsOnboardingStatusE(t, resourceURI, subscriptionID) 86 require.NoError(t, err) 87 88 return status 89 } 90 91 // GetVMInsightsOnboardingStatusE get diagnostics VM onboarding status 92 func GetVMInsightsOnboardingStatusE(t testing.TestingT, resourceURI string, subscriptionID string) (*insights.VMInsightsOnboardingStatus, error) { 93 client, err := CreateVMInsightsClientE(subscriptionID) 94 if err != nil { 95 return nil, err 96 } 97 98 status, err := client.GetOnboardingStatus(context.Background(), resourceURI) 99 if err != nil { 100 return nil, err 101 } 102 103 return &status, nil 104 } 105 106 // GetVMInsightsClientE gets a VM Insights client 107 // TODO: delete in next version 108 func GetVMInsightsClientE(t testing.TestingT, subscriptionID string) (*insights.VMInsightsClient, error) { 109 // Validate Azure subscription ID 110 subscriptionID, err := getTargetAzureSubscription(subscriptionID) 111 if err != nil { 112 return nil, err 113 } 114 115 client := insights.NewVMInsightsClient(subscriptionID) 116 117 authorizer, err := NewAuthorizer() 118 if err != nil { 119 return nil, err 120 } 121 122 client.Authorizer = *authorizer 123 124 return &client, nil 125 } 126 127 // GetActivityLogAlertResource gets a Action Group in the specified Azure Resource Group 128 // This function would fail the test if there is an error. 129 func GetActivityLogAlertResource(t testing.TestingT, activityLogAlertName string, resGroupName string, subscriptionID string) *insights.ActivityLogAlertResource { 130 activityLogAlertResource, err := GetActivityLogAlertResourceE(activityLogAlertName, resGroupName, subscriptionID) 131 require.NoError(t, err) 132 133 return activityLogAlertResource 134 } 135 136 // GetActivityLogAlertResourceE gets a Action Group in the specified Azure Resource Group 137 func GetActivityLogAlertResourceE(activityLogAlertName string, resGroupName string, subscriptionID string) (*insights.ActivityLogAlertResource, error) { 138 // Validate resource group name and subscription ID 139 _, err := getTargetAzureResourceGroupName(resGroupName) 140 if err != nil { 141 return nil, err 142 } 143 144 // Get the client reference 145 client, err := CreateActivityLogAlertsClientE(subscriptionID) 146 if err != nil { 147 return nil, err 148 } 149 150 // Get the Action Group 151 activityLogAlertResource, err := client.Get(context.Background(), resGroupName, activityLogAlertName) 152 if err != nil { 153 return nil, err 154 } 155 156 return &activityLogAlertResource, nil 157 } 158 159 // GetActivityLogAlertsClientE gets an Action Groups client in the specified Azure Subscription 160 // TODO: delete in next version 161 func GetActivityLogAlertsClientE(subscriptionID string) (*insights.ActivityLogAlertsClient, error) { 162 // Validate Azure subscription ID 163 subscriptionID, err := getTargetAzureSubscription(subscriptionID) 164 if err != nil { 165 return nil, err 166 } 167 168 // Get the Action Groups client 169 client := insights.NewActivityLogAlertsClient(subscriptionID) 170 171 // Create an authorizer 172 authorizer, err := NewAuthorizer() 173 if err != nil { 174 return nil, err 175 } 176 177 client.Authorizer = *authorizer 178 179 return &client, nil 180 }