Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change default logging level to Info #1541

Merged
merged 6 commits into from
Feb 17, 2021

Conversation

amnk
Copy link
Contributor

@amnk amnk commented Feb 10, 2021

Recent PR (#1510) changed logging, and also introduced default logging
level. While it seemed like a good idea, it also introduced a lot of
confusion, because in logrus Println() is an alias to Info()
loglevel - so lots of messages were lost.

This change restores previous behavior in logging output.

Related: #1529
Related: #1530
Related: #1531
Related: #1532

Recent PR (gruntwork-io#1510) changed logging, and also introduced default logging
level. While it seemed like a good idea, it also introduced a lot of
confusion, because in logrus `Println()` is an alias to `Info()`
loglevel - so lots of messages were lost.

This change restores previous behavior in logging output.

Related: gruntwork-io#1529
Related: gruntwork-io#1530
Related: gruntwork-io#1531
Related: gruntwork-io#1532
Copy link
Member

@brikis98 brikis98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I think this will fix a lot of issues, but make the logging quite noisy again. Is there some easy way to get a list of all the places we log something, so I could make a call on which ones should be changed to debug, info, etc?

@amnk
Copy link
Contributor Author

amnk commented Feb 11, 2021

@brikis98 just grep I'm afraid :). We can start with reviewing grep 'logger.Printf' * -R: Printf() is an alias to Info(), so all of those will be added

@brikis98
Copy link
Member

@brikis98 just grep I'm afraid :). We can start with reviewing grep 'logger.Printf' * -R: Printf() is an alias to Info(), so all of those will be added

Any chance you could do a grep and dump the list of log messages here? I can then quickly scan and see which should be changed to other log levels. I'm so booked right now, I don't even have time to figure out the right grep command to run!

@yorinasub17
Copy link
Contributor

Here's what I got from rg "(Info)|(Print)" and cutting out the extraneous ones. I probably could get more context for some of these where I only got the function with (, but am also a bit buried to do more than this.

options/options.go
230:            logger.Printf("error: %v\n", errors.WithStackTrace(err))

util/retry.go
14:             logger.Printf(actionDescription)

config/dependency.go
472:    terragruntOptions.Logger.Infof("Detected module %s is already init-ed. Retrieving outputs directly from working directory.", targetConfig)

shell/ptty_windows.go
29:             options.Logger.Printf("failed to get console mode: %v\n", err)
34:             options.Logger.Printf("failed to set console mode: %v\n", err)

shell/ptty_unix.go
30:                     terragruntOptions.Logger.Printf("Error closing pty: %s", closeErr)
48:                             terragruntOptions.Logger.Printf("error resizing pty: %s", inheritSizeErr)
62:                     terragruntOptions.Logger.Printf("Error restoring terminal state: %s", restoreErr)
74:             terragruntOptions.Logger.Printf("Error forwarding stdin: %s", copyStdinErr)

shell/run_shell_cmd.go
60:     terragruntOptions.Logger.Infof("Running command: %s %s", command, strings.Join(args, " "))
177:                            logger.Printf("Forward signal %v to terraform.", s)
180:                                    logger.Printf("Error forwarding signal: %v", err)

shell/prompt.go
28:             terragruntOptions.Logger.Infof("The non-interactive flag is set to true, so assuming 'yes' for all prompts")

cli/hclfmt.go
32:             terragruntOptions.Logger.Printf("Formatting terragrunt.hcl file at: %s.", targetFile)
36:     terragruntOptions.Logger.Printf("Formatting terragrunt.hcl files from the directory tree %s.", terragruntOptions.WorkingDir)
69:     terragruntOptions.Logger.Printf("Formatting %s", tgHclFile)
73:             terragruntOptions.Logger.Printf("Error retrieving file info of %s", tgHclFile)
79:             terragruntOptions.Logger.Printf("Error reading %s", tgHclFile)
86:             terragruntOptions.Logger.Printf("Error parsing %s", tgHclFile)

dynamodb/dynamo_lock_table.go
47:             terragruntOptions.Logger.Printf("Lock table %s does not exist in DynamoDB. Will need to create it just this first time.", tableName)
84:     terragruntOptions.Logger.Printf("Creating table %s in DynamoDB", tableName)
103:                    terragruntOptions.Logger.Printf("Looks like someone created table %s at the same time. Will wait for it to be in active state.", tableName)
131:            terragruntOptions.Logger.Printf("No tags for lock table given.")
136:    terragruntOptions.Logger.Printf("Adding tags to lock table: %s", tags)
186:                    terragruntOptions.Logger.Printf("Success! Table %s is now in active state.", tableName)
191:            terragruntOptions.Logger.Printf("Table %s is not yet in active state. Will check again after %s.", tableName, sleepBetweenRetries)
206:            terragruntOptions.Logger.Printf("Table %s already has encryption enabled", tableName)
213:    terragruntOptions.Logger.Printf("Enabling server-side encryption on table %s in AWS DynamoDB", tableName)
225:                    terragruntOptions.Logger.Printf("Looks like someone is already updating table %s at the same time. Will wait for that update to complete.", tableName)
243:    terragruntOptions.Logger.Printf("Waiting for encryption to be enabled on table %s", tableName)
252:                    terragruntOptions.Logger.Printf("Encryption is now enabled for table %s!", tableName)
256:            terragruntOptions.Logger.Printf("Encryption is still not enabled for table %s. Will sleep for %v and try again.", tableName, sleepBetweenRetries)

cli/version_check.go
50:     terragruntOptions.Logger.Printf("Terraform version: %s", terraformVersion)

configstack/running_module.go
252:            module.Module.TerragruntOptions.Logger.Printf("Module %s has finished with an error: %v", module.Module.Path, moduleErr)

configstack/stack.go
80:             terragruntOptions.Logger.Println(output)
87:                             terragruntOptions.Logger.Printf("%v%v refers to remote state "+

cli/debug.go
24:     terragruntOptions.Logger.Infof(

cli/download_source.go
36:     terragruntOptions.Logger.Printf("Copying files from %s into %s", terragruntOptions.WorkingDir, terraformSource.WorkingDir)
43:     terragruntOptions.Logger.Printf("Setting working directory to %s", terraformSource.WorkingDir)
52:             terragruntOptions.Logger.Printf("The --%s flag is set, so deleting the temporary folder %s before downloading source.", OPT_TERRAGRUNT_SOURCE_UPDATE, terraformSource.DownloadDir)
64:             terragruntOptions.Logger.Printf("Terraform files in %s are up to date. Will not download again.", terraformSource.WorkingDir)
107:            terragruntOptions.Logger.Printf("Working dir %s exists but contains no Terraform files, so assuming code needs to be downloaded again.", terraformSource.WorkingDir)
149:    terragruntOptions.Logger.Printf("Downloading Terraform configurations from %s into %s", terraformSource.CanonicalSourceURL, terraformSource.DownloadDir)

cli/cli_app.go
357:            terragruntOptions.Logger.Infof(
537:    terragruntOptions.Logger.Printf("Detected %d Hooks", len(hooks))
542:                    terragruntOptions.Logger.Printf("Executing hook: %s", curHook.Name)
548:                            terragruntOptions.Logger.Printf("Error running hook %s with message: %s", curHook.Name, possibleError.Error())
677:            terragruntOptions.Logger.Printf("Errors encountered running before_hooks. Not running '%s'.", description)
711:                            terragruntOptions.Logger.Printf("Encountered an error eligible for retrying. Sleeping %v before retrying.\n", terragruntOptions.Sleep)
925:    terragruntOptions.Logger.Infof("%s", stack.String())

remote/remote_state.go
67:     terragruntOptions.Logger.Printf("Initializing remote state for the %s backend", remoteState.Backend)
110:            terragruntOptions.Logger.Infof("Backend type has changed from %s to %s", existingBackend.Type, remoteState.Backend)
119:    terragruntOptions.Logger.Printf("Backend %s has not changed.", existingBackend.Type)

remote/remote_state_s3.go
128:            terragruntOptions.Logger.Printf("%s\n", lockTableDeprecationMessage)
179:            terragruntOptions.Logger.Printf("Backend type has changed from s3 to %s", existingBackend.Type)
196:                    terragruntOptions.Logger.Printf("Remote state configuration encrypt contains invalid value %v, should be boolean.", existingBackend.Config["encrypt"])
243:            terragruntOptions.Logger.Printf("%s\n", lockTableDeprecationMessage)
337:            terragruntOptions.Logger.Printf("WARNING: encryption is not enabled on the S3 remote state bucket %s. Terraform state files may contain secrets, so we STRONGLY recommend enabling encryption!", config.Bucket)
383:            terragruntOptions.Logger.Printf("WARNING: Versioning is not enabled for the remote state S3 bucket %s. We recommend enabling versioning so that you can roll back to previous versions of your Terraform state in case of error.", config.Bucket)
395:                    terragruntOptions.Logger.Printf("Looks like you're already creating bucket %s at the same time. Will not attempt to create it again.", config.remoteStateConfigS3.Bucket)
407:            terragruntOptions.Logger.Printf("Root access is disabled for the remote state S3 bucket %s using 'skip_bucket_root_access' config.", config.remoteStateConfigS3.Bucket)
413:            terragruntOptions.Logger.Printf("TLS enforcement is disabled for the remote state S3 bucket %s using 'skip_bucket_enforced_tls' config.", config.remoteStateConfigS3.Bucket)
427:            terragruntOptions.Logger.Printf("Versioning is disabled for the remote state S3 bucket %s using 'skip_bucket_versioning' config.", config.remoteStateConfigS3.Bucket)
433:            terragruntOptions.Logger.Printf("Server-Side Encryption is disabled for the remote state AWS S3 bucket %s using 'skip_bucket_ssencryption' config.", config.remoteStateConfigS3.Bucket)
439:            terragruntOptions.Logger.Printf("___WARNING___: The terragrunt configuration option 'skip_bucket_accesslogging' is now deprecated. Access logging for the state bucket %s is disabled by default. To enable access logging for bucket %s, please provide property `accesslogging_bucket_name` in the terragrunt config file. For more details, please refer to the Terragrunt documentation.", config.remoteStateConfigS3.Bucket, config.remoteStateConfigS3.Bucket)
443:            terragruntOptions.Logger.Printf("Enabling bucket-wide Access Logging on AWS S3 bucket %s - using as TargetBucket %s", config.remoteStateConfigS3.Bucket, config.AccessLoggingBucketName)
446:                    terragruntOptions.Logger.Printf("Error: Could not create logs bucket %s for AWS S3 bucket %s", config.AccessLoggingBucketName, config.remoteStateConfigS3.Bucket)
454:            terragruntOptions.Logger.Printf("Access Logging is disabled for the remote state AWS S3 bucket %s", config.remoteStateConfigS3.Bucket)
478:            terragruntOptions.Logger.Printf("No tags specified for bucket %s.", config.remoteStateConfigS3.Bucket)
485:    terragruntOptions.Logger.Printf("Tagging S3 bucket with %s", config.S3BucketTags)
497:    terragruntOptions.Logger.Printf("Tagged S3 bucket with %s", config.S3BucketTags)
519:    terragruntOptions.Logger.Printf("Waiting for bucket %s to be created", config.Bucket)
522:                    terragruntOptions.Logger.Printf("S3 bucket %s created.", config.Bucket)
525:                    terragruntOptions.Logger.Printf("S3 bucket %s has not been created yet. Sleeping for %s and will check again.", config.Bucket, SLEEP_BETWEEN_RETRIES_WAITING_FOR_S3_BUCKET)
535:    terragruntOptions.Logger.Printf("Creating S3 bucket %s", aws.StringValue(bucket))
540:    terragruntOptions.Logger.Printf("Created S3 bucket %s", aws.StringValue(bucket))
553:    terragruntOptions.Logger.Printf("Enabling root access to S3 bucket %s", config.Bucket)
593:    terragruntOptions.Logger.Printf("Enabled root access to bucket %s", config.Bucket)
599:    terragruntOptions.Logger.Printf("Enabling enforced TLS access for S3 bucket %s", config.Bucket)
635:    terragruntOptions.Logger.Printf("Enabled enforced TLS access for bucket %s", config.Bucket)
641:    terragruntOptions.Logger.Printf("Enabling versioning on S3 bucket %s", config.Bucket)
652:    terragruntOptions.Logger.Printf("Enabled versioning on S3 bucket %s", config.Bucket)
658:    terragruntOptions.Logger.Printf("Enabling bucket-wide SSE on AWS S3 bucket %s", config.Bucket)
671:    terragruntOptions.Logger.Printf("Enabled bucket-wide SSE on AWS S3 bucket %s", config.Bucket)
682:    terragruntOptions.Logger.Printf("Putting bucket logging on S3 bucket %s with TargetBucket %s and TargetPrefix %s", config.Bucket, logsBucket, targetPrefix)
698:    terragruntOptions.Logger.Printf("Enabled bucket-wide Access Logging on AWS S3 bucket %s", config.Bucket)
706:    terragruntOptions.Logger.Printf("Blocking all public access to S3 bucket %s", config.Bucket)
723:    terragruntOptions.Logger.Printf("Blocked all public access to S3 bucket %s", config.Bucket)
731:    terragruntOptions.Logger.Printf("Granting WRITE and READ_ACP permissions to S3 Log Delivery (%s) for bucket %s. This is required for access logging.", s3LogDeliveryGranteeUri, aws.StringValue(bucket))
748:    terragruntOptions.Logger.Printf("Waiting for ACL bucket %s to have the updated ACL for access logging.", aws.StringValue(bucket))
774:                    terragruntOptions.Logger.Printf("Bucket %s now has the proper ACL permissions for access logging!", aws.StringValue(bucket))
778:            terragruntOptions.Logger.Printf("Bucket %s still does not have the ACL permissions for access logging. Will sleep for %v and check again.", aws.StringValue(bucket), timeBetweenRetries)

remote/remote_state_gcs.go
120:            terragruntOptions.Logger.Printf("Backend type has changed from gcs to %s", existingBackend.Type)
248:            terragruntOptions.Logger.Printf("Remote state GCS bucket %s does not exist. Attempting to create it", config.remoteStateConfigGCS.Bucket)
293:            terragruntOptions.Logger.Printf("WARNING: Versioning is not enabled for the remote state GCS bucket %s. We recommend enabling versioning so that you can roll back to previous versions of your Terraform state in case of error.", config.Bucket)
320:            terragruntOptions.Logger.Printf("No labels specified for bucket %s.", config.remoteStateConfigGCS.Bucket)
324:    terragruntOptions.Logger.Printf("Adding labels to GCS bucket with %s", config.GCSBucketLabels)
347:    terragruntOptions.Logger.Printf("Creating GCS bucket %s in project %s", config.remoteStateConfigGCS.Bucket, config.Project)
360:            terragruntOptions.Logger.Printf("Creating GCS bucket in location %s.", config.Location)
365:            terragruntOptions.Logger.Printf("Versioning is disabled for the remote state GCS bucket %s using 'skip_bucket_versioning' config.", config.remoteStateConfigGCS.Bucket)
367:            terragruntOptions.Logger.Printf("Enabling versioning on GCS bucket %s", config.remoteStateConfigGCS.Bucket)
372:            terragruntOptions.Logger.Printf("Enabling uniform bucket-level access on GCS bucket %s", config.remoteStateConfigGCS.Bucket)
383:    terragruntOptions.Logger.Printf("Waiting for bucket %s to be created", config.Bucket)
386:                    terragruntOptions.Logger.Printf("GCS bucket %s created.", config.Bucket)
389:                    terragruntOptions.Logger.Printf("GCS bucket %s has not been created yet. Sleeping for %s and will check again.", config.Bucket, SLEEP_BETWEEN_RETRIES_WAITING_FOR_GCS_BUCKET)

`Printf()` is an alias, so this does not change any functionality - just
makes logging more explicit.
@amnk
Copy link
Contributor Author

amnk commented Feb 13, 2021

@yorinasub17 Thanks for taking care of this!

@brikis98 I have pushed a change that changes all Printf() to Infof(). While this does not change any functionality, it does expose all of those for review in Github. After those are reviewed, we can come back to explicit Infof():

config/dependency.go
472:    terragruntOptions.Logger.Infof("Detected module %s is already init-ed. Retrieving outputs directly from working directory.", targetConfig)

shell/run_shell_cmd.go
60:     terragruntOptions.Logger.Infof("Running command: %s %s", command, strings.Join(args, " "))

shell/prompt.go
28:             terragruntOptions.Logger.Infof("The non-interactive flag is set to true, so assuming 'yes' for all prompts")

cli/debug.go
24:     terragruntOptions.Logger.Infof(

cli/cli_app.go
357:            terragruntOptions.Logger.Infof(
925:    terragruntOptions.Logger.Infof("%s", stack.String())

remote/remote_state.go
110:            terragruntOptions.Logger.Infof("Backend type has changed from %s to %s", existingBackend.Type, remoteState.Backend)

Copy link
Member

@brikis98 brikis98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you both!

cli/cli_app.go Outdated Show resolved Hide resolved
cli/cli_app.go Outdated Show resolved Hide resolved
cli/cli_app.go Outdated Show resolved Hide resolved
cli/download_source.go Outdated Show resolved Hide resolved
cli/download_source.go Outdated Show resolved Hide resolved
shell/ptty_windows.go Outdated Show resolved Hide resolved
shell/ptty_windows.go Outdated Show resolved Hide resolved
shell/run_shell_cmd.go Outdated Show resolved Hide resolved
shell/run_shell_cmd.go Outdated Show resolved Hide resolved
util/retry.go Outdated Show resolved Hide resolved
@brikis98
Copy link
Member

Here's what I got from rg "(Info)|(Print)" and cutting out the extraneous ones. I probably could get more context for some of these where I only got the function with (, but am also a bit buried to do more than this.

Thanks Yori!

I believe @amnk changed the Print ones to Info, so just looking at the other Info ones you had:

config/dependency.go
472:    terragruntOptions.Logger.Infof("Detected module %s is already init-ed. Retrieving outputs directly from working directory.", targetConfig)

Debugf

shell/run_shell_cmd.go
60:     terragruntOptions.Logger.Infof("Running command: %s %s", command, strings.Join(args, " "))

Debugf

shell/prompt.go
28:             terragruntOptions.Logger.Infof("The non-interactive flag is set to true, so assuming 'yes' for all prompts")

Leave as-is

cli/debug.go
24:     terragruntOptions.Logger.Infof(

Leave as-is

cli/cli_app.go
357:            terragruntOptions.Logger.Infof(

Leave as-is

925:    terragruntOptions.Logger.Infof("%s", stack.String())

Leave as-is

remote/remote_state.go
110:            terragruntOptions.Logger.Infof("Backend type has changed from %s to %s", existingBackend.Type, remoteState.Backend)

Leave as-is

cli/cli_app.go Show resolved Hide resolved
@@ -117,7 +117,7 @@ func gcsConfigValuesEqual(config map[string]interface{}, existingBackend *Terraf
}

if existingBackend.Type != "gcs" {
terragruntOptions.Logger.Printf("Backend type has changed from gcs to %s", existingBackend.Type)
terragruntOptions.Logger.Infof("Backend type has changed from gcs to %s", existingBackend.Type)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this one still needs to be tweaked

remote/remote_state_gcs.go Outdated Show resolved Hide resolved
remote/remote_state_s3.go Outdated Show resolved Hide resolved
remote/remote_state_s3.go Outdated Show resolved Hide resolved
util/retry.go Outdated Show resolved Hide resolved
Copy link
Member

@brikis98 brikis98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few last tweaks

remote/remote_state_s3.go Outdated Show resolved Hide resolved
remote/remote_state_s3.go Outdated Show resolved Hide resolved
options/options.go Outdated Show resolved Hide resolved
@brikis98
Copy link
Member

Reviewing the related bugs:

Related: #1529

I'm not sure if this PR addressed this or not. @amnk Could you try to repro and see if this issue is fixed with the logging updates in this PR?

Related: #1530

I believe we are now using Infof to print out the stack, so this should be fixed.

Related: #1531

I'm not sure if this issue is the same as #1530, or if it's about the need to hide logging prompts when --non-interactive is set. If it's the former, we already take care of it; if it's the latter, I guess we could make those prompts Debugf messages when --non-interactive is set, but write them directly to stderr otherwise?

Related: #1532

This seems very close to #1529, where run-all hides logs that are visible otherwise. @amnk Could you try to repro this and see if this PR fixes the problem?

@amnk amnk force-pushed the amnk/change-default-log-level branch from 29e833c to 31558c5 Compare February 17, 2021 01:32
@amnk
Copy link
Contributor Author

amnk commented Feb 17, 2021

@brikis98 my manual tests show that all 4 issues are resolved by this PR.

Related: #1529

We actually had that in integration tests, but during a switch to logrus I updated a test instead of validating what behavior is preferable 🤦 . So I've also changed that back.

cli/cli_app.go Show resolved Hide resolved
shell/prompt.go Outdated Show resolved Hide resolved
Copy link
Member

@brikis98 brikis98 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! I'll kick off tests now.

@brikis98
Copy link
Member

Tests passed! Merging and release now. Thanks @amnk!

@brikis98 brikis98 merged commit 874d2db into gruntwork-io:master Feb 17, 2021
@brikis98
Copy link
Member

@dudicoco
Copy link

@amnk @brikis98 @yorinasub17 the logs are still very verbose after the recent changes with log-level info.

With log-level warn the logs verbosity is perfect, but then the error messages get lost. Is it possible to get the verbosity of warn with the addition of the error messages?

Thanks

@amnk amnk deleted the amnk/change-default-log-level branch February 24, 2021 20:42
@amnk
Copy link
Contributor Author

amnk commented Feb 24, 2021

This patch was the first one in the series, because changing of logging level was a surprise for many people :) So yeah, I will be working on another PR(s) to make it actually less verbose while still printing relevant error messages.

@dudicoco btw, can you share specific log messages you think are not needed with default output?

@dudicoco
Copy link

Thanks @amnk.

The following log lines appear hundreds of times within the output and I believe are not necessary with the normal log level:

=> Module /Users/xxx/Desktop/Repositories/xxx/xxx/eu-central-1/prod/xxx/s3-bucket/ml (excluded: true, dependencies: [])
INFO[0072]                                               prefix=[/Users/xxx/Desktop/Repositories/xxx]

In particular the INFO[xxxx] log line is a new addition which we didn't see before the recent upgrades.

@brikis98
Copy link
Member

The following log lines appear hundreds of times within the output and I believe are not necessary with the normal log level:

=> Module /Users/xxx/Desktop/Repositories/xxx/xxx/eu-central-1/prod/xxx/s3-bucket/ml (excluded: true, dependencies: [])

Hm, I believe these are necessary when we are interactively prompt the user if they want to run their run-all command on all these modules. @amnk These probably need to be bundled into the prompt message show to users, so that if --non-interactive is set, they are only logged at the debug level, but otherwise, show up as epxected. Not sure why they would appear hundreds of times though?

INFO[0072]                                               prefix=[/Users/xxx/Desktop/Repositories/xxx]

Not sure what this is. @amnk Could you investigate?

@dudicoco
Copy link

dudicoco commented Feb 25, 2021

@brikis98 when running terragrunt plan-all the => Module log line appear per directory in the stack, so if the stack has hundreds of directories the log line appears hundreds of times.

In addition to hiding these when --non-interactive is set which is relevant only to the apply-all command, can we hide them within the plan-all output as well?

Thanks

amnk added a commit to amnk/terragrunt that referenced this pull request Feb 28, 2021
If stack run finished without errors, `summarizePlanAllErrors()`
receives empty buffer and outputs empty line. This change ensures that
only non-empty outputs are getting logged.

Related: gruntwork-io#1541
@amnk amnk mentioned this pull request Feb 28, 2021
@amnk
Copy link
Contributor Author

amnk commented Feb 28, 2021

Not sure what this is. @amnk Could you investigate?

@brikis98 I have opened a PR to fix this here: #1568.

amnk added a commit to amnk/terragrunt that referenced this pull request Mar 2, 2021
If stack run finished without errors, `summarizePlanAllErrors()`
receives empty buffer and outputs empty line. This change ensures that
only non-empty outputs are getting logged.

Related: gruntwork-io#1541
brikis98 pushed a commit that referenced this pull request Mar 8, 2021
If stack run finished without errors, `summarizePlanAllErrors()`
receives empty buffer and outputs empty line. This change ensures that
only non-empty outputs are getting logged.

Related: #1541
@brikis98
Copy link
Member

brikis98 commented Mar 8, 2021

https://github.com/gruntwork-io/terragrunt/releases/tag/v0.28.8 should improve run-all log output a little bit. More changes coming later.

@lorengordon
Copy link
Contributor

@brikis98 fyi, 0.28.8 still doesn't have binaries posted to github releases...

@yorinasub17
Copy link
Contributor

@lorengordon Should be available now. Sorry about that!

teamfighter added a commit to teamfighter/terragrunt that referenced this pull request Apr 5, 2021
* Fix dead link in multiple aws accounts docs (gruntwork-io#1563)

* Fix dead link in multiple aws accounts docs

The link to AWS docs is now 404.
The corrected link seems to most closely resemble the intended target.
Other options to consider:
https://aws.amazon.com/organizations/getting-started/best-practices/
https://docs.aws.amazon.com/controltower/latest/userguide/aws-multi-account-landing-zone.html

* Link to AWS best practices for multi account docs

* Whitespace removal (gruntwork-io#1573)

* Fix empty outputs (gruntwork-io#1568)

If stack run finished without errors, `summarizePlanAllErrors()`
receives empty buffer and outputs empty line. This change ensures that
only non-empty outputs are getting logged.

Related: gruntwork-io#1541

* doc: contributing: fix broken link to circleci (gruntwork-io#1580)

* Bump AWS SDK to version v1.37.7 to support AWS SSO (gruntwork-io#1537)

* Add TargetPrefix as config input to access bucket logging (gruntwork-io#1507)

* adding target-prefix ro access bucket logging

* Updating test & example

! Note that this needs the terratest PR (gruntwork-io/terratest#767) to be merged in to work & be tested.

* Updating Terratest dependency

* testing for target prefix

* Updating docs

* Renaming folder

* Updating to Debugf

* Adding default value

* WIP - parsing for TFstatelogs

* Updating logic & docs

* Adding a new test for default TargetPrefix in remote backend config

* Introduce validate-inputs, which can be used to check for variable alignment (gruntwork-io#1572)

* Introduce terragrunt-input-info, which can be used to check for variable alignment

* Apply suggestions from code review

Co-authored-by: Zack Proser <[email protected]>

* Tidy go modules

* Renamed input-info to validate-inputs

* Switch missing required vars to errors

* Handle -var and -var-file args

* Update cli/validate_inputs.go

Co-authored-by: Yevgeniy Brikman <[email protected]>

* Make sure to check for dynamically passed in CLI args

* Fix build

* Handle automatically loaded var files

* Remove plan args check

* Clarify difference between getTerraformInputNamesFromVarFiles and getTerraformInputNamesFromCLIArgs

* Address PR nit to move example in docs

Co-authored-by: Zack Proser <[email protected]>
Co-authored-by: Yevgeniy Brikman <[email protected]>

* Use go1.16 to build arm64 binaries (gruntwork-io#1585)

* Bump creack/pty to 1.1.11 (gruntwork-io#1582)

Co-authored-by: Andy Bohne <[email protected]>

* Add ability to specify working directory of hooks (gruntwork-io#1588)

* Add ability to specify working directory of hooks

* Fix build

* Support dynamodb_endpoint attribute of S3 backend (gruntwork-io#1586)

* Clarify non-interactive will not include external dependencies (gruntwork-io#1593)

* add getTerragruntSource helper function (gruntwork-io#1575)

* add getTerragruntSource helper function

* update docs

* update docs and tests for get_terragrunt_source_cli_flag() function

* add use cases for get_terragrunt_source_cli_flag

* Recursively extract forcedgetters until there are none (gruntwork-io#1594)

* Remove all usage of get-plugins=false which is removed in 0.15.0 (gruntwork-io#1618)

* Fix validate-inputs to support null defaults (gruntwork-io#1613)

* Clarify context of find_in_parent_folders (gruntwork-io#1623)

Co-authored-by: Paul <[email protected]>
Co-authored-by: Yoriyasu Yano <[email protected]>
Co-authored-by: amnk <[email protected]>
Co-authored-by: Marco Molteni <[email protected]>
Co-authored-by: David Wooldridge <[email protected]>
Co-authored-by: Ina Stoyanova <[email protected]>
Co-authored-by: Zack Proser <[email protected]>
Co-authored-by: Yevgeniy Brikman <[email protected]>
Co-authored-by: Andy Bohne <[email protected]>
Co-authored-by: Andy Bohne <[email protected]>
Co-authored-by: Alexey Remizov <[email protected]>
Co-authored-by: Syed Hussain <[email protected]>
Co-authored-by: David Alger <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
5 participants