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-10-27 22:29:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/terragrunt (Old) and /work/SRC/openSUSE:Factory/.terragrunt.new.17445 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt" Fri Oct 27 22:29:20 2023 rev:77 rq:1120824 version:0.52.7 Changes: -------- --- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2023-10-25 18:04:10.097158285 +0200 +++ /work/SRC/openSUSE:Factory/.terragrunt.new.17445/terragrunt.changes 2023-10-27 22:29:55.971342707 +0200 @@ -1,0 +2,13 @@ +Fri Oct 27 09:19:06 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.52.7: + * Bump google.golang.org/grpc from 1.55.0 to 1.56.3 (#2767) + +------------------------------------------------------------------- +Fri Oct 27 09:16:51 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.52.6: + * fix!: output-module-groups to work like run-all (#2769) + * Update tofu version to 1.6.0-alpha3 (#2766) + +------------------------------------------------------------------- Old: ---- terragrunt-0.52.5.obscpio New: ---- terragrunt-0.52.7.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ terragrunt.spec ++++++ --- /var/tmp/diff_new_pack.Np1mgB/_old 2023-10-27 22:29:56.799373076 +0200 +++ /var/tmp/diff_new_pack.Np1mgB/_new 2023-10-27 22:29:56.803373222 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: terragrunt -Version: 0.52.5 +Version: 0.52.7 Release: 0 Summary: Thin wrapper for Terraform for working with multiple Terraform modules License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.Np1mgB/_old 2023-10-27 22:29:56.835374396 +0200 +++ /var/tmp/diff_new_pack.Np1mgB/_new 2023-10-27 22:29:56.843374689 +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.52.5</param> + <param name="revision">v0.52.7</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.Np1mgB/_old 2023-10-27 22:29:56.859375276 +0200 +++ /var/tmp/diff_new_pack.Np1mgB/_new 2023-10-27 22:29:56.863375422 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/gruntwork-io/terragrunt</param> - <param name="changesrevision">c996cbc70140b8507b2f73a4aeb42b84163a74b6</param></service></servicedata> + <param name="changesrevision">0764ce24d3f1520b039da1481f68598300fd5b59</param></service></servicedata> (No newline at EOF) ++++++ terragrunt-0.52.5.obscpio -> terragrunt-0.52.7.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/.circleci/config.yml new/terragrunt-0.52.7/.circleci/config.yml --- old/terragrunt-0.52.5/.circleci/config.yml 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/.circleci/config.yml 2023-10-26 20:05:46.000000000 +0200 @@ -18,7 +18,7 @@ command: | pushd . cd /tmp - curl -L "https://github.com/opentofu/opentofu/releases/download/v1.6.0-alpha1/tofu_1.6.0-alpha1_linux_amd64.zip" -o tofu.zip + curl -L "https://github.com/opentofu/opentofu/releases/download/v1.6.0-alpha3/tofu_1.6.0-alpha3_linux_amd64.zip" -o tofu.zip unzip -o tofu.zip sudo install -m 0755 tofu /usr/local/bin/tofu rm -rf tofu diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/cli/commands/output-module-groups/action.go new/terragrunt-0.52.7/cli/commands/output-module-groups/action.go --- old/terragrunt-0.52.5/cli/commands/output-module-groups/action.go 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/cli/commands/output-module-groups/action.go 2023-10-26 20:05:46.000000000 +0200 @@ -3,19 +3,11 @@ import ( "fmt" - "github.com/gruntwork-io/terragrunt/cli/commands/terraform" - "github.com/gruntwork-io/terragrunt/config" "github.com/gruntwork-io/terragrunt/configstack" "github.com/gruntwork-io/terragrunt/options" ) func Run(opts *options.TerragruntOptions) error { - target := terraform.NewTarget(terraform.TargetPointParseConfig, runOutputModuleGroups) - - return terraform.RunWithTarget(opts, target) -} - -func runOutputModuleGroups(opts *options.TerragruntOptions, cfg *config.TerragruntConfig) error { stack, err := configstack.FindStackInSubfolders(opts, nil) if err != nil { return err @@ -32,5 +24,4 @@ } return nil - } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/cli/commands/output-module-groups/command.go new/terragrunt-0.52.7/cli/commands/output-module-groups/command.go --- old/terragrunt-0.52.5/cli/commands/output-module-groups/command.go 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/cli/commands/output-module-groups/command.go 2023-10-26 20:05:46.000000000 +0200 @@ -1,18 +1,41 @@ package outputmodulegroups import ( + "fmt" + "github.com/gruntwork-io/terragrunt/options" "github.com/gruntwork-io/terragrunt/pkg/cli" ) const ( - CommandName = "output-module-groups" + CommandName = "output-module-groups" + SubCommandApply = "apply" + SubCommandDestroy = "destroy" ) func NewCommand(opts *options.TerragruntOptions) *cli.Command { return &cli.Command{ - Name: CommandName, - Usage: "Output groups of modules ordered for apply as a list of list in JSON (useful for CI use cases).", + Name: CommandName, + Usage: "Output groups of modules ordered by command (apply or destroy) as a list of list in JSON (useful for CI use cases).", + Subcommands: subCommands(opts), + Action: func(ctx *cli.Context) error { return Run(opts.OptionsFromContext(ctx)) }, + } +} + +func subCommands(opts *options.TerragruntOptions) cli.Commands { + cmds := cli.Commands{ + subCommandFunc(SubCommandApply, opts), + subCommandFunc(SubCommandDestroy, opts), + } + + return cmds +} + +func subCommandFunc(cmd string, opts *options.TerragruntOptions) *cli.Command { + opts.TerraformCommand = cmd + return &cli.Command{ + Name: cmd, + Usage: fmt.Sprintf("Recursively find terragrunt modules in the current directory tree and output the dependency order as a list of list in JSON for the %s", cmd), Action: func(ctx *cli.Context) error { return Run(opts.OptionsFromContext(ctx)) }, } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/docs/_docs/04_reference/cli-options.md new/terragrunt-0.52.7/docs/_docs/04_reference/cli-options.md --- old/terragrunt-0.52.5/docs/_docs/04_reference/cli-options.md 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/docs/_docs/04_reference/cli-options.md 2023-10-26 20:05:46.000000000 +0200 @@ -467,17 +467,26 @@ ### output-module-groups -Output groups of modules ordered for apply as a list of list in JSON (useful for CI use cases). +Output groups of modules ordered for apply (or destroy) as a list of list in JSON. Example: ```bash -terragrunt output-module-groups +terragrunt output-module-groups <sub-command> ``` +Optional sub-commands: +- apply (default) +- destroy + This will recursively search the current working directory for any folders that contain Terragrunt modules and build the dependency graph based on [`dependency`](/docs/reference/config-blocks-and-attributes/#dependency) and -[`dependencies`](/docs/reference/config-blocks-and-attributes/#dependencies) blocks. This may produce output such as: +[`dependencies`](/docs/reference/config-blocks-and-attributes/#dependencies) blocks and output the graph as a JSON list of list (unless the sub-command is destroy, in which case the command will output the reverse dependency order). + +This can be be useful in several scenarios, such as in CICD, when determining apply order or searching for all files to apply with CLI options +such as [`--terragrunt-modules-that-include`](#terragrunt-modules-that-include) + +This may produce output such as: ``` { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/go.mod new/terragrunt-0.52.7/go.mod --- old/terragrunt-0.52.5/go.mod 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/go.mod 2023-10-26 20:05:46.000000000 +0200 @@ -29,11 +29,11 @@ github.com/stretchr/testify v1.8.4 github.com/zclconf/go-cty v1.13.2 go.mozilla.org/sops/v3 v3.7.3 - golang.org/x/crypto v0.14.0 + golang.org/x/crypto v0.14.0 // indirect golang.org/x/oauth2 v0.8.0 golang.org/x/sync v0.3.0 golang.org/x/sys v0.13.0 - google.golang.org/api v0.110.0 + google.golang.org/api v0.114.0 ) require ( @@ -52,19 +52,21 @@ github.com/terraform-linters/tflint v0.47.0 github.com/ulikunitz/xz v0.5.11 // indirect golang.org/x/time v0.0.0-20220224211638-0e9765cccd65 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect ) require ( github.com/gruntwork-io/go-commons v0.17.1 github.com/gruntwork-io/gruntwork-cli v0.7.0 github.com/urfave/cli/v2 v2.25.5 + golang.org/x/term v0.13.0 + golang.org/x/text v0.13.0 ) require ( - cloud.google.com/go/compute v1.18.0 // indirect + cloud.google.com/go/compute v1.19.1 // indirect cloud.google.com/go/compute/metadata v0.2.3 // indirect - cloud.google.com/go/iam v0.12.0 // indirect + cloud.google.com/go/iam v0.13.0 // indirect filippo.io/age v1.0.0 // indirect github.com/Azure/azure-sdk-for-go v63.3.0+incompatible // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect @@ -103,7 +105,7 @@ github.com/google/go-querystring v1.1.0 // indirect github.com/google/uuid v1.3.0 // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect - github.com/googleapis/gax-go/v2 v2.7.0 // indirect + github.com/googleapis/gax-go/v2 v2.7.1 // indirect github.com/goware/prefixer v0.0.0-20160118172347-395022866408 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-hclog v1.5.0 // indirect @@ -154,11 +156,9 @@ golang.org/x/exp v0.0.0-20230905200255-921286631fa9 // indirect golang.org/x/mod v0.12.0 // indirect golang.org/x/net v0.17.0 // indirect - golang.org/x/term v0.13.0 // indirect - golang.org/x/text v0.13.0 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/grpc v1.55.0 // indirect + google.golang.org/grpc v1.56.3 // indirect google.golang.org/protobuf v1.31.0 // indirect gopkg.in/ini.v1 v1.66.4 // indirect gopkg.in/square/go-jose.v2 v2.6.0 // indirect diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/go.sum new/terragrunt-0.52.7/go.sum --- old/terragrunt-0.52.5/go.sum 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/go.sum 2023-10-26 20:05:46.000000000 +0200 @@ -70,8 +70,8 @@ cloud.google.com/go/compute v1.6.1/go.mod h1:g85FgpzFvNULZ+S8AYq87axRKuf2Kh7deLqV/jJ3thU= cloud.google.com/go/compute v1.7.0/go.mod h1:435lt8av5oL9P3fv1OEzSbSUe+ybHXGMPQHHZWZxy9U= cloud.google.com/go/compute v1.10.0/go.mod h1:ER5CLbMxl90o2jtNbGSbtfOpQKR0t15FOtRsugnLrlU= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= -cloud.google.com/go/compute v1.18.0/go.mod h1:1X7yHxec2Ga+Ss6jPyjxRxpu2uu7PLgsOVXvgU0yacs= +cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= +cloud.google.com/go/compute v1.19.1/go.mod h1:6ylj3a05WF8leseCdIf77NK0g1ey+nj5IKd5/kvShxE= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/containeranalysis v0.5.1/go.mod h1:1D92jd8gRR/c0fGMlymRgxWD3Qw9C1ff6/T7mLgVL8I= @@ -111,8 +111,8 @@ cloud.google.com/go/grafeas v0.2.0/go.mod h1:KhxgtF2hb0P191HlY5besjYm6MqTSTj3LSI+M+ByZHc= cloud.google.com/go/iam v0.3.0/go.mod h1:XzJPvDayI+9zsASAFO68Hk07u3z+f+JrT2xXNdp4bnY= cloud.google.com/go/iam v0.5.0/go.mod h1:wPU9Vt0P4UmCux7mqtRu6jcpPAb74cP1fh50J3QpkUc= -cloud.google.com/go/iam v0.12.0 h1:DRtTY29b75ciH6Ov1PHb4/iat2CLCvrOm40Q0a6DFpE= -cloud.google.com/go/iam v0.12.0/go.mod h1:knyHGviacl11zrtZUoDuYpDgLjvr28sLQaG0YB2GYAY= +cloud.google.com/go/iam v0.13.0 h1:+CmB+K0J/33d0zSQ9SlFWUeCCEn5XJA0ZMZ3pHE9u8k= +cloud.google.com/go/iam v0.13.0/go.mod h1:ljOg+rcNfzZ5d6f1nAUJ8ZIxOaZUVoS14bKCtaLZ/D0= cloud.google.com/go/language v1.4.0/go.mod h1:F9dRpNFQmJbkaop6g0JhSBXCNlO90e1KWx5iDdxbWic= cloud.google.com/go/language v1.6.0/go.mod h1:6dJ8t3B+lUYfStgls25GusK04NLh3eDLQnWM3mdEbhI= cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= @@ -539,8 +539,8 @@ github.com/googleapis/gax-go/v2 v2.4.0/go.mod h1:XOTVJ59hdnfJLIP/dh8n5CGryZR2LxK9wbMD5+iXC6c= github.com/googleapis/gax-go/v2 v2.5.1/go.mod h1:h6B0KMMFNtI2ddbGJn3T3ZbwkeT6yqEF02fYlzkUCyo= github.com/googleapis/gax-go/v2 v2.6.0/go.mod h1:1mjbznJAPHFpesgE5ucqfYEscaz5kMdcIDwU/6+DDoY= -github.com/googleapis/gax-go/v2 v2.7.0 h1:IcsPKeInNvYi7eqSaDjiZqDDKu5rsmunY0Y1YupQSSQ= -github.com/googleapis/gax-go/v2 v2.7.0/go.mod h1:TEop28CZZQ2y+c0VxMUmu1lV+fQx57QpBWsYpwqHJx8= +github.com/googleapis/gax-go/v2 v2.7.1 h1:gF4c0zjUP2H/s/hEGyLA3I0fA2ZWjzYiONAD6cvPr8A= +github.com/googleapis/gax-go/v2 v2.7.1/go.mod h1:4orTrqY6hXxxaUL4LHIPl6lGo8vAE38/qKbhSAKP6QI= github.com/googleapis/gnostic v0.0.0-20170729233727-0c5108395e2d/go.mod h1:sJBsCZ4ayReDTBIg8b9dl28c5xFWyhBTVRp3pOg5EKY= github.com/googleapis/go-type-adapters v1.0.0/go.mod h1:zHW75FOG2aur7gAO2B+MLby+cLsWGBF62rFAi7WjWO4= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= @@ -1384,8 +1384,8 @@ google.golang.org/api v0.97.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.98.0/go.mod h1:w7wJQLTM+wvQpNf5JyEcBoxK0RH7EDrh/L4qfsuJ13s= google.golang.org/api v0.100.0/go.mod h1:ZE3Z2+ZOr87Rx7dqFsdRQkRBk36kDtp/h+QpHbB7a70= -google.golang.org/api v0.110.0 h1:l+rh0KYUooe9JGbGVx71tbFo4SMbMTXK3I3ia2QSEeU= -google.golang.org/api v0.110.0/go.mod h1:7FC4Vvx1Mooxh8C5HWjzZHcavuS2f6pmJpZx60ca7iI= +google.golang.org/api v0.114.0 h1:1xQPji6cO2E2vLiI+C/XiFAnsn1WV3mjaEwGLhi3grE= +google.golang.org/api v0.114.0/go.mod h1:ifYI2ZsFK6/uGddGfAD5BMxlnkBqCmqHSDUVi45N5Yg= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1498,8 +1498,8 @@ google.golang.org/genproto v0.0.0-20221014173430-6e2ab493f96b/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221014213838-99cd37c6964a/go.mod h1:1vXfmgAz9N9Jx0QA82PqRVauvCz1SGSz739p0f183jM= google.golang.org/genproto v0.0.0-20221025140454-527a21cfbd71/go.mod h1:9qHF0xnpdSfF6knlcsnpzUu5y+rpwgbvsyGAZPBMg4s= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1537,8 +1537,8 @@ google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.3 h1:8I4C0Yq1EjstUzUJzpcRVbuYA2mODtEmpWiQoN/b2nc= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/test/fixture-output-module-groups/root/terragrunt.hcl new/terragrunt-0.52.7/test/fixture-output-module-groups/root/terragrunt.hcl --- old/terragrunt-0.52.5/test/fixture-output-module-groups/root/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100 +++ new/terragrunt-0.52.7/test/fixture-output-module-groups/root/terragrunt.hcl 2023-10-26 20:05:46.000000000 +0200 @@ -0,0 +1,14 @@ +# Configure Terragrunt to automatically store tfstate files in an S3 bucket +remote_state { + backend = "s3" + config = { + encrypt = true + bucket = "__FILL_IN_BUCKET_NAME__" + key = "${path_relative_to_include()}/terraform.tfstate" + region = "us-west-2" + } +} + +inputs = { + terraform_remote_state_s3_bucket = "__FILL_IN_BUCKET_NAME__" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/test/fixture-output-module-groups/terragrunt.hcl new/terragrunt-0.52.7/test/fixture-output-module-groups/terragrunt.hcl --- old/terragrunt-0.52.5/test/fixture-output-module-groups/terragrunt.hcl 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/test/fixture-output-module-groups/terragrunt.hcl 1970-01-01 01:00:00.000000000 +0100 @@ -1,14 +0,0 @@ -# Configure Terragrunt to automatically store tfstate files in an S3 bucket -remote_state { - backend = "s3" - config = { - encrypt = true - bucket = "__FILL_IN_BUCKET_NAME__" - key = "${path_relative_to_include()}/terraform.tfstate" - region = "us-west-2" - } -} - -inputs = { - terraform_remote_state_s3_bucket = "__FILL_IN_BUCKET_NAME__" -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.52.5/test/integration_test.go new/terragrunt-0.52.7/test/integration_test.go --- old/terragrunt-0.52.5/test/integration_test.go 2023-10-24 22:13:58.000000000 +0200 +++ new/terragrunt-0.52.7/test/integration_test.go 2023-10-26 20:05:46.000000000 +0200 @@ -5029,29 +5029,73 @@ tmpEnvPath := copyEnvironment(t, TEST_FIXTURE_OUTPUT_MODULE_GROUPS) cleanupTerraformFolder(t, tmpEnvPath) environmentPath := fmt.Sprintf("%s/%s", tmpEnvPath, TEST_FIXTURE_OUTPUT_MODULE_GROUPS) - var ( - stdout bytes.Buffer - stderr bytes.Buffer - ) - runTerragruntRedirectOutput(t, fmt.Sprintf("terragrunt output-module-groups --terragrunt-working-dir %s", environmentPath), &stdout, &stderr) - output := stdout.String() - expectedOutput := fmt.Sprintf(` -{ - "Group 1": [ - "%[1]s/root/vpc" - ], - "Group 2": [ - "%[1]s/root/mysql", - "%[1]s/root/redis" - ], - "Group 3": [ - "%[1]s/root/backend-app" - ], - "Group 4": [ - "%[1]s/root/frontend-app" - ] -}`, environmentPath) - assert.True(t, strings.Contains(output, strings.TrimSpace(expectedOutput))) + + expectedApplyOutput := fmt.Sprintf(` + { + "Group 1": [ + "%[1]s/root/vpc" + ], + "Group 2": [ + "%[1]s/root/mysql", + "%[1]s/root/redis" + ], + "Group 3": [ + "%[1]s/root/backend-app" + ], + "Group 4": [ + "%[1]s/root/frontend-app" + ] + }`, environmentPath) + + expectedDestroyOutput := fmt.Sprintf(` + { + "Group 1": [ + "%[1]s/root/frontend-app" + ], + "Group 2": [ + "%[1]s/root/backend-app" + ], + "Group 3": [ + "%[1]s/root/mysql", + "%[1]s/root/redis" + ], + "Group 4": [ + "%[1]s/root/vpc" + ] + }`, environmentPath) + + tests := map[string]struct { + subCommand string + expectedOutput string + }{ + "output-module-groups with no subcommand": { + subCommand: "", + expectedOutput: expectedApplyOutput, + }, + "output-module-groups with apply subcommand": { + subCommand: "apply", + expectedOutput: expectedApplyOutput, + }, + "output-module-groups with destroy subcommand": { + subCommand: "destroy", + expectedOutput: expectedDestroyOutput, + }, + } + + for name, tt := range tests { + tt := tt + + t.Run(name, func(t *testing.T) { + var ( + stdout bytes.Buffer + stderr bytes.Buffer + ) + runTerragruntRedirectOutput(t, fmt.Sprintf("terragrunt output-module-groups --terragrunt-working-dir %s %s", environmentPath, tt.subCommand), &stdout, &stderr) + output := strings.ReplaceAll(stdout.String(), " ", "") + expectedOutput := strings.ReplaceAll(strings.ReplaceAll(tt.expectedOutput, "\t", ""), " ", "") + assert.True(t, strings.Contains(strings.TrimSpace(output), strings.TrimSpace(expectedOutput))) + }) + } } func TestRenderJsonMetadataDependency(t *testing.T) { ++++++ terragrunt.obsinfo ++++++ --- /var/tmp/diff_new_pack.Np1mgB/_old 2023-10-27 22:29:57.647404178 +0200 +++ /var/tmp/diff_new_pack.Np1mgB/_new 2023-10-27 22:29:57.651404325 +0200 @@ -1,5 +1,5 @@ name: terragrunt -version: 0.52.5 -mtime: 1698178438 -commit: c996cbc70140b8507b2f73a4aeb42b84163a74b6 +version: 0.52.7 +mtime: 1698343546 +commit: 0764ce24d3f1520b039da1481f68598300fd5b59 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.17445/vendor.tar.gz differ: char 5, line 1