Skip to content

Commit

Permalink
Switch loganalytics to generated resourceids (#9764)
Browse files Browse the repository at this point in the history
Switch loganalytics to generated resource IDs, upgrade to 2020-08-01
  • Loading branch information
favoretti authored Dec 9, 2020
1 parent 0f2a5bc commit 8459251
Show file tree
Hide file tree
Showing 88 changed files with 2,537 additions and 962 deletions.
2 changes: 1 addition & 1 deletion azurerm/internal/services/loganalytics/client/client.go
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package client

import (
"github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2020-08-01/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/preview/operationsmanagement/mgmt/2015-11-01-preview/operationsmanagement"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/common"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"log"
"time"

"github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2020-08-01/operationalinsights"
"github.com/hashicorp/terraform-plugin-sdk/helper/resource"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/internal/clients"
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import (
"strings"
"time"

"github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2020-08-01/operationalinsights"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/tf"
Expand Down Expand Up @@ -40,7 +40,7 @@ func resourceArmLogAnalyticsClusterCustomerManagedKey() *schema.Resource {
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: validate.LogAnalyticsClusterId,
ValidateFunc: validate.LogAnalyticsClusterID,
},

"key_vault_key_id": {
Expand All @@ -63,12 +63,12 @@ func resourceArmLogAnalyticsClusterCustomerManagedKeyCreate(d *schema.ResourceDa
return err
}

resp, err := client.Get(ctx, clusterId.ResourceGroup, clusterId.Name)
resp, err := client.Get(ctx, clusterId.ResourceGroup, clusterId.ClusterName)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
return fmt.Errorf("Log Analytics Cluster %q (resource group %q) was not found", clusterId.Name, clusterId.ResourceGroup)
return fmt.Errorf("Log Analytics Cluster %q (resource group %q) was not found", clusterId.ClusterName, clusterId.ResourceGroup)
}
return fmt.Errorf("failed to get details of Log Analytics Cluster %q (resource group %q): %+v", clusterId.Name, clusterId.ResourceGroup, err)
return fmt.Errorf("failed to get details of Log Analytics Cluster %q (resource group %q): %+v", clusterId.ClusterName, clusterId.ResourceGroup, err)
}
if resp.ClusterProperties != nil && resp.ClusterProperties.KeyVaultProperties != nil {
keyProps := *resp.ClusterProperties.KeyVaultProperties
Expand Down Expand Up @@ -106,14 +106,14 @@ func resourceArmLogAnalyticsClusterCustomerManagedKeyUpdate(d *schema.ResourceDa
},
}

if _, err := client.Update(ctx, clusterId.ResourceGroup, clusterId.Name, clusterPatch); err != nil {
return fmt.Errorf("updating Log Analytics Cluster %q (Resource Group %q): %+v", clusterId.Name, clusterId.ResourceGroup, err)
if _, err := client.Update(ctx, clusterId.ResourceGroup, clusterId.ClusterName, clusterPatch); err != nil {
return fmt.Errorf("updating Log Analytics Cluster %q (Resource Group %q): %+v", clusterId.ClusterName, clusterId.ResourceGroup, err)
}

updateWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutUpdate), clusterId.ResourceGroup, clusterId.Name)
updateWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutUpdate), clusterId.ResourceGroup, clusterId.ClusterName)

if _, err := updateWait.WaitForState(); err != nil {
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", clusterId.Name, clusterId.ResourceGroup, err)
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", clusterId.ClusterName, clusterId.ResourceGroup, err)
}

return resourceArmLogAnalyticsClusterCustomerManagedKeyRead(d, meta)
Expand All @@ -133,14 +133,14 @@ func resourceArmLogAnalyticsClusterCustomerManagedKeyRead(d *schema.ResourceData

d.Set("log_analytics_cluster_id", idRaw)

resp, err := client.Get(ctx, id.ResourceGroup, id.Name)
resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
log.Printf("[INFO] Log Analytics %q does not exist - removing from state", d.Id())
d.SetId("")
return nil
}
return fmt.Errorf("retrieving Log Analytics Cluster %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("retrieving Log Analytics Cluster %q (Resource Group %q): %+v", id.ClusterName, id.ResourceGroup, err)
}

