Commit Graph

23211 Commits

Author SHA1 Message Date
James Bardin a5a5e1aed5 update go-plugin
All our changes have been merged, so this moved the dependency back to
master
2018-12-12 11:34:19 -05:00
Radek Simko 7d184cb6af
Update CHANGELOG.md 2018-12-12 14:42:18 +00:00
Radek Simko 4b55cf0613
Merge pull request #19609 from hashicorp/b-cmd-fmt-force-new
command/format: Fix rendering of force-new updates
2018-12-12 14:41:47 +00:00
Radek Simko b28efa0bf3
command/format: Fix tests 2018-12-12 14:28:12 +00:00
Radek Simko 0b981fa641
command/format: Fix rendering of force-new updates 2018-12-12 14:19:17 +00:00
Radek Simko 9a1f79a7da
Update CHANGELOG.md 2018-12-11 20:45:14 +00:00
Radek Simko ef323c42e6
Merge pull request #19611 from hashicorp/b-cmd-fmt-fix-nested-blocks
command/format: Fix rendering of nested blocks during update
2018-12-11 20:44:40 +00:00
Radek Simko 0f6934dfa7
Update CHANGELOG.md 2018-12-11 20:31:19 +00:00
Radek Simko 9be0180380
Merge pull request #19610 from hashicorp/b-fix-destroy-count
backend/local: Fix incorrect destroy/update count on apply
2018-12-11 20:30:44 +00:00
Radek Simko fe117e9f02
command/format: Fix rendering of nested blocks during update 2018-12-11 18:07:21 +00:00
Radek Simko e55079abc9
backend/local: Fix incorrect destroy/update count on apply 2018-12-11 18:06:53 +00:00
James Bardin 4ce7516be5
Merge pull request #19597 from hashicorp/jbardin/ci
Update go mock version, Makefile, etc. for tests
2018-12-11 12:25:53 -05:00
Radek Simko 663f3dc02e
Merge pull request #19608 from hashicorp/t-cmd-fmt
command/format: Add more tests to cover non-primitive fields
2018-12-11 15:53:08 +00:00
Radek Simko 2df886397b
command/format: Add more tests to cover non-primitive fields 2018-12-11 14:16:25 +00:00
Radek Simko e3e459a8d4
command/format: Restructure tests 2018-12-11 14:16:17 +00:00
Brian Flad 2c9ebbddff
Update CHANGELOG for #19571 2018-12-10 19:29:39 -05:00
Brian Flad 058434d28b
Merge pull request #19571 from hashicorp/f-backend-s3-other-endpoints
backend/s3: Support DynamoDB, IAM, and STS endpoint configurations
2018-12-10 19:28:01 -05:00
James Bardin 69f6277311 remove vendor-status 2018-12-10 17:30:11 -05:00
James Bardin a24e307af0 remove govendor 2018-12-10 17:16:42 -05:00
James Bardin e706f34794 generate new plugin proto mocks 2018-12-10 17:16:13 -05:00
James Bardin f5a2d49eef update go mock 2018-12-10 17:15:53 -05:00
Chris Doherty b4c28a9789
Merge pull request #19561 from invertigo/patch-1
remove approximate release date
2018-12-10 13:29:17 -08:00
Tom Harvey d24df5c86a
Updating to include #19465 2018-12-10 21:25:24 +00:00
Tom Harvey 383bc98f5c
backend/azurerm: Support for authenticating using the Azure CLI (#19465)
* Upgrading to 2.0.0 of github.com/hashicorp/go-azure-helpers

* Support for authenticating using Azure CLI

* backend/azurerm: support for authenticating using the Azure CLI
2018-12-10 21:23:30 +00:00
Sander van Harmelen a475b766de
Update CHANGELOG.md 2018-12-10 21:11:37 +01:00
James Bardin 8ab5698e2a
Merge pull request #19587 from hashicorp/jbardin/safe-appends
don't modify argument slices
2018-12-10 15:10:02 -05:00
Sander van Harmelen ecc93c9889
Merge pull request #19589 from hashicorp/svh/f-service-discovery
core: enhance service discovery
2018-12-10 21:09:56 +01:00
Sander van Harmelen a5a2156584 core: enhance service discovery
This PR improves the error handling so we can provide better feedback about any service discovery errors that occured.

Additionally it adds logic to test for specific versions when discovering a service using `service.vN`. This will enable more informational errors which can indicate any version incompatibilities.
2018-12-10 20:52:05 +01:00
Chris Griggs 8ed484ee1a
Merge pull request #19594 from cgriggs01/cgriggs01-community
[Website] adding six new community providers
2018-12-10 11:32:00 -08:00
cgriggs01 41897bb437 six new community providers 2018-12-10 11:13:45 -08:00
Radek Simko c77fe806f5
Merge pull request #19590 from hashicorp/t-cmd-format
command/format: Add tests for ResourceChange renderer
2018-12-10 18:22:00 +00:00
Radek Simko 49e7026bdd
command/format: Add tests for ResourceChange renderer 2018-12-10 17:42:45 +00:00
James Bardin f408df9da3 update CHANGELOG.md 2018-12-10 12:26:40 -05:00
James Bardin 3d6ec09a83
Merge pull request #19552 from olindata/bugfix/setting-sets-in-list
helper/schema: Fix setting a set in a list caused error
2018-12-10 12:25:23 -05:00
James Bardin b5de50c0a2 don't modify argument slices
There were a couple spots where argument slices weren't being copied
before `append` was called, which could possibly modify the caller's
slice data.
2018-12-10 11:59:27 -05:00
Martin Atkins b1ed146931 core: Attach schemas to nodes created by ResourceCountTransformer
Previously we were only doing this in the case where count wasn't set at
all.
2018-12-07 17:05:36 -08:00
Martin Atkins f9fef56167 helper/resource: print full diagnostics for operation errors in tests
This causes the output to include additional helpful context such as
the values of variables referenced in the config, etc. The output is in
the same format as normal Terraform CLI error output, though we don't
retain a source code cache in this codepath so it will not include a
source code snippet.
2018-12-07 17:05:36 -08:00
Martin Atkins 53926ea581 plugin: Fix incorrect trace log message in provider Close
Was incorrectly printing out "PlanResourceChange" instead of "Close".
2018-12-07 17:05:36 -08:00
Martin Atkins f93f7e5b5c configs/configupgrade: Remove redundant list brackets
In early versions of Terraform where the interpolation language didn't
have any real list support, list brackets around a single string was the
signal to split the string on a special uuid separator to produce a list
just in time for processing, giving expressions like this:

    foo = ["${test_instance.foo.*.id}"]

Logically this is weird because it looks like it should produce a list
of lists of strings. When we added real list support in Terraform 0.7 we
retained support for this behavior by trimming off extra levels of list
during evaluation, and inadvertently continued relying on this notation
for correct type checking.

During the Terraform 0.10 line we fixed the type checker bugs (a few
remaining issues notwithstanding) so that it was finally possible to
use the more intuitive form:

    foo = "${test_instance.foo.*.id}"

...but we continued trimming off extra levels of list for backward
compatibility.

Terraform 0.12 finally removes that compatibility shim, causing redundant
list brackets to be interpreted as a list of lists.

This upgrade rule attempts to identify situations that are relying on the
old compatibility behavior and trim off the redundant extra brackets. It's
not possible to do this fully-generally using only static analysis, but
we can gather enough information through or partial type inference
mechanism here to deal with the most common situations automatically and
produce a TF-UPGRADE-TODO comment for more complex scenarios where the
user intent isn't decidable with only static analysis.

In particular, this handles by far the most common situation of wrapping
list brackets around a splat expression like the first example above.
After this and the other upgrade rules are applied, the first example
above will become:

    foo = test_instance.foo.*.id
2018-12-07 17:05:36 -08:00
Martin Atkins d9603d5bc5 configs/configupgrade: Do type inference with input variables
By collecting information about the input variables during analysis, we
can return approximate type information for any references to those
variables in expressions.

Since Terraform 0.11 allowed maps of maps and lists of lists in certain
circumstances even though this was documented as forbidden, we
conservatively return collection types whose element types are unknown
here, which allows us to do shallow inference on them but will cause
us to get an incomplete result if any operations are performed on
elements of the list or map value.
2018-12-07 17:05:36 -08:00
Martin Atkins a2d9634dbf configs/configupgrade: Expression type inference
Although we can't do fully-precise type inference with access only to a
single module's configuration, we can do some approximate inference using
some clues within the module along with our resource type schemas.

This depends on HCL's ability to pass through type information even if the
input values are unknown, mapping our partial input type information into
partial output type information by evaluating the same expressions.

This will allow us to do some upgrades that require dynamic analysis to
fully decide, by giving us three outcomes: needed, not needed, or unknown.
If it's unknown then that'll be our prompt to emit a warning for the user
to make a decision.
2018-12-07 17:05:36 -08:00
Martin Atkins e63a1dfb96 lang: EvalExpr only convert if wantType is not dynamic
This actually seems to be a bug in the underlying cty Convert function
since converting to cty.DynamicPseudoType should always just return the
input verbatim, but it seems like it's actually converting unknown values
of any type to be cty.DynamicVal, losing the type information.

We should eventually fix this in cty too, but having this extra check in
the Terraform layer is harmless and allows us to make progress without
context-switching.
2018-12-07 17:05:36 -08:00
Martin Atkins bf25e12792 vendor: upgrade github.com/hashicorp/hcl2
This includes a change to improve the precision of types returned from
splat expressions when a source value is unknown.
2018-12-07 17:05:36 -08:00
--global 32d0c6faf9 release: clean up after v0.12.0-alpha4 2018-12-08 00:50:51 +00:00
--global 2c36829d32
v0.12.0-alpha4 2018-12-07 20:36:48 +00:00
Martin Atkins 55469cd416 helper/resource: Get schemas from Terraform context
Previously the test harness was preloading schemas from the providers
before running any test steps.

Since terraform.NewContext already deals with loading provider schemas,
we can instead just use the schemas it loaded for our shimming needs,
avoiding the need to reimplement the schema lookup behavior and thus
the need to create a throwaway provider instance with which to do it.
2018-12-07 08:12:59 -08:00
Martin Atkins a4991c5780 helper/resource: Create a separate provider instance each call
Previously we were running the factory function only once when
constructing the provider resolver, which means that all contexts created
from that resolver share the same provider instance.

Instead now we will call the given factory function once for each
instantiation, ensuring that each caller ends up with a separate object
as would be the case in real-world use.
2018-12-07 08:12:59 -08:00
Sander van Harmelen 70689f5aa1
Merge pull request #19555 from hashicorp/svh/f-entitlements
backend/remote: use entitlements to select backends
2018-12-07 09:13:35 +01:00
Brian Flad 9a3b02cd6c
backend/s3: Support DynamoDB, IAM, and STS endpoint configurations
This change enables a few related use cases:
* AWS has partitions outside Commercial, GovCloud (US), and China, which are the only endpoints automatically handled by the AWS Go SDK. DynamoDB locking and credential verification can not currently be enabled in those regions.
* Allows usage of any DynamoDB-compatible API for state locking
* Allows usage of any IAM/STS-compatible API for credential verification
2018-12-07 03:10:51 -05:00
Martin Atkins e8f9fad0e3 states/statemgr: use -mod=vendor to run the state locking helper
This ensures that we test using the same source as we're using everywhere
else, and more tactically also ensures that when running in Travis-CI we
won't try to download all of the dependencies of Terraform during this
test.

In the long run we will look for a more global solution to this, rather
than adding this to all of our embedded "go" command calls directly, but
this is intended as a low-risk solution to get the build working again in
the mean time.
2018-12-06 16:50:06 -08:00