Commit Graph

27225 Commits

Author SHA1 Message Date
Rémi Lapeyre 032d339915 Sanitize lock path for the Consul backend when it ends with a /
When the path ends with / (e.g. `path = "tfstate/"), the lock
path used will contain two consecutive slashes (e.g. `tfstate//.lock`) which
Consul does not accept.

This change the lock path so it is sanitized to `tfstate/.lock`.

If the user has two different Terraform project, one with `path = "tfstate"` and
the other with `path = "tfstate/"`, the paths for the locks will be the same
which will be confusing as locking one project will lock both. I wish it were
possible to forbid ending slashes altogether but doing so would require all
users currently having an ending slash in the path to manually move their
Terraform state and would be a poor user experience.

Closes https://github.com/hashicorp/terraform/issues/15747
2020-08-13 16:29:43 +02:00
Rémi Lapeyre 11eb88753d Fix `terraform force-unlock <lock_id>` for Consul backend
When locking was enabled with the Consul backend and the lock not properly
released, the `terraform force-unlock <lock_id>` command would do nothing as
its implementation would exit early in that case.

It now destroys the session that created the lock and clean both the lock and
the lock-info keys.

A regression test is added to TestConsul_destroyLock() to catch the issue if it
happends again.

Closes https://github.com/hashicorp/terraform/issues/22174
2020-08-13 15:20:24 +02:00
kt 23b4c2db42
azurerm backend: support loading metadata from a given host 2020-08-12 15:04:40 -07:00
Katy Moe e59553ef02
test outdated version output 2020-08-12 21:22:39 +01:00
Pam Selle ce2bbb151a
Merge pull request #25825 from hashicorp/pselle/build-website
[build] Fix missing VERSION for running make website
2020-08-12 13:34:00 -04:00
Pam Selle 0eac3de22a Fix missing VERSION for running make website 2020-08-12 13:24:03 -04:00
James Bardin ebd7828892 update CHANGELOG.md 2020-08-12 10:54:56 -04:00
Pam Selle f63b261fca
Merge pull request #25791 from hashicorp/aug20_provisioners_nav
website: Move provisioners into language section of nav sidebar
2020-08-12 10:54:13 -04:00
James Bardin 1c09df1a66
Merge pull request #25779 from hashicorp/jbardin/remove-state-attrs
Remove resource state attributes that are no longer in the schema
2020-08-12 10:49:44 -04:00
James Bardin aec0059920
Merge pull request #25760 from hashicorp/jbardin/target-resource
Generalize target addresses before expansion
2020-08-12 10:28:51 -04:00
James Bardin b9e076ec66 re-add ModuleInstance -> Module conversion
When working with a ConfigResource, the generalization of a
ModuleInstance to a Module was inadvertently dropped, and there was to
test coverage for that type of target.

Ensure we can target a specific module instance alone.
2020-08-12 10:22:13 -04:00
James Bardin 0df5a7e6cf Generalize target addresses before expansion
Before expansion happens, we only have expansion resource nodes that
know their ConfigResource address. In order to properly compare these to
targets within a module instance, we need to generalize the target to
also be a ConfigResource.

We can also remove the IgnoreIndices field from the transformer, since
we have addresses that are properly scoped and can compare them in the
correct context.
2020-08-12 10:12:43 -04:00
James Bardin cbbd487130
Merge pull request #25663 from hashicorp/jbardin/plan-empty-resource
Return known empty containers from resource evaluation during plan
2020-08-12 10:10:59 -04:00
James Bardin c8ed0ccbdb
Merge pull request #25662 from hashicorp/jbardin/dynamic-set-block
Unknown set blocks with dynamic may have 0 elements
2020-08-12 10:06:59 -04:00
Kristin Laemmert 7111d8deb1
Merge pull request #25783 from nvogel/master
Fix documentation example for the indent function
2020-08-12 09:34:07 -04:00
Katy Moe 25337b7217
fix outdated message output order 2020-08-11 23:27:29 +01:00
Nick Fagerlund 2ffb71bcee
website: Fix several broken links (#25808) 2020-08-11 15:24:51 -07:00
Alisdair McDiarmid 96d2265ddb command: Add test for invalid selected workspace
If somehow an invalid workspace has been selected, the Meta.Workspace
method should not return an error, to ensure that we don't break any
existing workflows with invalid workspace names.
2020-08-11 12:33:12 -04:00
Alisdair McDiarmid 8252920e9a command: Allow workspace delete with invalid name
We are validating the workspace name for all workspace commands. Due to
a bug with the TF_WORKSPACE environment variable, it has been possible
to accidentally create a workspace with an invalid name.

This commit removes the valid workspace name check for workspace delete
to allow users to clean up any invalid workspaces.
2020-08-11 12:33:12 -04:00
Alisdair McDiarmid b239570abb command: Always validate workspace name
The workspace name can be overridden by setting a TF_WORKSPACE
environment variable. If this is done, we should still validate the
resulting workspace name; otherwise, we could end up with an invalid and
unselectable workspace.

This change updates the Meta.Workspace function to return an error, and
handles that error wherever necessary.
2020-08-11 12:33:12 -04:00
Alisdair McDiarmid 31f858e1bb
Update CHANGELOG.md 2020-08-11 12:21:54 -04:00
Alisdair McDiarmid ef65f552c8
Merge pull request #25647 from hashicorp/alisdair/remove-stubbed-out-apply-diff-code
command: Remove stubbed-out apply diff output code
2020-08-11 12:18:49 -04:00
Alisdair McDiarmid c5377ca50f
Merge pull request #25523 from hashicorp/alisdair/fix-state-mv-panic
command: Fix state mv for only resource in module
2020-08-11 12:18:32 -04:00
Alisdair McDiarmid 17e1c9dd05 command: Fix state mv for only resource in module
When moving a resource block with multiple instances to a new address
within the same module, we need to ensure that the target module is
present as late as possible. Otherwise, deleting the resource from the
original address triggers pruning, and the module is removed just before
we try to add the resource to it, which causes a crash.

Includes regression test which panics without this code change.
2020-08-11 11:54:35 -04:00
Kristin Laemmert 67ee056c0b
Update CHANGELOG.md 2020-08-11 11:52:19 -04:00
Kristin Laemmert 4729f7f76b
lang/funcs: update cidrsubnet and cidrhost for 64-bit systems (#25517)
* upgrade go-cidr to v1.1.0

* lang/funcs: refactor Subnet and Host functions to support 64-bit systems

* add test cases and remove no-longer-needed validation
2020-08-11 11:51:31 -04:00
Kristin Laemmert 989b58071f
Update CHANGELOG.md 2020-08-11 11:50:31 -04:00
Kristin Laemmert 5964e928dc
states/statefile: consistently sort resources across modules (#25498)
If a statefile had resources with the same name in different modules,
the sort order could be inconsistent between state refreshes. This adds
the module to the Less() function used in sorting and a minimal test to
verify consistent ordering.
2020-08-11 11:50:07 -04:00
Kristin Laemmert 3cfe888057
Update CHANGELOG.md 2020-08-11 11:49:26 -04:00
Kristin Laemmert 30142b02e3
Update CHANGELOG.md 2020-08-11 11:48:27 -04:00
Kristin Laemmert df4627fecb
configs: include "providers" when overriding modules (#25496) 2020-08-11 11:46:40 -04:00
Kristin Laemmert 6621501ae3
state: remove deprecated state package (#25490)
Most of the state package has been deprecated by the states package.
This PR replaces all the references to the old state package that
can be done simply - the low-hanging fruit.

* states: move state.Locker to statemgr

The state.Locker interface was a wrapper around a statemgr.Full, so
moving this was relatively straightforward.

* command: remove unnecessary use of state package for writing local terraform state files

* move state.LocalState into terraform package

state.LocalState is responsible for managing terraform.States, so it
made sense (to me) to move it into the terraform package.

* slight change of heart: move state.LocalState into clistate instead of
terraform
2020-08-11 11:43:01 -04:00
Kristin Laemmert adf5cde180
Update CHANGELOG.md 2020-08-11 11:25:49 -04:00
Kristin Laemmert 86e9ba3d65
* backend/local: push responsibility for unlocking state into individual operations
* unlock the state if Context() has an error, exactly as backend/remote does today
* terraform console and terraform import will exit before unlocking state in case of error in Context()
* responsibility for unlocking state in the local backend is pushed down the stack, out of backend.go and into each individual state operation
* add tests confirming that state is not locked after apply and plan

* backend/local: add checks that the state is unlocked after operations

This adds tests to plan, apply and refresh which validate that the state
is unlocked after all operations, regardless of exit status. I've also
added specific tests that force Context() to fail during each operation
to verify that locking behavior specifically.
2020-08-11 11:23:42 -04:00
Petros Kolyvas 50b2f0f9b2
Fix sidebar link for Terraform standard backends to include link to Kubernetes backend docs (#25792)
* website/layouts/backend-types.erb

* Update backend-types.erb
2020-08-10 20:25:14 -03:00
Nick Fagerlund 30b983e1e8 website: Move provisioners into language section of nav sidebar 2020-08-10 14:18:31 -07:00
Chris Griggs 2fc26a9691
Merge pull request #25789 from hashicorp/cgriggs01-pdp-docs
[Website] Provider Dev Program Guide
2020-08-10 13:32:56 -07:00
Petros Kolyvas b9cf673bea
Merge pull request #25786 from hashicorp/0.13-docs-fixups
Small docs fix for broken link
2020-08-10 16:54:28 -03:00
Kristin Laemmert a8d9809234
terraform-bundle: re-enable e2e tests (#25516) 2020-08-10 15:17:47 -04:00
Chris Griggs 1b30656df4
Update website/guides/terraform-provider-development-program.html.md
Co-authored-by: Tony Carmichael <1105554+aicarmic@users.noreply.github.com>
2020-08-10 12:08:42 -07:00
Chris Griggs a8f98b8a78 update asset path 2020-08-10 12:06:50 -07:00
hashicorp-ci 73fc1c451d Cleanup after v0.13.0 release 2020-08-10 18:04:10 +00:00
hashicorp-ci 4feec2357e
Release v0.13.0 2020-08-10 17:46:08 +00:00
Chris Griggs d08b31d3d9 final fmt changes to guide 2020-08-10 09:56:45 -07:00
Petros Kolyvas 30c50a3b33 Small docs fix for broken link 2020-08-10 13:29:48 -03:00
Chris Griggs 459b7a8326 PDP initial changes 2020-08-10 07:09:10 -07:00
Nicolas Vogel 8f42f0fa77
Fix documentation example for the indent function
We must use interpolation, using the %{} directive will trigger the following error  "indent" is not a valid template control keyword
2020-08-10 11:45:28 +02:00
Nick Fagerlund 7bc75a1804 website: Edits to updated Registry documentation
- Edits to registry overview
- Add index link as 'overview' (header links are semi-invisible)
- move providers/overview.html to providers/index.html
- Edits to providers overview
- fix filename of os-arch
- edits to provider publishing
2020-08-07 22:40:04 -07:00
Tony Carmichael cde98a3172 website: Update Registry documentation for Terraform 0.13 release
Co-authored-by: Tom Bamford <tbamford@hashicorp.com>
2020-08-07 22:40:04 -07:00
James Bardin 99cd3ab223 fix command tests
A number of tests had invalid configs or providers, but were never
properly validated
2020-08-07 14:13:57 -04:00