diff --git a/parser_test.go b/parser_test.go index 2089b82..5d1a45e 100644 --- a/parser_test.go +++ b/parser_test.go @@ -185,6 +185,8 @@ const exampleStateFile = ` "id": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "access_ip_v4": "10.120.0.226", "access_ip_v6": "", + "tag.%": "1", + "tag.ostags": "rock", "metadata.status": "superServer", "metadata.#": "very bad", "metadata_toes": "faada2142412jhb1j2" @@ -547,6 +549,7 @@ const expectedListOutput = ` "webserver": ["192.168.0.3"], "staging": ["192.168.0.3"], "status_superserver": ["10.120.0.226"], + "ostags_rock": ["10.120.0.226"], "database": ["10.0.0.8"], "scw_test": ["10.0.0.11"], "tfinventory_rocks": ["10.0.0.19"], @@ -648,6 +651,9 @@ olddatacenter="\u003c0.7_format" [one_1] 10.0.1.1 +[ostags_rock] +10.120.0.226 + [role_nine] 10.0.0.9 diff --git a/resource.go b/resource.go index 7c9f025..c668871 100644 --- a/resource.go +++ b/resource.go @@ -110,7 +110,11 @@ func (r Resource) Tags() map[string]string { // At some point Terraform changed the key for counts of attributes to end with ".%" // instead of ".#". Both need to be considered as Terraform still supports state // files using the old format. - if len(parts) == 2 && parts[0] == "metadata" && parts[1] != "#" && parts[1] != "%" { + if len(parts) == 2 && parts[0] == "tag" && parts[1] != "#" && parts[1] != "%" { + kk := strings.ToLower(parts[1]) + vv := strings.ToLower(v) + t[kk] = vv + } else if len(parts) == 2 && parts[0] == "metadata" && parts[1] != "#" && parts[1] != "%" { kk := strings.ToLower(parts[1]) vv := strings.ToLower(v) t[kk] = vv