if props := resp.ClusterProperties; props != nil {
Expand Down Expand Up @@ -190,14 +190,14 @@ func resourceArmLogAnalyticsClusterCustomerManagedKeyDelete(d *schema.ResourceDa
},
}

if _, err = client.Update(ctx, clusterId.ResourceGroup, clusterId.Name, clusterPatch); err != nil {
return fmt.Errorf("removing Log Analytics Cluster Customer Managed Key from cluster %q (resource group %q)", clusterId.Name, clusterId.ResourceGroup)
if _, err = client.Update(ctx, clusterId.ResourceGroup, clusterId.ClusterName, clusterPatch); err != nil {
return fmt.Errorf("removing Log Analytics Cluster Customer Managed Key from cluster %q (resource group %q)", clusterId.ClusterName, clusterId.ResourceGroup)
}

deleteWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutDelete), clusterId.ResourceGroup, clusterId.Name)
deleteWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutDelete), clusterId.ResourceGroup, clusterId.ClusterName)

if _, err := deleteWait.WaitForState(); err != nil {
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", clusterId.Name, clusterId.ResourceGroup, err)
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", clusterId.ClusterName, clusterId.ResourceGroup, err)
}

return nil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ func testCheckAzureRMLogAnalyticsClusterCustomerManagedKeyExists(resourceName st
if err != nil {
return err
}
resp, err := client.Get(ctx, id.ResourceGroup, id.Name)
resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName)
if err != nil {
if !utils.ResponseWasNotFound(resp.Response) {
return fmt.Errorf("bad: get on Log Analytics Cluster for CMK: %+v", err)
Expand Down Expand Up @@ -77,7 +77,7 @@ func testCheckAzureRMLogAnalyticsClusterCustomerManagedKeyDestroy(s *terraform.S
if err != nil {
return err
}
resp, err := client.Get(ctx, id.ResourceGroup, id.Name)
resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName)
if err != nil {
if !utils.ResponseWasNotFound(resp.Response) {
return fmt.Errorf("bad: get on Log Analytics Cluster for CMK: %+v", err)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"log"
"time"

"github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2020-08-01/operationalinsights"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
Expand Down Expand Up @@ -112,7 +112,7 @@ func resourceArmLogAnalyticsClusterCreate(d *schema.ResourceData, meta interface
name := d.Get("name").(string)
resourceGroup := d.Get("resource_group_name").(string)

id := parse.NewLogAnalyticsClusterId(name, resourceGroup)
id := parse.NewLogAnalyticsClusterID(subscriptionId, resourceGroup, name)

existing, err := client.Get(ctx, resourceGroup, name)
if err != nil {
Expand Down Expand Up @@ -147,10 +147,10 @@ func resourceArmLogAnalyticsClusterCreate(d *schema.ResourceData, meta interface
return fmt.Errorf("retrieving Log Analytics Cluster %q (Resource Group %q): %+v", name, resourceGroup, err)
}

createWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutCreate), id.ResourceGroup, id.Name)
createWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutCreate), id.ResourceGroup, id.ClusterName)

if _, err := createWait.WaitForState(); err != nil {
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", id.ClusterName, id.ResourceGroup, err)
}

d.SetId(id.ID(subscriptionId))
Expand All @@ -168,16 +168,16 @@ func resourceArmLogAnalyticsClusterRead(d *schema.ResourceData, meta interface{}
return err
}

resp, err := client.Get(ctx, id.ResourceGroup, id.Name)
resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
log.Printf("[INFO] Log Analytics %q does not exist - removing from state", d.Id())
d.SetId("")
return nil
}
return fmt.Errorf("retrieving Log Analytics Cluster %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("retrieving Log Analytics Cluster %q (Resource Group %q): %+v", id.ClusterName, id.ResourceGroup, err)
}
d.Set("name", id.Name)
d.Set("name", id.ClusterName)
d.Set("resource_group_name", id.ResourceGroup)
d.Set("location", location.NormalizeNilable(resp.Location))
if err := d.Set("identity", flattenArmLogAnalyticsIdentity(resp.Identity)); err != nil {
Expand Down Expand Up @@ -221,18 +221,18 @@ func resourceArmLogAnalyticsClusterUpdate(d *schema.ResourceData, meta interface
parameters.Tags = tags.Expand(d.Get("tags").(map[string]interface{}))
}

if _, err := client.Update(ctx, id.ResourceGroup, id.Name, parameters); err != nil {
return fmt.Errorf("updating Log Analytics Cluster %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
if _, err := client.Update(ctx, id.ResourceGroup, id.ClusterName, parameters); err != nil {
return fmt.Errorf("updating Log Analytics Cluster %q (Resource Group %q): %+v", id.ClusterName, id.ResourceGroup, err)
}

// Need to wait for the cluster to actually finish updating the resource before continuing
// since the service returns a 200 instantly while it's still updating in the background
log.Printf("[INFO] Checking for Log Analytics Cluster provisioning state")

updateWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutUpdate), id.ResourceGroup, id.Name)
updateWait := logAnalyticsClusterWaitForState(ctx, meta, d.Timeout(schema.TimeoutUpdate), id.ResourceGroup, id.ClusterName)

if _, err := updateWait.WaitForState(); err != nil {
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("waiting for Log Analytics Cluster to finish updating %q (Resource Group %q): %v", id.ClusterName, id.ResourceGroup, err)
}

return resourceArmLogAnalyticsClusterRead(d, meta)
Expand All @@ -248,13 +248,13 @@ func resourceArmLogAnalyticsClusterDelete(d *schema.ResourceData, meta interface
return err
}

future, err := client.Delete(ctx, id.ResourceGroup, id.Name)
future, err := client.Delete(ctx, id.ResourceGroup, id.ClusterName)
if err != nil {
return fmt.Errorf("deleting Log Analytics Cluster %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("deleting Log Analytics Cluster %q (Resource Group %q): %+v", id.ClusterName, id.ResourceGroup, err)
}

if err := future.WaitForCompletionRef(ctx, client.Client); err != nil {
return fmt.Errorf("waiting on deleting future for Log Analytics Cluster %q (Resource Group %q): %+v", id.Name, id.ResourceGroup, err)
return fmt.Errorf("waiting on deleting future for Log Analytics Cluster %q (Resource Group %q): %+v", id.ClusterName, id.ResourceGroup, err)
}

return nil
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,9 @@ func testCheckAzureRMLogAnalyticsClusterExists(resourceName string) resource.Tes
if err != nil {
return err
}
if resp, err := client.Get(ctx, id.ResourceGroup, id.Name); err != nil {
if resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName); err != nil {
if !utils.ResponseWasNotFound(resp.Response) {
return fmt.Errorf("bad: log analytics Cluster %q does not exist", id.Name)
return fmt.Errorf("bad: log analytics Cluster %q does not exist", id.ClusterName)
}
return fmt.Errorf("bad: Get on LogAnalytics.ClusterClient: %+v", err)
}
Expand All @@ -107,7 +107,7 @@ func testCheckAzureRMLogAnalyticsClusterDestroy(s *terraform.State) error {
if err != nil {
return err
}
if resp, err := client.Get(ctx, id.ResourceGroup, id.Name); err != nil {
if resp, err := client.Get(ctx, id.ResourceGroup, id.ClusterName); err != nil {
if !utils.ResponseWasNotFound(resp.Response) {
return fmt.Errorf("bad: Get on LogAnalytics.ClusterClient: %+v", err)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import (
"log"
"time"

"github.com/Azure/azure-sdk-for-go/services/preview/operationalinsights/mgmt/2020-03-01-preview/operationalinsights"
"github.com/Azure/azure-sdk-for-go/services/operationalinsights/mgmt/2020-08-01/operationalinsights"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/helper/validation"
"github.com/terraform-providers/terraform-provider-azurerm/azurerm/helpers/azure"
Expand Down Expand Up @@ -50,7 +50,7 @@ func resourceArmLogAnalyticsDataExport() *schema.Resource {
Type: schema.TypeString,
Required: true,
ForceNew: true,
ValidateFunc: azure.ValidateResourceID,
ValidateFunc: validate.LogAnalyticsWorkspaceID,
},

"destination_resource_id": {
Expand Down Expand Up @@ -96,10 +96,10 @@ func resourceArmOperationalinsightsDataExportCreateUpdate(d *schema.ResourceData
}

if d.IsNewResource() {
existing, err := client.Get(ctx, resourceGroup, workspace.Name, name)
existing, err := client.Get(ctx, resourceGroup, workspace.WorkspaceName, name)
if err != nil {
if !utils.ResponseWasNotFound(existing.Response) {
return fmt.Errorf("checking for present of existing Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.Name, err)
return fmt.Errorf("checking for present of existing Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.WorkspaceName, err)
}
}
if existing.ID != nil && *existing.ID != "" {
Expand All @@ -117,17 +117,17 @@ func resourceArmOperationalinsightsDataExportCreateUpdate(d *schema.ResourceData
},
}

if _, err := client.CreateOrUpdate(ctx, resourceGroup, workspace.Name, name, parameters); err != nil {
return fmt.Errorf("creating/updating Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.Name, err)
if _, err := client.CreateOrUpdate(ctx, resourceGroup, workspace.WorkspaceName, name, parameters); err != nil {
return fmt.Errorf("creating/updating Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.WorkspaceName, err)
}

resp, err := client.Get(ctx, resourceGroup, workspace.Name, name)
resp, err := client.Get(ctx, resourceGroup, workspace.WorkspaceName, name)
if err != nil {
return fmt.Errorf("retrieving Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.Name, err)
return fmt.Errorf("retrieving Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", name, resourceGroup, workspace.WorkspaceName, err)
}

if resp.ID == nil || *resp.ID == "" {
return fmt.Errorf("empty or nil ID returned for Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q) ID", name, resourceGroup, workspace.Name)
return fmt.Errorf("empty or nil ID returned for Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q) ID", name, resourceGroup, workspace.WorkspaceName)
}

d.SetId(*resp.ID)
Expand All @@ -144,18 +144,18 @@ func resourceArmOperationalinsightsDataExportRead(d *schema.ResourceData, meta i
return err
}

resp, err := client.Get(ctx, id.ResourceGroup, id.WorkspaceName, id.Name)
resp, err := client.Get(ctx, id.ResourceGroup, id.WorkspaceName, id.DataexportName)
if err != nil {
if utils.ResponseWasNotFound(resp.Response) {
log.Printf("[INFO] Log Analytics %q does not exist - removing from state", d.Id())
d.SetId("")
return nil
}
return fmt.Errorf("retrieving Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", id.Name, id.ResourceGroup, id.WorkspaceName, err)
return fmt.Errorf("retrieving Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", id.DataexportName, id.ResourceGroup, id.WorkspaceName, err)
}
d.Set("name", id.Name)
d.Set("name", id.DataexportName)
d.Set("resource_group_name", id.ResourceGroup)
d.Set("workspace_resource_id", id.WorkspaceID)
d.Set("workspace_resource_id", parse.NewLogAnalyticsWorkspaceID(id.SubscriptionId, id.ResourceGroup, id.WorkspaceName).ID(""))
if props := resp.DataExportProperties; props != nil {
d.Set("export_rule_id", props.DataExportID)
d.Set("destination_resource_id", flattenArmDataExportDestination(props.Destination))
Expand All @@ -175,8 +175,8 @@ func resourceArmOperationalinsightsDataExportDelete(d *schema.ResourceData, meta
return err
}

if _, err := client.Delete(ctx, id.ResourceGroup, id.WorkspaceName, id.Name); err != nil {
return fmt.Errorf("deleting Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", id.Name, id.ResourceGroup, id.WorkspaceName, err)
if _, err := client.Delete(ctx, id.ResourceGroup, id.WorkspaceName, id.DataexportName); err != nil {
return fmt.Errorf("deleting Log Analytics Data Export Rule %q (Resource Group %q / workspaceName %q): %+v", id.DataexportName, id.ResourceGroup, id.WorkspaceName, err)
}
return nil
}
Expand Down
Loading

0 comments on commit 8459251

Please sign in to comment.