diff --git a/go.mod b/go.mod index 3936726b..aba71dee 100644 --- a/go.mod +++ b/go.mod @@ -3,7 +3,7 @@ module github.com/Azure/azapi-lsp go 1.23.0 require ( - github.com/Azure/aztfmigrate v1.15.1-0.20250227042733-c21045529abd + github.com/Azure/aztfmigrate v1.15.1-0.20250304070708-bd64aaa3affc github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 github.com/apparentlymart/go-textseg v1.0.0 github.com/creachadair/jrpc2 v0.32.0 diff --git a/go.sum b/go.sum index 71b3695c..ec73fa66 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,7 @@ dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= -github.com/Azure/aztfmigrate v1.15.1-0.20250227042733-c21045529abd h1:bA8ZJtLWPpd2ta+fFUkqVOk7e+L2t5br3BcU1iqLUK4= -github.com/Azure/aztfmigrate v1.15.1-0.20250227042733-c21045529abd/go.mod h1:d/awmWc/Yh2z4Mq1vGc1WQ5+naU93SXpZrsXROEJpg8= +github.com/Azure/aztfmigrate v1.15.1-0.20250304070708-bd64aaa3affc h1:BDWNCJzpkJNGrJliCVN2Gp1J26mFN66NaSnXyCm/dP0= +github.com/Azure/aztfmigrate v1.15.1-0.20250304070708-bd64aaa3affc/go.mod h1:d/awmWc/Yh2z4Mq1vGc1WQ5+naU93SXpZrsXROEJpg8= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0 h1:g0EZJwz7xkXQiZAI5xi9f3WWFYBlX1CPTrR+NDToRkQ= github.com/Azure/azure-sdk-for-go/sdk/azcore v1.17.0/go.mod h1:XCW7KnZet0Opnr7HccfUw1PLc4CjHqpcaxW8DHklNkQ= github.com/Azure/azure-sdk-for-go/sdk/azidentity v1.7.0 h1:tfLQ34V6F7tVSwoTf/4lH5sE0o6eCJuNDTmH09nDpbc= diff --git a/vendor/github.com/Azure/aztfmigrate/types/azurerm_resource.go b/vendor/github.com/Azure/aztfmigrate/types/azurerm_resource.go index 07e50f8e..480a66ae 100644 --- a/vendor/github.com/Azure/aztfmigrate/types/azurerm_resource.go +++ b/vendor/github.com/Azure/aztfmigrate/types/azurerm_resource.go @@ -277,3 +277,28 @@ func sortAttributes(input *hclwrite.Block) *hclwrite.Block { } return output } + +func AzurermIdToAzureId(azurermResourceType string, azurermId string) (string, error) { + switch azurermResourceType { + case "azurerm_monitor_diagnostic_setting": + // input: | + // output: /providers/Microsoft.Insights/diagnosticSettings/ + azurermIdSplit := strings.Split(azurermId, "|") + if len(azurermIdSplit) != 2 { + return "", fmt.Errorf("invalid id: %s, expected format: |", azurermId) + } + return fmt.Sprintf("%s/providers/Microsoft.Insights/diagnosticSettings/%s", azurermIdSplit[0], azurermIdSplit[1]), nil + case "azurerm_role_definition": + // input: | + // output: + azurermIdSplit := strings.Split(azurermId, "|") + if len(azurermIdSplit) != 2 { + return "", fmt.Errorf("invalid id: %s, expected format: |", azurermId) + } + return azurermIdSplit[0], nil + + // add more cases here as needed + } + // return azure id + return azurermId, nil +} diff --git a/vendor/github.com/Azure/aztfmigrate/types/from_plan.go b/vendor/github.com/Azure/aztfmigrate/types/from_plan.go index 81d72dbf..d0281d92 100644 --- a/vendor/github.com/Azure/aztfmigrate/types/from_plan.go +++ b/vendor/github.com/Azure/aztfmigrate/types/from_plan.go @@ -71,6 +71,9 @@ func ListResourcesFromPlan(p *tfjson.Plan) []AzureResource { address := fmt.Sprintf("%s.%s", resourceChange.Type, resourceChange.Name) id := getId(resourceChange.Change.Before) if azurermResourceMap[address] == nil { + if azureId, err := AzurermIdToAzureId(resourceChange.Type, id); err == nil { + id = azureId + } azurermResourceMap[address] = &AzurermResource{ OldResourceType: resourceChange.Type, OldLabel: resourceChange.Name, diff --git a/vendor/modules.txt b/vendor/modules.txt index 517ea947..78b2f7d4 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1,7 +1,7 @@ # dario.cat/mergo v1.0.1 ## explicit; go 1.13 dario.cat/mergo -# github.com/Azure/aztfmigrate v1.15.1-0.20250227042733-c21045529abd +# github.com/Azure/aztfmigrate v1.15.1-0.20250304070708-bd64aaa3affc ## explicit; go 1.23.0 github.com/Azure/aztfmigrate/azurerm github.com/Azure/aztfmigrate/azurerm/coverage