From 5291c4e71232b08cbbcfa3ceca63a9e59f82f8be Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Thu, 11 Mar 2021 14:24:45 +0000 Subject: [PATCH] Reflect v0.15 configuration_aliases in provider referencing --- go.mod | 2 +- go.sum | 4 ++-- internal/refdecoder/decoder.go | 7 +++++++ internal/refdecoder/decoder_test.go | 31 +++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 1fdd430f..32f596ba 100644 --- a/go.mod +++ b/go.mod @@ -8,7 +8,7 @@ require ( github.com/hashicorp/go-version v1.2.1 github.com/hashicorp/hcl-lang v0.0.0-20210317074414-9bb6847208c3 github.com/hashicorp/hcl/v2 v2.9.1 - github.com/hashicorp/terraform-config-inspect v0.0.0-20201102131242-0c45ba392e51 + github.com/hashicorp/terraform-config-inspect v0.0.0-20210318070130-9a80970d6b34 github.com/hashicorp/terraform-json v0.9.0 github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 github.com/mh-cbon/go-fmt-fail v0.0.0-20160815164508-67765b3fbcb5 diff --git a/go.sum b/go.sum index dc2f8349..ce36ef42 100644 --- a/go.sum +++ b/go.sum @@ -36,8 +36,8 @@ github.com/hashicorp/hcl-lang v0.0.0-20210317074414-9bb6847208c3/go.mod h1:ZGuDQ github.com/hashicorp/hcl/v2 v2.0.0/go.mod h1:oVVDG71tEinNGYCxinCYadcmKU9bglqW9pV3txagJ90= github.com/hashicorp/hcl/v2 v2.9.1 h1:eOy4gREY0/ZQHNItlfuEZqtcQbXIxzojlP301hDpnac= github.com/hashicorp/hcl/v2 v2.9.1/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= -github.com/hashicorp/terraform-config-inspect v0.0.0-20201102131242-0c45ba392e51 h1:SEGO1vz/pFLfKy4QpABIMCe7wffmtsOiWO4yc1E87cU= -github.com/hashicorp/terraform-config-inspect v0.0.0-20201102131242-0c45ba392e51/go.mod h1:Z0Nnk4+3Cy89smEbrq+sl1bxc9198gIP4I7wcQF6Kqs= +github.com/hashicorp/terraform-config-inspect v0.0.0-20210318070130-9a80970d6b34 h1:y4kOB9aYVSsJWVqewwUZmHxPSNjkDbOeW7eb9yFIc3Q= +github.com/hashicorp/terraform-config-inspect v0.0.0-20210318070130-9a80970d6b34/go.mod h1:Z0Nnk4+3Cy89smEbrq+sl1bxc9198gIP4I7wcQF6Kqs= github.com/hashicorp/terraform-json v0.9.0 h1:WE7+Wt93W93feOiCligElSyS0tlDzwZUtJuDGIBr8zg= github.com/hashicorp/terraform-json v0.9.0/go.mod h1:3defM4kkMfttwiE7VakJDwCd4R+umhSQnvJwORXbprE= github.com/hashicorp/terraform-svchost v0.0.0-20200729002733-f050f53b9734 h1:HKLsbzeOsfXmKNpr3GiT18XAblV0BjCbzL8KQAMZGa0= diff --git a/internal/refdecoder/decoder.go b/internal/refdecoder/decoder.go index a1c435bd..cafa7bc8 100644 --- a/internal/refdecoder/decoder.go +++ b/internal/refdecoder/decoder.go @@ -43,6 +43,13 @@ func DecodeProviderReferences(m map[string]*hcl.File) (addrs.ProviderReferences, refs[addrs.LocalProviderConfig{ LocalName: name, }] = src + + for _, alias := range req.ConfigurationAliases { + refs[addrs.LocalProviderConfig{ + LocalName: alias.Name, + Alias: alias.Alias, + }] = src + } } for _, cfg := range mod.ProviderConfigs { diff --git a/internal/refdecoder/decoder_test.go b/internal/refdecoder/decoder_test.go index f2a7bdb7..da200142 100644 --- a/internal/refdecoder/decoder_test.go +++ b/internal/refdecoder/decoder_test.go @@ -140,6 +140,37 @@ data "mycloud_instance" "foo" { }, }, }, + { + "configuration aliases", + ` +terraform { + required_providers { + xyz = { + source = "grafana/grafana" + version = "1.9.0" + configuration_aliases = [xyz.blah] + } + } +} +`, + addrs.ProviderReferences{ + addrs.LocalProviderConfig{ + LocalName: "xyz", + }: addrs.Provider{ + Hostname: addrs.DefaultRegistryHost, + Namespace: "grafana", + Type: "grafana", + }, + addrs.LocalProviderConfig{ + LocalName: "xyz", + Alias: "blah", + }: addrs.Provider{ + Hostname: addrs.DefaultRegistryHost, + Namespace: "grafana", + Type: "grafana", + }, + }, + }, } for i, tc := range testCases {