From 7b9355d5308bf28961511ebc86472e33280a6a58 Mon Sep 17 00:00:00 2001 From: Ahmed AlHaffar Date: Thu, 4 Aug 2022 13:57:36 +0300 Subject: [PATCH] Enhancements - Fixing creating random_string resources if `prefix_length_limit` = 0 --- example/example1.tf | 3 +-- example/example2.tf | 2 +- main.tf | 7 +++---- random.tf | 1 + 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/example/example1.tf b/example/example1.tf index dd0b436..35a5b49 100644 --- a/example/example1.tf +++ b/example/example1.tf @@ -3,9 +3,8 @@ module "label1" { environment = "dev" project_name = "obytes" region = "me-south-1" - delimiter = "+" + delimiter = "_" attributes = ["private"] enabled = true - prefix_length_limit = 10 } diff --git a/example/example2.tf b/example/example2.tf index e97cb04..1a9ccdb 100644 --- a/example/example2.tf +++ b/example/example2.tf @@ -5,5 +5,5 @@ module "label3" { environment = "prd" region = "us-east-1" delimiter = "-" - random_string = module.label1.random_string + prefix_length_limit = 12 } \ No newline at end of file diff --git a/main.tf b/main.tf index a62a6b4..5217660 100644 --- a/main.tf +++ b/main.tf @@ -92,9 +92,8 @@ locals { id_truncated_length_limit = local.prefix_length_limit - (local.delimiter_length + local.random_length) id_truncated = local.id_truncated_length_limit <= 0 ? "" : "${trimsuffix(substr(local.id_full, 0, local.id_truncated_length_limit), local.delimiter)}${local.delimiter}" - random_string = local.input.random_string == null ? random_string.this.result : local.input.random_string - id_random_case = local.tag_value_case == "none" ? local.random_string : local.tag_value_case == "upper" ? upper(local.random_string) : local.tag_value_case == "title" ? title(local.random_string) : lower(local.random_string) - id_short = substr("${local.id_truncated}${local.id_random_case}", 0, local.prefix_length_limit) + random_string = local.input.random_string == null && local.prefix_length_limit != null ? try(element(random_string.this.*.result,0 ), null ) : local.input.random_string + id_short = local.random_string == null ? substr(local.id_truncated, 0, local.prefix_length_limit) : substr("${local.id_truncated}${local.random_string}", 0, local.prefix_length_limit) id = local.prefix_length_limit != 0 && length(local.id_full) > local.prefix_length_limit ? local.id_short : local.id_full # Context of this label to pass to other label modules @@ -113,6 +112,6 @@ locals { regex_substitute_chars = local.regex_substitute_chars tag_key_case = local.tag_key_case tag_value_case = local.tag_value_case - random_string = local.id_random_case + random_string = local.random_string } } diff --git a/random.tf b/random.tf index 653b46d..e00a4b6 100644 --- a/random.tf +++ b/random.tf @@ -1,4 +1,5 @@ resource "random_string" "this" { + count = var.prefix_length_limit != null ? 1 : 0 length = 12 special = false min_numeric = 2