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-20 13:25:55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/terragrunt (Old) and /work/SRC/openSUSE:Factory/.terragrunt.new.16627 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt" Wed Sep 20 13:25:55 2023 rev:65 rq:1112418 version:0.51.3 Changes: -------- --- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2023-09-15 22:11:10.789373296 +0200 +++ /work/SRC/openSUSE:Factory/.terragrunt.new.16627/terragrunt.changes 2023-09-20 13:27:44.223523113 +0200 @@ -1,0 +2,25 @@ +Wed Sep 20 05:14:16 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.51.3: + * Add debug log message to print chdir option (#2724) + +------------------------------------------------------------------- +Wed Sep 20 05:08:00 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.51.2: + * S3 bucket errors handling (#2721) + +------------------------------------------------------------------- +Tue Sep 19 04:45:48 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.51.1: + * Removes trailing slash appended to the end of + `get_path_to_repo_root()` (#2719) + +------------------------------------------------------------------- +Mon Sep 18 05:35:23 UTC 2023 - ka...@b1-systems.de + +- Update to version 0.51.0: + * Updated to go 1.21 (#2715) + +------------------------------------------------------------------- Old: ---- terragrunt-0.50.17.obscpio New: ---- terragrunt-0.51.3.obscpio ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ terragrunt.spec ++++++ --- /var/tmp/diff_new_pack.gLGHKW/_old 2023-09-20 13:27:45.987586311 +0200 +++ /var/tmp/diff_new_pack.gLGHKW/_new 2023-09-20 13:27:45.987586311 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: terragrunt -Version: 0.50.17 +Version: 0.51.3 Release: 0 Summary: Thin wrapper for Terraform for working with multiple Terraform modules License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.gLGHKW/_old 2023-09-20 13:27:46.019587457 +0200 +++ /var/tmp/diff_new_pack.gLGHKW/_new 2023-09-20 13:27:46.027587744 +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.50.17</param> + <param name="revision">v0.51.3</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.gLGHKW/_old 2023-09-20 13:27:46.067589177 +0200 +++ /var/tmp/diff_new_pack.gLGHKW/_new 2023-09-20 13:27:46.075589464 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/gruntwork-io/terragrunt</param> - <param name="changesrevision">b9b239dca970724b121b7be636a8196446beb9de</param></service></servicedata> + <param name="changesrevision">6156735accb529e814f9f704176d82e6344967e8</param></service></servicedata> (No newline at EOF) ++++++ terragrunt-0.50.17.obscpio -> terragrunt-0.51.3.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/.circleci/config.yml new/terragrunt-0.51.3/.circleci/config.yml --- old/terragrunt-0.50.17/.circleci/config.yml 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/.circleci/config.yml 2023-09-19 22:37:08.000000000 +0200 @@ -11,7 +11,7 @@ defaults: &defaults docker: - - image: 087285199408.dkr.ecr.us-east-1.amazonaws.com/circle-ci-test-image-base:go1.20-tf1.5-tg39.1-pck1.8-ci50.7 + - image: 087285199408.dkr.ecr.us-east-1.amazonaws.com/circle-ci-test-image-base:go1.21-tf1.5-tg39.1-pck1.8-ci50.7 version: 2.1 jobs: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/_ci/install-golang.ps1 new/terragrunt-0.51.3/_ci/install-golang.ps1 --- old/terragrunt-0.50.17/_ci/install-golang.ps1 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/_ci/install-golang.ps1 2023-09-19 22:37:08.000000000 +0200 @@ -1,5 +1,5 @@ # Install golang using Chocolatey -choco install golang --version 1.20.0 -y +choco install golang --version 1.21.1 -y # Verify installation Get-Command go go version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/cli/commands/terraform/debug.go new/terragrunt-0.51.3/cli/commands/terraform/debug.go --- old/terragrunt-0.50.17/cli/commands/terraform/debug.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/cli/commands/terraform/debug.go 2023-09-19 22:37:08.000000000 +0200 @@ -49,10 +49,10 @@ terragruntOptions.Logger.Debugf("Variables passed to terraform are located in \"%s\"", fileName) terragruntOptions.Logger.Debugf("Run this command to replicate how terraform was invoked:") terragruntOptions.Logger.Debugf( - "\tterraform %s -var-file=\"%s\" \"%s\"", + "\tterraform -chdir=\"%s\" %s -var-file=\"%s\" ", + terragruntOptions.WorkingDir, strings.Join(terragruntOptions.TerraformCliArgs, " "), fileName, - terragruntOptions.WorkingDir, ) return nil } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/config/config_helpers.go new/terragrunt-0.51.3/config/config_helpers.go --- old/terragrunt-0.50.17/config/config_helpers.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/config/config_helpers.go 2023-09-19 22:37:08.000000000 +0200 @@ -221,7 +221,7 @@ return "", errors.WithStackTrace(err) } - return filepath.ToSlash(strings.TrimSpace(repoRootPathAbs) + "/"), nil + return filepath.ToSlash(strings.TrimSpace(repoRootPathAbs)), nil } // Return the directory where the Terragrunt configuration file lives diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/go.mod new/terragrunt-0.51.3/go.mod --- old/terragrunt-0.50.17/go.mod 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/go.mod 2023-09-19 22:37:08.000000000 +0200 @@ -1,6 +1,6 @@ module github.com/gruntwork-io/terragrunt -go 1.20 +go 1.21 require ( cloud.google.com/go/storage v1.28.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/go.sum new/terragrunt-0.51.3/go.sum --- old/terragrunt-0.50.17/go.sum 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/go.sum 2023-09-19 22:37:08.000000000 +0200 @@ -118,6 +118,7 @@ cloud.google.com/go/lifesciences v0.5.0/go.mod h1:3oIKy8ycWGPUyZDR/8RNnTOYevhaMLqh5vLUXs9zvT8= cloud.google.com/go/lifesciences v0.6.0/go.mod h1:ddj6tSX/7BOnhxCSd3ZcETvtNr8NZ6t/iPhY2Tyfu08= cloud.google.com/go/longrunning v0.4.1 h1:v+yFJOfKC3yZdY6ZUI933pIYdhyhV8S3NpWrXWmg7jM= +cloud.google.com/go/longrunning v0.4.1/go.mod h1:4iWDqhBZ70CvZ6BfETbvam3T8FMvLK+eFj0E6AaRQTo= cloud.google.com/go/mediatranslation v0.5.0/go.mod h1:jGPUhGTybqsPQn91pNXw0xVHfuJ3leR1wj37oU3y1f4= cloud.google.com/go/mediatranslation v0.6.0/go.mod h1:hHdBCTYNigsBxshbznuIMFNe5QXEowAuNmmC7h8pu5w= cloud.google.com/go/memcache v1.4.0/go.mod h1:rTOfiGZtJX1AaFUrOgsMHX5kAzaTQ8azHiuDoTPzNsE= @@ -198,6 +199,7 @@ github.com/Azure/azure-sdk-for-go v63.3.0+incompatible h1:INepVujzUrmArRZjDLHbtER+FkvCoEwyRCXGqOlmDII= github.com/Azure/azure-sdk-for-go v63.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.3/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= @@ -246,8 +248,10 @@ github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= github.com/Microsoft/go-winio v0.5.2 h1:a9IhgEQBCUEk6QCdml9CiJGhAws+YwffDHEMp1VMrpA= +github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= +github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v0.0.0-20220407094043-a94812496cf5 h1:cSHEbLj0GZeHM1mWG84qEnGFojNEQ83W7cwaPRjcwXU= github.com/ProtonMail/go-crypto v0.0.0-20220407094043-a94812496cf5/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= @@ -309,6 +313,7 @@ github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI= github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= +github.com/cenkalti/backoff v2.2.1+incompatible/go.mod h1:90ReRw6GdpyfrHakVjL/QHaoyV4aDUVVkXQJJJ3NXXM= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/cenkalti/backoff/v3 v3.2.2 h1:cfUAAO3yvKMYKPrvhDuHSwQnhZNk/RMHKdZqKTxfm6M= github.com/cenkalti/backoff/v3 v3.2.2/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= @@ -335,6 +340,7 @@ github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= github.com/containerd/continuity v0.2.2 h1:QSqfxcn8c+12slxwu00AtzXrsami0MJb/MQs9lOLHLA= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= github.com/coreos/bbolt v1.3.0/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -357,6 +363,7 @@ github.com/dimchansky/utfbom v1.1.1 h1:vV6w1AhK4VMnhBno/TPVCoK9U/LP0PkLCS9tbxHdi/U= github.com/dimchansky/utfbom v1.1.1/go.mod h1:SxdoEBH5qIqFocHMyGOXVAybYJdr71b1Q/j0mACtrfE= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0 h1:3uh0PgVws3nIA0Q+MwDC8yjEPf9zjRfZZWXZYDct3Tw= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= @@ -416,6 +423,7 @@ github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= github.com/go-test/deep v1.1.0 h1:WOcxcdHcvdgThNXjw0t76K42FXTU7HpNQWHpA2HHNlg= +github.com/go-test/deep v1.1.0/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= @@ -499,6 +507,7 @@ github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/martian/v3 v3.3.2 h1:IqNFLAmvJOgVlpdEBiQbDc2EwKW77amAycfTuWKdfvw= +github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= @@ -549,6 +558,7 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= +github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/goware/prefixer v0.0.0-20160118172347-395022866408 h1:Y9iQJfEqnN3/Nce9cOegemcy/9Ai5k3huT6E80F3zaw= github.com/goware/prefixer v0.0.0-20160118172347-395022866408/go.mod h1:PE1ycukgRPJ7bJ9a1fdfQ9j8i/cEcRAoLZzbxYpNB/s= github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= @@ -811,12 +821,15 @@ github.com/onsi/gomega v0.0.0-20190113212917-5533ce8a0da3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v1.1.2 h1:2VSZwLx5k/BfsBxMMipG/LYUnmqOD/BPkIVgQUcTlLw= github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/ory/dockertest v3.3.5+incompatible h1:iLLK6SQwIhcbrG783Dghaaa3WPzGc+4Emza6EbVUUGA= +github.com/ory/dockertest v3.3.5+incompatible/go.mod h1:1vX4m9wsvi00u5bseYwXaSnhNrne+V0E6LAcBILJdPs= github.com/owenrumney/go-sarif v1.1.1 h1:QNObu6YX1igyFKhdzd7vgzmw7XsWN3/6NMGuDzBgXmE= github.com/owenrumney/go-sarif v1.1.1/go.mod h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U= github.com/packer-community/winrmcp v0.0.0-20180921211025-c76d91c1e7db/go.mod h1:f6Izs6JvFTdnRbziASagjZ2vmf55NSIkC/weStxCHqk= @@ -869,6 +882,7 @@ github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= @@ -938,8 +952,11 @@ github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds= github.com/xanzy/ssh-agent v0.2.1/go.mod h1:mLlQY/MoOhWBj+gOGMQkOeiEvkx+8pJSI+0Bx9h2kr4= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f h1:J9EGpcZtP0E/raorCMxlFGSTBrsSlaDGf3jU/qvAE2c= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20160813154853-07dd2e8dfe18/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v0.0.0-20161029104018-1d6e34225557/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg= github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 h1:bAn7/zixMGCfxrRTfdpNzjtPYqr8smhKouy9mxVdGPU= @@ -1586,6 +1603,7 @@ gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/remote/remote_state_s3.go new/terragrunt-0.51.3/remote/remote_state_s3.go --- old/terragrunt-0.50.17/remote/remote_state_s3.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/remote/remote_state_s3.go 2023-09-19 22:37:08.000000000 +0200 @@ -372,40 +372,41 @@ // If the bucket specified in the given config doesn't already exist, prompt the user to create it, and if the user // confirms, create the bucket and enable versioning for it. func createS3BucketIfNecessary(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, terragruntOptions *options.TerragruntOptions) error { - if !DoesS3BucketExist(s3Client, &config.remoteStateConfigS3.Bucket) { - if terragruntOptions.FailIfBucketCreationRequired { - return BucketCreationNotAllowed(config.remoteStateConfigS3.Bucket) - } + if DoesS3BucketExist(s3Client, &config.remoteStateConfigS3.Bucket) { + return nil + } + if terragruntOptions.FailIfBucketCreationRequired { + return BucketCreationNotAllowed(config.remoteStateConfigS3.Bucket) + } - prompt := fmt.Sprintf("Remote state S3 bucket %s does not exist or you don't have permissions to access it. Would you like Terragrunt to create it?", config.remoteStateConfigS3.Bucket) - shouldCreateBucket, err := shell.PromptUserForYesNo(prompt, terragruntOptions) - if err != nil { - return err - } + prompt := fmt.Sprintf("Remote state S3 bucket %s does not exist or you don't have permissions to access it. Would you like Terragrunt to create it?", config.remoteStateConfigS3.Bucket) + shouldCreateBucket, err := shell.PromptUserForYesNo(prompt, terragruntOptions) + if err != nil { + return err + } - if shouldCreateBucket { - // Creating the S3 bucket occasionally fails with eventual consistency errors: e.g., the S3 HeadBucket - // operation says the bucket exists, but a subsequent call to enable versioning on that bucket fails with - // the error "NoSuchBucket: The specified bucket does not exist." Therefore, when creating and configuring - // the S3 bucket, we do so in a retry loop with a sleep between retries that will hopefully work around the - // eventual consistency issues. Each S3 operation should be idempotent, so redoing steps that have already - // been performed should be a no-op. - description := fmt.Sprintf("Create S3 bucket with retry %s", config.remoteStateConfigS3.Bucket) - maxRetries := 3 - sleepBetweenRetries := 10 * time.Second - - return util.DoWithRetry(description, maxRetries, sleepBetweenRetries, terragruntOptions.Logger, logrus.DebugLevel, func() error { - err := CreateS3BucketWithVersioningSSEncryptionAndAccessLogging(s3Client, config, terragruntOptions) - if err != nil { - if isBucketCreationErrorRetriable(err) { - return err - } - // return FatalError so that retry loop will not continue - return util.FatalError{Underlying: err} + if shouldCreateBucket { + // Creating the S3 bucket occasionally fails with eventual consistency errors: e.g., the S3 HeadBucket + // operation says the bucket exists, but a subsequent call to enable versioning on that bucket fails with + // the error "NoSuchBucket: The specified bucket does not exist." Therefore, when creating and configuring + // the S3 bucket, we do so in a retry loop with a sleep between retries that will hopefully work around the + // eventual consistency issues. Each S3 operation should be idempotent, so redoing steps that have already + // been performed should be a no-op. + description := fmt.Sprintf("Create S3 bucket with retry %s", config.remoteStateConfigS3.Bucket) + maxRetries := 3 + sleepBetweenRetries := 10 * time.Second + + return util.DoWithRetry(description, maxRetries, sleepBetweenRetries, terragruntOptions.Logger, logrus.DebugLevel, func() error { + err := CreateS3BucketWithVersioningSSEncryptionAndAccessLogging(s3Client, config, terragruntOptions) + if err != nil { + if isBucketCreationErrorRetriable(err) { + return err } - return nil - }) - } + // return FatalError so that retry loop will not continue + return util.FatalError{Underlying: err} + } + return nil + }) } return nil @@ -500,7 +501,6 @@ if err := EnableEnforcedTLSAccesstoS3Bucket(s3Client, config.AccessLoggingBucketName, config, terragruntOptions); err != nil { return err } - } else { terragruntOptions.Logger.Debugf("Access Logging is disabled for the remote state AWS S3 bucket %s", config.remoteStateConfigS3.Bucket) } @@ -617,6 +617,8 @@ // Check if versioning is enabled for the S3 bucket specified in the given config and warn the user if it is not func checkIfVersioningEnabled(s3Client *s3.S3, config *RemoteStateConfigS3, terragruntOptions *options.TerragruntOptions) (bool, error) { + terragruntOptions.Logger.Debugf("Verifying AWS S3 Bucket Versioning %s", config.Bucket) + out, err := s3Client.GetBucketVersioning(&s3.GetBucketVersioningInput{Bucket: aws.String(config.Bucket)}) if err != nil { return false, errors.WithStackTrace(err) @@ -634,6 +636,8 @@ // Create the given S3 bucket and enable versioning for it func CreateS3BucketWithVersioningSSEncryptionAndAccessLogging(s3Client *s3.S3, config *ExtendedRemoteStateConfigS3, terragruntOptions *options.TerragruntOptions) error { + terragruntOptions.Logger.Debugf("Create S3 bucket %s with versioning, SSE encryption, and access logging.", config.remoteStateConfigS3.Bucket) + err := CreateS3Bucket(s3Client, aws.String(config.remoteStateConfigS3.Bucket), terragruntOptions) if err != nil { @@ -948,7 +952,7 @@ }) if err != nil { terragruntOptions.Logger.Debugf("Could not get policy for bucket %s", config.Bucket) - return false, nil + return false, err } // If the bucket has no policy, it is not enforced @@ -1157,7 +1161,7 @@ output, err := s3Client.GetBucketEncryption(input) if err != nil { terragruntOptions.Logger.Debugf("Error checking if SSE is enabled for AWS S3 bucket %s: %s", config.remoteStateConfigS3.Bucket, err.Error()) - return false, nil + return false, err } if output.ServerSideEncryptionConfiguration == nil { @@ -1212,7 +1216,7 @@ output, err := s3Client.GetBucketLogging(input) if err != nil { terragruntOptions.Logger.Debugf("Error checking if Access Logging is enabled for AWS S3 bucket %s: %s", config.Bucket, err.Error()) - return false, nil + return false, err } if output.LoggingEnabled == nil { @@ -1249,6 +1253,7 @@ func checkIfS3PublicAccessBlockingEnabled(s3Client *s3.S3, config *RemoteStateConfigS3, terragruntOptions *options.TerragruntOptions) (bool, error) { terragruntOptions.Logger.Debugf("Checking if S3 bucket %s is configured to block public access", config.Bucket) + output, err := s3Client.GetPublicAccessBlock(&s3.GetPublicAccessBlockInput{ Bucket: aws.String(config.Bucket), }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/remote/remote_state_test.go new/terragrunt-0.51.3/remote/remote_state_test.go --- old/terragrunt-0.50.17/remote/remote_state_test.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/remote/remote_state_test.go 2023-09-19 22:37:08.000000000 +0200 @@ -284,6 +284,7 @@ testCase := testCase t.Run(testCase.name, func(t *testing.T) { + t.Parallel() shouldOverride := testCase.stateFromConfig.differsFrom(&testCase.existingBackend, terragruntOptions) assert.Equal(t, testCase.shouldOverride, shouldOverride, "Expect differsFrom to return %t but got %t for existingRemoteState %v and remoteStateFromTerragruntConfig %v", testCase.shouldOverride, shouldOverride, testCase.existingBackend, testCase.stateFromConfig) }) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/test/fixture-get-path/fixture-get-path-to-repo-root/main.tf new/terragrunt-0.51.3/test/fixture-get-path/fixture-get-path-to-repo-root/main.tf --- old/terragrunt-0.50.17/test/fixture-get-path/fixture-get-path-to-repo-root/main.tf 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/test/fixture-get-path/fixture-get-path-to-repo-root/main.tf 2023-09-19 22:37:08.000000000 +0200 @@ -2,6 +2,14 @@ type = string } +variable "path_to_modules" { + type = string +} + output "path_to_root" { value = var.path_to_root } + +output "path_to_modules" { + value = var.path_to_modules +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/test/fixture-get-path/fixture-get-path-to-repo-root/terragrunt.hcl new/terragrunt-0.51.3/test/fixture-get-path/fixture-get-path-to-repo-root/terragrunt.hcl --- old/terragrunt-0.50.17/test/fixture-get-path/fixture-get-path-to-repo-root/terragrunt.hcl 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/test/fixture-get-path/fixture-get-path-to-repo-root/terragrunt.hcl 2023-09-19 22:37:08.000000000 +0200 @@ -1,3 +1,4 @@ inputs = { path_to_root = get_path_to_repo_root() + path_to_modules = "${get_path_to_repo_root()}/modules" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/test/integration_debug_test.go new/terragrunt-0.51.3/test/integration_debug_test.go --- old/terragrunt-0.50.17/test/integration_debug_test.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/test/integration_debug_test.go 2023-09-19 22:37:08.000000000 +0200 @@ -37,11 +37,19 @@ tmpEnvPath := copyEnvironment(t, TEST_FIXTURE_INPUTS) rootPath := util.JoinPath(tmpEnvPath, TEST_FIXTURE_INPUTS) - runTerragrunt(t, fmt.Sprintf("terragrunt plan --terragrunt-non-interactive --terragrunt-debug --terragrunt-working-dir %s", rootPath)) + stdout := bytes.Buffer{} + stderr := bytes.Buffer{} + + require.NoError( + t, + runTerragruntCommand(t, fmt.Sprintf("terragrunt plan --terragrunt-non-interactive --terragrunt-log-level debug --terragrunt-debug --terragrunt-working-dir %s", rootPath), &stdout, &stderr), + ) debugFile := util.JoinPath(rootPath, terragruntDebugFile) assert.True(t, util.FileExists(debugFile)) + require.Contains(t, stderr.String(), fmt.Sprintf("-chdir=\"%s\"", rootPath)) + // If the debug file is generated correctly, we should be able to run terraform apply using the generated var file // without going through terragrunt. mockOptions, err := options.NewTerragruntOptionsForTest("integration_test") @@ -52,8 +60,8 @@ shell.RunTerraformCommand(mockOptions, "apply", "-auto-approve", "-var-file", debugFile), ) - stdout := bytes.Buffer{} - stderr := bytes.Buffer{} + stdout = bytes.Buffer{} + stderr = bytes.Buffer{} require.NoError( t, runTerragruntCommand(t, fmt.Sprintf("terragrunt output -no-color -json --terragrunt-non-interactive --terragrunt-working-dir %s", rootPath), &stdout, &stderr), diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.50.17/test/integration_test.go new/terragrunt-0.51.3/test/integration_test.go --- old/terragrunt-0.50.17/test/integration_test.go 2023-09-14 20:36:41.000000000 +0200 +++ new/terragrunt-0.51.3/test/integration_test.go 2023-09-19 22:37:08.000000000 +0200 @@ -3090,10 +3090,18 @@ require.NoError(t, json.Unmarshal([]byte(stdout.String()), &outputs)) - pathToRoot, hasPathToRoot := outputs["path_to_root"] + expectedToRoot, err := filepath.Rel(rootPath, tmpEnvPath) + require.NoError(t, err) - require.True(t, hasPathToRoot) - require.Equal(t, pathToRoot.Value, "../../") + for name, expected := range map[string]string{ + "path_to_root": expectedToRoot, + "path_to_modules": filepath.Join(expectedToRoot, "modules"), + } { + value, hasValue := outputs[name] + + require.True(t, hasValue) + require.Equal(t, expected, value.Value) + } } func TestGetPlatform(t *testing.T) { ++++++ terragrunt.obsinfo ++++++ --- /var/tmp/diff_new_pack.gLGHKW/_old 2023-09-20 13:27:46.827616406 +0200 +++ /var/tmp/diff_new_pack.gLGHKW/_new 2023-09-20 13:27:46.831616549 +0200 @@ -1,5 +1,5 @@ name: terragrunt -version: 0.50.17 -mtime: 1694716601 -commit: b9b239dca970724b121b7be636a8196446beb9de +version: 0.51.3 +mtime: 1695155828 +commit: 6156735accb529e814f9f704176d82e6344967e8 ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.16627/vendor.tar.gz differ: char 5, line 1