This project is mirrored from https://:*****@github.com/hashicorp/terraform.git.
Pull mirroring failed .
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
Repository mirroring has been paused due to too many failed attempts. It can be resumed by a project maintainer.
- 29 Jan, 2019 4 commits
-
-
Radek Simko authored
-
Radek Simko authored
vendor: Fix incorrect checksums + run 'go mod verify'
-
Radek Simko authored
-
Radek Simko authored
-
- 28 Jan, 2019 5 commits
-
-
Kristin Laemmert authored
* command/show: add support for -json output for state * command/jsonconfig: do not marshal empty count/for each expressions * command/jsonstate: continue gracefully if the terraform version is somehow missing from state
-
Paul Tyng authored
Copy TF version to helper/schema provider
-
Paul Tyng authored
-
Radek Simko authored
disco: Set transport early (during initialization)
-
Radek Simko authored
-
- 25 Jan, 2019 5 commits
-
-
Martin Atkins authored
Historically helper/schema did not support non-primitive map attributes because they cannot be represented unambiguously in flatmap. When we initially implemented CoreConfigSchema here we mapped that situation to a nested block of mode NestingMap, even though that'd never worked until now, assuming that it'd be harmless because providers wouldn't be using it. It turns out that some providers are, in fact, incorrectly populating a TypeMap schema with Elem: &schema.Resource, apparently under the false assumption that it would constrain the keys allowed in the map. In practice, helper/schema has just been ignoring this and treating such attributes as map of string. (#20076) In order to preserve the behavior of these existing incorrectly-specified attribute definitions, here we mimic the helper/schema behavior by presenting as an attribute of type map(string). These attributes have also been shown in some documentation as nested blocks (with no equals sign), so that'll need to be fixed in user configurations as they upgrade to Terraform 0.12. However, the existing upgrade tool rules will take care of that as a natural consequence of the name being indicated as an attribute in the schema, rather than as a block type. This fixes #20076.
-
Martin Atkins authored
In prior versions, we recommended using hash functions in conjunction with the file function as an idiom for detecting changes to upstream blobs without fetching and comparing the whole blob. That approach relied on us being able to return raw binary data from file(...). Since Terraform strings pass through intermediate representations that are not binary-safe (e.g. the JSON state), there was a risk of string corruption in prior versions which we have avoided for 0.12 by requiring that file(...) be used only with UTF-8 text files. The specific case of returning a string and immediately passing it into another function was not actually subject to that corruption risk, since the HIL interpreter would just pass the string through verbatim, but this is still now forbidden as a result of the stricter handling of file(...). To avoid breaking these use-cases, here we introduce variants of the hash functions a with "file" prefix that take a filename for a disk file to hash rather than hashing the given string directly. The configuration upgrade tool also now includes a rule to detect the documented idiom and rewrite it into a single function call for one of these new functions. This does cause a bit of function sprawl, but that seems preferable to introducing more complex rules for when file(...) can and cannot read binary files, making the behavior of these various functions easier to understand in isolation.
-
Martin Atkins authored
These all follow the pattern of creating a hash and converting it to a string using some encoding function, so we can write this implementation only once and parameterize it with a hash factory function and an encoding function. This also includes a new test for the sha512 function, which was previously missing a test and, it turns out, actually computing sha256 instead.
-
Kristin Laemmert authored
* command/jsonplan: sort resources by address * command/show: extend test case to include resources with count * command/json*: document resource ordering as consistent but undefined
-
Martin Atkins authored
This fixes some consistency problems with how number strings were parsed in the msgpack decoder vs other situations. This commit also includes an upgrade of HCL2 to use this new cty function, though there's no change in behavior here since the new function is functionally equivalent to what it replaced.
-
- 24 Jan, 2019 7 commits
-
-
Kristin Laemmert authored
* terraform_version is now included in state * provisioner "name" is now provisioner "type"
-
Sander van Harmelen authored
-
Sander van Harmelen authored
backend/remote: make sure we show the correct error
-
James Bardin authored
handle empty map values
-
James Bardin authored
verify that changes to defaults are detected
-
James Bardin authored
If there were no matching keys, and there was no diff at all, don't set a zero count for the container. Normally Providers can't reliably detect empty vs unset here, but there are some cases that worked.
-
Kristin Laemmert authored
* command/jsonplan: fix panic when filteredAfter is null * command/jsonconfig: provider short name is required to properly look up resource schema
-
- 23 Jan, 2019 15 commits
-
-
Martin Atkins authored
Since terraform-bundle is just a different frontend to Terraform's module installer, it is subject to the same installation constraints as Terraform itself. Terraform 0.12 cannot install providers targeting Terraform 0.11 and earlier, and so therefore terraform-bundle built with Terraform 0.12 cannot either. A build of terraform-bundle from the v0.11 line must be used instead. Without this change, the latest revisions of terraform-bundle would install plugins for Terraform 0.12 to bundle along with Terraform 0.10 or 0.11, which will not work at runtime due to the plugin protocol mismatch. Until now, terraform-bundle was incorrectly labelled with its own version number even though in practice it has no version identity separate from Terraform itself. Part of this change, then, is to make the terraform-bundle version match the Terraform version it was built against, though any prior builds will of course continue to refer to themselves as 0.0.1. If asked to create a bundle for a version of Terraform v0.12 or greater, an error will be returned instructing the user to use a build from the v0.11 branch or one of the v0.11.x tags in order to bundle those versions. This also includes a small fix for a bug where the tool would not fail properly when the requested Terraform version is not available for installation, instead just producing a zip file with no "terraform" executable inside at all. Now it will fail, allowing automated build processes to detect it and not produce a broken archive for distribution.
-
James Bardin authored
Our new diff handling no longer requires stripping the empty diffs out, and provider may be relying on some of the empty-value quirks in helper/schema.
-
James Bardin authored
-
James Bardin authored
Missing prefix in map recount. This generally passes tests since the actual count should already be there and be correct, then ethe extra key is ignored by the shims.
-
Kristin Laemmert authored
* command/show: properly marshal attribute values to json marshalAttributeValues in jsonstate and jsonplan packages was returning a cty.Value, which json/encoding could not marshal. These functions now convert those cty.Values into json.RawMessages. * command/jsonplan: planned values should include resources that are not changing * command/jsonplan: return a filtered list of proposed 'after' attributes Previously, proposed 'after' attributes were not being shown if the attributes were not WhollyKnown. jsonplan now iterates through all the `after` attributes, omitting those which are not wholly known. The same was roughly true for after_unknown, and that structure is now correctly populated. In the future we may choose to filter the after_unknown structure to _only_ display unknown attributes, instead of all attributes. * command/jsonconfig: use a unique key for providers so that aliased providers don't get munged together This now uses the same "provider" key from configs.Module, e.g. `providername.provideralias`. * command/jsonplan: unknownAsBool needs to iterate through objects that are not wholly known * command/jsonplan: properly display actions as strings according to the RFC, instead of a plans.Action string. For example: a plans.Action string DeleteThenCreate should be displayed as ["delete", "create"] Tests have been updated to reflect this. * command/jsonplan: return "null" for unknown list items. The length of a list could be meaningful on its own, so we will turn unknowns into "null". The same is less likely true for maps and objects, so we will continue to omit unknown values from those.
-
Radek Simko authored
command/format: Add test to cover update of sensitive field
-
Radek Simko authored
-
Radek Simko authored
command/format: Fix nested (JSON) object formatting
-
Radek Simko authored
-
Sander van Harmelen authored
Previously we would show two errors when there was a version constraint error. But of course one is enough.
-
Tom Harvey authored
-
Radek Simko authored
-
Radek Simko authored
-
Martin Atkins authored
The SDK uses only the native int and float64 types internally for values that are specified as being "number" in schema, so for SDK purposes only a float64 level of precision is significant. To avoid any weirdness introduced as we shim and un-shim numbers, we'll reduce floating point numbers to float64 precision before comparing them to try to mimic the result the SDK itself would've gotten from comparing its own float64 versions of these values using the Go "==" operator.
-
James Bardin authored
New Diff.Apply method
-
- 22 Jan, 2019 4 commits
-
-
Martin Atkins authored
Due to various inprecisions in the old SDK implementation, applying the generated diff can potentially make changes to the data structure that have no real effect, such as replacing an empty list with a null list or vice-versa. Although we can't totally eliminate such diff noise, here we attempt to avoid it in situations where there are _only_ meaningless changes -- where the prior state and planned state are equivalent -- by just echoing back the prior state verbatim to ensure that Terraform will treat it as a noop change. If there _are_ some legitimate changes then the result may still contain meaningless changes alongside it, but that is just a cosmetic problem for the diff renderer, because the meaningless changes will be ignored altogether during a subsequent apply anyway. The primary goal here is just to ensure we can converge on a fixpoint when there are no explicit changes in the configuration.
-
Martin Atkins authored
This is a first pass of an "approximately equal" function that tries to mimic the reduced precision caused by the field reader abstraction in helper/schema so that we can distinguish between meaningful changes to the proposed new state and incidental ones that just result from the loss of precision in the SDK implementation.
-
James Bardin authored
One terraform test was broken when the result became more correct.
-
James Bardin authored
-