We stash the locals in the module state in a map that is ignored for JSON
serialization. We don't include locals in the persisted state because they
can be trivially recomputed and this allows us to assume that they will
pass through verbatim, without any normalization or other transforms
caused by the JSON serialization.
From a user standpoint a local is just a named alias for an expression,
so it's desirable that the result passes through here in as raw a form
as possible, so it behaves as closely as possible to simply using the
given expression directly.
A local value is similar to an output in that it exists only within state
and just always evaluates its value as best it can with the current state.
Therefore it has a single graph node type for all walks, which will
deal with that evaluation operation.
* update plugin/provider to make clear this section isn't needed for regular use
* add some links and notes about getting started
* remove the mention of binaries... I 'm not sure it's needed yet
* 'Installing Terraform Providers' section
* sometimes I can't words good
* move the 'installing providers' block
* cleanup of terms
* copy that update to plugins/provider too
This changeset performs the following:
- Updates `masterzen/winrm` vendor to include change from (https://github.com/masterzen/winrm/pull/73)
- Updates `dylanmei/winrmtest` vendor to include change from (https://github.com/dylanmei/winrmtest/pull/4)
- Updates `packer-community/winrmcp` vendor to include the removal of the `masterzen/winrm/winrm` sub-class as a result of the `winrm` CLI tool being removed from the `masterzen/winrm` repository.
- Changes `communicator/winrm/communicator.go` to conform to the new ABI in the `masterzen/winrm` library.
This should completely remove any LGPL licensed dependencies inside of the Terraform project.
```
$ make test
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /terraform/vendor/)
2017/08/20 13:40:16 Generated command/internal_plugin_list.go
go test -i $(go list ./... | grep -v '/terraform/vendor/' | grep -v '/builtin/bins/') || exit 1
echo $(go list ./... | grep -v '/terraform/vendor/' | grep -v '/builtin/bins/') | \
xargs -t -n4 go test -timeout=60s -parallel=4
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform github.com/hashicorp/terraform/backend github.com/hashicorp/terraform/backend/atlas github.com/hashicorp/terraform/backend/init
ok github.com/hashicorp/terraform 0.011s
ok github.com/hashicorp/terraform/backend 0.020s
ok github.com/hashicorp/terraform/backend/atlas 0.634s
ok github.com/hashicorp/terraform/backend/init 0.007s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/backend/legacy github.com/hashicorp/terraform/backend/local github.com/hashicorp/terraform/backend/remote-state github.com/hashicorp/terraf
orm/backend/remote-state/azure
ok github.com/hashicorp/terraform/backend/legacy 0.009s
ok github.com/hashicorp/terraform/backend/local 0.211s
ok github.com/hashicorp/terraform/backend/remote-state 0.006s
ok github.com/hashicorp/terraform/backend/remote-state/azure 0.010s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/backend/remote-state/consul github.com/hashicorp/terraform/backend/remote-state/inmem github.com/hashicorp/terraform/backend/remote-state/s
3 github.com/hashicorp/terraform/backend/remote-state/swift
ok github.com/hashicorp/terraform/backend/remote-state/consul 0.007s
ok github.com/hashicorp/terraform/backend/remote-state/inmem 0.013s
ok github.com/hashicorp/terraform/backend/remote-state/s3 0.007s
ok github.com/hashicorp/terraform/backend/remote-state/swift 0.013s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/builtin/providers/test github.com/hashicorp/terraform/builtin/provisioners/chef github.com/hashicorp/terraform/builtin/provisioners/file gi
thub.com/hashicorp/terraform/builtin/provisioners/local-exec
ok github.com/hashicorp/terraform/builtin/providers/test 1.544s
ok github.com/hashicorp/terraform/builtin/provisioners/chef 0.017s
ok github.com/hashicorp/terraform/builtin/provisioners/file 0.006s
ok github.com/hashicorp/terraform/builtin/provisioners/local-exec 0.078s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/builtin/provisioners/remote-exec github.com/hashicorp/terraform/builtin/provisioners/salt-masterless github.com/hashicorp/terraform/command
github.com/hashicorp/terraform/command/clistate
ok github.com/hashicorp/terraform/builtin/provisioners/remote-exec 1.037s
ok github.com/hashicorp/terraform/builtin/provisioners/salt-masterless 0.008s
ok github.com/hashicorp/terraform/command 14.589s
? github.com/hashicorp/terraform/command/clistate [no test files]
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/command/e2etest github.com/hashicorp/terraform/command/format github.com/hashicorp/terraform/communicator github.com/hashicorp/terraform/co
mmunicator/remote
ok github.com/hashicorp/terraform/command/e2etest 3.729s
ok github.com/hashicorp/terraform/command/format 0.004s
ok github.com/hashicorp/terraform/communicator 0.005s
ok github.com/hashicorp/terraform/communicator/remote 0.003s [no tests to run]
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/communicator/shared github.com/hashicorp/terraform/communicator/ssh github.com/hashicorp/terraform/communicator/winrm github.com/hashicorp/
terraform/config
ok github.com/hashicorp/terraform/communicator/shared 0.007s
ok github.com/hashicorp/terraform/communicator/ssh 0.016s
ok github.com/hashicorp/terraform/communicator/winrm 0.018s
ok github.com/hashicorp/terraform/config 0.213s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/config/module github.com/hashicorp/terraform/dag github.com/hashicorp/terraform/digraph github.com/hashicorp/terraform/flatmap
ok github.com/hashicorp/terraform/config/module 0.044s
ok github.com/hashicorp/terraform/dag 0.010s
ok github.com/hashicorp/terraform/digraph 0.002s
ok github.com/hashicorp/terraform/flatmap 0.002s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/acctest github.com/hashicorp/terraform/helper/config github.com/hashicorp/terraform/helper/copy github.com/hashicorp/terraform/helpe
r/diff
? github.com/hashicorp/terraform/helper/acctest [no test files]
ok github.com/hashicorp/terraform/helper/config 0.005s
? github.com/hashicorp/terraform/helper/copy [no test files]
ok github.com/hashicorp/terraform/helper/diff 0.005s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/encryption github.com/hashicorp/terraform/helper/experiment github.com/hashicorp/terraform/helper/hashcode github.com/hashicorp/terr
aform/helper/hilmapstructure
? github.com/hashicorp/terraform/helper/encryption [no test files]
ok github.com/hashicorp/terraform/helper/experiment 0.001s
ok github.com/hashicorp/terraform/helper/hashcode 0.001s
? github.com/hashicorp/terraform/helper/hilmapstructure [no test files]
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/logging github.com/hashicorp/terraform/helper/mutexkv github.com/hashicorp/terraform/helper/pathorcontents github.com/hashicorp/terr
aform/helper/resource
? github.com/hashicorp/terraform/helper/logging [no test files]
ok github.com/hashicorp/terraform/helper/mutexkv 0.055s
ok github.com/hashicorp/terraform/helper/pathorcontents 0.002s
ok github.com/hashicorp/terraform/helper/resource 2.659s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/schema github.com/hashicorp/terraform/helper/shadow github.com/hashicorp/terraform/helper/signalwrapper github.com/hashicorp/terrafo
rm/helper/slowmessage
ok github.com/hashicorp/terraform/helper/schema 0.063s
ok github.com/hashicorp/terraform/helper/shadow 0.156s
ok github.com/hashicorp/terraform/helper/signalwrapper 0.022s
ok github.com/hashicorp/terraform/helper/slowmessage 0.102s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/structure github.com/hashicorp/terraform/helper/validation github.com/hashicorp/terraform/helper/variables github.com/hashicorp/terr
aform/helper/wrappedreadline
ok github.com/hashicorp/terraform/helper/structure 0.004s
ok github.com/hashicorp/terraform/helper/validation 0.004s
ok github.com/hashicorp/terraform/helper/variables 0.006s
? github.com/hashicorp/terraform/helper/wrappedreadline [no test files]
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/helper/wrappedstreams github.com/hashicorp/terraform/moduledeps github.com/hashicorp/terraform/plugin github.com/hashicorp/terraform/plugin
/discovery
? github.com/hashicorp/terraform/helper/wrappedstreams [no test files]
ok github.com/hashicorp/terraform/moduledeps 0.004s
ok github.com/hashicorp/terraform/plugin 0.046s
ok github.com/hashicorp/terraform/plugin/discovery 0.029s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/repl github.com/hashicorp/terraform/scripts github.com/hashicorp/terraform/state github.com/hashicorp/terraform/state/remote
ok github.com/hashicorp/terraform/repl 0.006s
ok github.com/hashicorp/terraform/scripts 0.008s
ok github.com/hashicorp/terraform/state 2.617s
ok github.com/hashicorp/terraform/state/remote 0.025s
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/terraform github.com/hashicorp/terraform/tools/terraform-bundle
go test -timeout=60s -parallel=4 github.com/hashicorp/terraform/terraform github.com/hashicorp/terraform/tools/terraform-bundle
ok github.com/hashicorp/terraform/terraform 4.222s
? github.com/hashicorp/terraform/tools/terraform-bundle [no test files]
```
The backend has been renamed. Using the old name in the config will
trigger a deprecation warning, but the implementation and the
documentation is the same.
Added locking support via blob leasing (requires that an empty state is
created before any lock can be acquired.
Added support for "environments" in much the same way as the S3 backend.
Equality of schema.Sets gets tricky when dealing with nested sets -
Set.Equal only superficially compares the underlying maps and hence any
sets nested under the root sets cause issues.
This adds a simple method, HashEqual, that does a top-level hash
comparison, helping to work around this without any complex re-invention
of things like reflect.DeepEqual.
Of course, in order to make effective use of this function, the user
needs to make sure they are properly hashing their nested sets, however
this is trivial with things like HashResource.