From fb172e7b708dddd62a74a8b6789ca03244fe2feb Mon Sep 17 00:00:00 2001 From: Mark Sharpley <698889+markopolo123@users.noreply.github.com> Date: Fri, 30 Jul 2021 22:15:17 +0100 Subject: [PATCH] OpenStack instance tag support (#150) --- parser_test.go | 6 ++++++ resource.go | 6 +++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/parser_test.go b/parser_test.go index 49a12be..f0c55ca 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" @@ -560,6 +562,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"], @@ -668,6 +671,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 0a66657..63a03de 100644 --- a/resource.go +++ b/resource.go @@ -122,7 +122,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