Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package terragrunt for openSUSE:Factory checked in at 2023-09-21 22:23:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/terragrunt (Old) and /work/SRC/openSUSE:Factory/.terragrunt.new.1770 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt" Thu Sep 21 22:23:31 2023 rev:66 rq:1112777 version:0.51.4 Changes: -------- --- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2023-09-20 13:27:44.223523113 +0200 +++ /work/SRC/openSUSE:Factory/.terragrunt.new.1770/terragrunt.changes 2023-09-21 22:24:13.291419602 +0200 @@ -1,0 +2,7 @@ +Thu Sep 21 10:00:38 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.51.4: + * fix: make `auto-init` respect `-no-color` flag (#2722) + * Add built-in function `get_default_retryable_errors` (#2725) + +------------------------------------------------------------------- Old: ---- terragrunt-0.51.3.obscpio New: ---- terragrunt-0.51.4.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ terragrunt.spec ++++++ --- /var/tmp/diff_new_pack.Ffr5zY/_old 2023-09-21 22:24:15.071484195 +0200 +++ /var/tmp/diff_new_pack.Ffr5zY/_new 2023-09-21 22:24:15.071484195 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: terragrunt -Version: 0.51.3 +Version: 0.51.4 Release: 0 Summary: Thin wrapper for Terraform for working with multiple Terraform modules License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Ffr5zY/_old 2023-09-21 22:24:15.095485066 +0200 +++ /var/tmp/diff_new_pack.Ffr5zY/_new 2023-09-21 22:24:15.099485211 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/gruntwork-io/terragrunt</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.51.3</param> + <param name="revision">v0.51.4</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Ffr5zY/_old 2023-09-21 22:24:15.115485792 +0200 +++ /var/tmp/diff_new_pack.Ffr5zY/_new 2023-09-21 22:24:15.119485937 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/gruntwork-io/terragrunt</param> - <param name="changesrevision">6156735accb529e814f9f704176d82e6344967e8</param></service></servicedata> + <param name="changesrevision">e740048bc7512a9212044a9a0dd9f327e356a2c4</param></service></servicedata> (No newline at EOF) ++++++ terragrunt-0.51.3.obscpio -> terragrunt-0.51.4.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/cli/commands/terraform/action.go new/terragrunt-0.51.4/cli/commands/terraform/action.go --- old/terragrunt-0.51.3/cli/commands/terraform/action.go 2023-09-19 22:37:08.000000000 +0200 +++ new/terragrunt-0.51.4/cli/commands/terraform/action.go 2023-09-21 11:19:00.000000000 +0200 @@ -40,6 +40,8 @@ CommandNameLock = "lock" CommandNameTerragruntReadConfig = "terragrunt-read-config" NullTFVarsFile = ".terragrunt-null-vars.auto.tfvars.json" + + TerraformFlagNoColor = "-no-color" ) var TerraformCommandsThatUseState = []string{ @@ -556,7 +558,6 @@ } initOptions, err := prepareInitOptions(terragruntOptions, terraformSource) - if err != nil { return err } @@ -587,6 +588,10 @@ initOptions.Writer = io.Discard } + if collections.ListContainsElement(terragruntOptions.TerraformCliArgs, TerraformFlagNoColor) { + initOptions.TerraformCliArgs = append(initOptions.TerraformCliArgs, TerraformFlagNoColor) + } + return initOptions, nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/config/config_helpers.go new/terragrunt-0.51.4/config/config_helpers.go --- old/terragrunt-0.51.3/config/config_helpers.go 2023-09-19 22:37:08.000000000 +0200 +++ new/terragrunt-0.51.4/config/config_helpers.go 2023-09-21 11:19:00.000000000 +0200 @@ -140,6 +140,7 @@ "get_terraform_commands_that_need_parallelism": wrapStaticValueToStringSliceAsFuncImpl(TERRAFORM_COMMANDS_NEED_PARALLELISM), "sops_decrypt_file": wrapStringSliceToStringAsFuncImpl(sopsDecryptFile, extensions.TrackInclude, terragruntOptions), "get_terragrunt_source_cli_flag": wrapVoidToStringAsFuncImpl(getTerragruntSourceCliFlag, extensions.TrackInclude, terragruntOptions), + "get_default_retryable_errors": wrapVoidToStringSliceAsFuncImpl(getDefaultRetryableErrors, extensions.TrackInclude, terragruntOptions), } // Map with HCL functions introduced in Terraform after v0.15.3, since upgrade to a later version is not supported @@ -489,6 +490,11 @@ return terragruntOptions.TerraformCliArgs, nil } +// getDefaultRetryableErrors returns default retryable errors +func getDefaultRetryableErrors(trackInclude *TrackInclude, terragruntOptions *options.TerragruntOptions) ([]string, error) { + return options.DEFAULT_RETRYABLE_ERRORS, nil +} + // Return the AWS account id associated to the current set of credentials func getAWSAccountID(trackInclude *TrackInclude, terragruntOptions *options.TerragruntOptions) (string, error) { accountID, err := aws_helper.GetAWSAccountID(nil, terragruntOptions) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/docs/_docs/04_reference/built-in-functions.md new/terragrunt-0.51.4/docs/_docs/04_reference/built-in-functions.md --- old/terragrunt-0.51.3/docs/_docs/04_reference/built-in-functions.md 2023-09-19 22:37:08.000000000 +0200 +++ new/terragrunt-0.51.4/docs/_docs/04_reference/built-in-functions.md 2023-09-21 11:19:00.000000000 +0200 @@ -46,6 +46,8 @@ - [get\_terraform\_command()](#get_terraform_command) + - [get\_default\_retryable\_errors()](#get_default_retryable_errors) + - [get\_terraform\_cli\_args()](#get_terraform_cli_args) - [get\_aws\_account\_id()](#get_aws_account_id) @@ -596,6 +598,14 @@ } ``` +## get\_default\_retryable\_errors + +`get_default_retryable_errors()` returns default retryabled errors. Example: + +``` hcl +retryable_errors = concat(get_default_retryable_errors(), ["my custom error"]) +``` + ## get\_aws\_caller\_identity\_user\_id `get_aws_caller_identity_user_id()` returns the UserId of the AWS identity associated with the current set of credentials. Example: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/test/fixture-auto-retry/get-default-errors/main.tf new/terragrunt-0.51.4/test/fixture-auto-retry/get-default-errors/main.tf --- old/terragrunt-0.51.3/test/fixture-auto-retry/get-default-errors/main.tf 1970-01-01 01:00:00.000000000 +0100 +++ new/terragrunt-0.51.4/test/fixture-auto-retry/get-default-errors/main.tf 2023-09-21 11:19:00.000000000 +0200 @@ -0,0 +1,7 @@ +variable "retryable_errors" { + type = list(any) +} + +output "retryable_errors" { + value = var.retryable_errors +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/test/fixture-auto-retry/get-default-errors/terragrunt.hcl new/terragrunt-0.51.4/test/fixture-auto-retry/get-default-errors/terragrunt.hcl --- old/terragrunt-0.51.3/test/fixture-auto-retry/get-default-errors/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100 +++ new/terragrunt-0.51.4/test/fixture-auto-retry/get-default-errors/terragrunt.hcl 2023-09-21 11:19:00.000000000 +0200 @@ -0,0 +1,3 @@ +inputs = { + retryable_errors = concat(get_default_retryable_errors(), ["my special snowflake"]) +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/test/fixture-no-color/terragrunt.hcl new/terragrunt-0.51.4/test/fixture-no-color/terragrunt.hcl --- old/terragrunt-0.51.3/test/fixture-no-color/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100 +++ new/terragrunt-0.51.4/test/fixture-no-color/terragrunt.hcl 2023-09-21 11:19:00.000000000 +0200 @@ -0,0 +1,2 @@ +inputs = { +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.51.3/test/integration_test.go new/terragrunt-0.51.4/test/integration_test.go --- old/terragrunt-0.51.3/test/integration_test.go 2023-09-19 22:37:08.000000000 +0200 +++ new/terragrunt-0.51.4/test/integration_test.go 2023-09-21 11:19:00.000000000 +0200 @@ -99,6 +99,7 @@ TEST_FIXTURE_EXIT_CODE = "fixture-exit-code" TEST_FIXTURE_AUTO_RETRY_RERUN = "fixture-auto-retry/re-run" TEST_FIXTURE_AUTO_RETRY_EXHAUST = "fixture-auto-retry/exhaust" + TEST_FIXTURE_AUTO_RETRY_GET_DEFAULT_ERRORS = "fixture-auto-retry/get-default-errors" TEST_FIXTURE_AUTO_RETRY_CUSTOM_ERRORS = "fixture-auto-retry/custom-errors" TEST_FIXTURE_AUTO_RETRY_CUSTOM_ERRORS_NOT_SET = "fixture-auto-retry/custom-errors-not-set" TEST_FIXTURE_AUTO_RETRY_APPLY_ALL_RETRIES = "fixture-auto-retry/apply-all" @@ -114,6 +115,7 @@ TEST_FIXTURE_LOCAL_RUN_ONCE = "fixture-locals/run-once" TEST_FIXTURE_LOCAL_RUN_MULTIPLE = "fixture-locals/run-multiple" TEST_FIXTURE_LOCALS_IN_INCLUDE_CHILD_REL_PATH = "qa/my-app" + TEST_FIXTURE_NO_COLOR = "fixture-no-color" TEST_FIXTURE_READ_CONFIG = "fixture-read-config" TEST_FIXTURE_READ_IAM_ROLE = "fixture-read-config/iam_role_in_file" TEST_FIXTURE_IAM_ROLES_MULTIPLE_MODULES = "fixture-read-config/iam_roles_multiple_modules" @@ -1175,6 +1177,26 @@ assert.Contains(t, out.String(), "Apply complete!") } +func TestAutoRetryGetDefaultErrors(t *testing.T) { + t.Parallel() + + rootPath := copyEnvironment(t, TEST_FIXTURE_AUTO_RETRY_GET_DEFAULT_ERRORS) + modulePath := util.JoinPath(rootPath, TEST_FIXTURE_AUTO_RETRY_GET_DEFAULT_ERRORS) + + runTerragrunt(t, fmt.Sprintf("terragrunt apply -auto-approve --terragrunt-non-interactive --terragrunt-working-dir %s", modulePath)) + + stdout := bytes.Buffer{} + err := runTerragruntCommand(t, fmt.Sprintf("terragrunt output -no-color -json --terragrunt-non-interactive --terragrunt-working-dir %s", modulePath), &stdout, os.Stderr) + require.NoError(t, err) + + outputs := map[string]TerraformOutput{} + require.NoError(t, json.Unmarshal([]byte(stdout.String()), &outputs)) + + list, hasVal := outputs["retryable_errors"] + require.True(t, hasVal) + require.ElementsMatch(t, list.Value, append(options.DEFAULT_RETRYABLE_ERRORS, "my special snowflake")) +} + func TestAutoRetryCustomRetryableErrorsFailsWhenRetryableErrorsNotSet(t *testing.T) { t.Parallel() @@ -4888,6 +4910,24 @@ assert.Equal(t, 1, strings.Count(stdout.String(), "Terraform has been successfully initialized!")) } +func TestNoColor(t *testing.T) { + t.Parallel() + + tmpEnvPath := copyEnvironment(t, TEST_FIXTURE_NO_COLOR) + cleanupTerraformFolder(t, tmpEnvPath) + testPath := util.JoinPath(tmpEnvPath, TEST_FIXTURE_NO_COLOR) + + stdout := bytes.Buffer{} + stderr := bytes.Buffer{} + + err := runTerragruntCommand(t, fmt.Sprintf("terragrunt plan -no-color --terragrunt-working-dir %s", testPath), &stdout, &stderr) + require.NoError(t, err) + // providers initialization during first plan + assert.Equal(t, 1, strings.Count(stdout.String(), "Terraform has been successfully initialized!")) + + assert.NotContains(t, stdout.String(), "[") +} + func TestRenderJsonAttributesMetadata(t *testing.T) { t.Parallel() ++++++ terragrunt.obsinfo ++++++ --- /var/tmp/diff_new_pack.Ffr5zY/_old 2023-09-21 22:24:15.875513371 +0200 +++ /var/tmp/diff_new_pack.Ffr5zY/_new 2023-09-21 22:24:15.875513371 +0200 @@ -1,5 +1,5 @@ name: terragrunt -version: 0.51.3 -mtime: 1695155828 -commit: 6156735accb529e814f9f704176d82e6344967e8 +version: 0.51.4 +mtime: 1695287940 +commit: e740048bc7512a9212044a9a0dd9f327e356a2c4 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.1770/vendor.tar.gz differ: char 5, line 1