Commit Graph

2852 Commits

Author SHA1 Message Date
Emil Hessman 6d9c4ea78f terraform: fix ContextPlan test failure on Windows
The attributes in the diff are %#v-formatted. This means that all `\`
characters in the Windows paths are escaped with a `\`. We need to
escape the `\` characters in cwd, module, and root before doing any
comparison work.

Fixes the following test failure on Windows:

--- FAIL: TestContextPlan_pathVar (0.00s)
        context_test.go:3833: bad:
                DIFF:

                CREATE: aws_instance.foo
                  cwd:    "" => "C:\\Users\\ceh\\src\\github.com\\hashicorp\\terraform\\terraform/barpath"
                  module: "" => "C:\\Users\\ceh\\src\\github.com\\hashicorp\\terraform\\terraform\\test-fixtures\\plan-path-var/foopath"
                  root:   "" => "C:\\Users\\ceh\\src\\github.com\\hashicorp\\terraform\\terraform\\test-fixtures\\plan-path-var/barpath"
                  type:   "" => "aws_instance"

                STATE:

                <no state>

                expected:

                DIFF:

                CREATE: aws_instance.foo
                  cwd:    "" => "C:\Users\ceh\src\github.com\hashicorp\terraform\terraform/barpath"
                  module: "" => "C:\Users\ceh\src\github.com\hashicorp\terraform\terraform\test-fixtures\plan-path-var/foopath"
                  root:   "" => "C:\Users\ceh\src\github.com\hashicorp\terraform\terraform\test-fixtures\plan-path-var/barpath"
                  type:   "" => "aws_instance"

                STATE:

                <no state>
FAIL
exit status 1
FAIL    github.com/hashicorp/terraform/terraform        0.050s
2015-02-04 18:26:42 +01:00
Paul Hinze 26156981d7 Merge pull request #917 from methane/fix-stringer
Fix stringer error on helper/schema/schema.go
2015-02-04 10:09:53 -06:00
Paul Hinze c21907850d Merge pull request #921 from hashicorp/fix-diffreader-map-handling
helper/schema: fix DiffFieldReader map handling
2015-02-04 10:06:13 -06:00
Paul Hinze 4e8e3dad86 DiffFieldReader: filter all '#' fields from sets
Now that readMap filters out '#' fields, when maps are nested in sets,
we exposed a related bug where a set was iterating over nested maps and
expected the '#' key to be present in those nested maps.

By skipping _all_ count fields when iterating over set keys, all is
right with the world again.
2015-02-04 09:25:45 -06:00
Paul Hinze 219aa3e788 helper/schema: fix DiffFieldReader map handling
An `InstanceDiff` will include `ResourceAttrDiff` entries for the
"length" / `#` field of maps. This makes sense, since for something like
`terraform plan` it's useful to see when counts are changing.

The `DiffFieldReader` was not taking these entries into account when
reading maps out, and was therefore incorrectly returning maps that
included an extra `'#'` field, which was causing all sorts of havoc
for providers (extra tags on AWS instances, broken google compute
instance launch, possibly others).

 * fixes #914 - extra tags on AWS instances
 * fixes #883 - general core issue sprouted from #757
 * removes the hack+TODO from #757
2015-02-03 20:17:57 -06:00
Paul Hinze 680fa3c0d8 Update CHANGELOG.md 2015-02-03 16:45:01 -06:00
Paul Hinze 80c5971fd6 Merge pull request #918 from hashicorp/f-aws-main-route-table-association
provider/aws: aws_main_route_table_association
2015-02-03 16:42:13 -06:00
Paul Hinze 4908f94490 Update CHANGELOG.md 2015-02-03 16:20:03 -06:00
Paul Hinze c6ab3b1711 Merge pull request #906 from BashtonLtd/gce_instance_selflink
Expose SelfLink field for GCE instances.
2015-02-03 15:46:46 -06:00
Paul Hinze 90d504a524 Merge pull request #920 from sparkprime/cleanup_service_accounts
Remove service_accounts (legacy dupe of service_account)
2015-02-03 15:29:57 -06:00
Dave Cunningham a07ff4bacb Remove service_accounts (legacy dupe of service_account) 2015-02-03 16:16:41 -05:00
Paul Hinze f852a01c22 providers/aws: docs for aws_main_route_table_association 2015-02-03 15:13:15 -06:00
Paul Hinze 92335b742a provider/aws: aws_main_route_table_association
This resource allows an existing Route Table to be assigned as the
"main" Route Table of a VPC. This means that the Route Table will be
used for any subnets within the VPC without an explicit Route Table
assigned [1].

This is particularly useful in getting an Internet Gateway in place as
the default for a VPC, since the automatically created Main Route Table
does not have one [2].

Note that this resource is an abstraction over an association and does not
map directly to a CRUD-able object in AWS. In order to retain a coherent
"Delete" operation for this resource, we remember the ID of the AWS-created
Route Table and reset the VPC's main Route Table to it when this
resource is deleted.

refs #843, #748

[1] http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Route_Tables.html#RouteTableDetails
[2] http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Internet_Gateway.html#Add_IGW_Routing
2015-02-03 13:47:43 -06:00
INADA Naoki f6367a779a regenerate with new stringer. 2015-02-04 01:54:14 +09:00
Paul Hinze 7df0932443 Merge pull request #910 from patricklucas/no_go_get_vet
Remove 'go get ... vet' from updatedeps target
2015-02-03 10:22:22 -06:00
INADA Naoki 33aa9d3ee8 Fix stringer error on helper/schema/schema.go 2015-02-03 19:33:01 +09:00
Mitchell Hashimoto f6984ce693 Merge pull request #887 from xorl/example_fix
examples: fix output type
2015-02-03 10:29:04 +01:00
Patrick Lucas bcc85be991 Remove 'go get ... vet' from updatedeps target
This package attempts to install itself to GOROOT which will fail for
non-root users. Most users will have already installed the vet tool via a
system package, so it shouldn't be necessary to 'go get' here.

Moreover, the 'vet' make target already checks that it is installed before
running it, running 'go get' if necessary.

This is the output when running 'make updatedeps' as a regular user
without this change:

```
$ make updatedeps
go get -u github.com/mitchellh/gox
go get -u golang.org/x/tools/cmd/stringer
go get -u golang.org/x/tools/cmd/vet
go install golang.org/x/tools/cmd/vet: open /usr/local/go/pkg/tool/linux_amd64/vet: permission denied
make: *** [updatedeps] Error 1
```
2015-02-02 12:17:37 -08:00
Mitchell Hashimoto c18b01fa2a Merge pull request #909 from ceh/hg-local-win-path
config/module: fix HgGetter test failures on Windows
2015-02-02 20:33:19 +01:00
Emil Hessman a8db835a44 config/module: fix HgGetter test failures on Windows
HgGetter tests failed on windows/amd64 using Mercurial version 3.2.4:

--- FAIL: TestHgGetter (0.11s)
        get_hg_test.go:35: err: C:\Program Files\Mercurial\hg.exe exited with 255: abort: file:// URLs can only refer to localhost
--- FAIL: TestHgGetter_branch (0.11s)
        get_hg_test.go:62: err: C:\Program Files\Mercurial\hg.exe exited with 255: abort: file:// URLs can only refer to localhost
FAIL
FAIL    github.com/hashicorp/terraform/config/module    5.615s

This commit fixes the failures by adjusting the file:// URL to a form that
Mercurial expects.
2015-02-02 19:49:57 +01:00
Mitchell Hashimoto cfbf39d1de Merge pull request #907 from ceh/win-urlparse
config/module: fix URL file path handling on Windows
2015-02-02 12:29:58 +01:00
Emil Hessman 5bbfc0d4e2 config/module: fix URL file path handling on Windows
Only adjust the URL Scheme when parsing drive letter file paths on
Windows, don't add a file scheme prefix.
FileDetector is responsible for adding the file scheme prefix.
2015-02-02 12:19:34 +01:00
David Watson 4ec0c34794 Expose SelfLink for GCE instances to allow other resources to reference instances. 2015-02-02 09:46:35 +00:00
Mitchell Hashimoto 2d9dd25493 config/module: fix regression of ignoring forced type if valid URL
/cc @ceh - Does this break Windows at all? This regressed with your
commit (we didn't have test coverage on it). I added a test now, though.
2015-02-01 20:17:56 +01:00
Paul Hinze 86a6008f1b Merge pull request #905 from hashicorp/fix-build-upstream-azure-sdk-change
fix build: upstream azure client change
2015-02-01 10:44:37 -06:00
Paul Hinze 6da9f04c10 fix build: upstream azure client change
looks like https://github.com/MSOpenTech/azure-sdk-for-go/pull/30
changed the API for hosted services, which broke our build.
2015-02-01 10:35:33 -06:00
Paul Hinze 6795d213df Update CHANGELOG.md 2015-02-01 10:05:26 -06:00
Paul Hinze 255d39b01b Merge pull request #898 from bitglue/subnet_update
Avoid unnecessary updating of aws_subnet
2015-02-01 10:01:17 -06:00
Paul Hinze e3a64ef5a5 Merge pull request #903 from hashicorp/updatedeps-without-deplist
Makefile: simplify updatedeps; no need for deplist
2015-02-01 09:53:45 -06:00
Paul Hinze b8fb0c0838 Makefile: simplify updatedeps; no need for deplist
After discussing with the very gracious @cespare over at
https://github.com/cespare/deplist/pull/2 I now understand that we can
pull off the same logic with just `go list`.

The logic is now simpler and more consistent:

 * List out all packages in our repo
 * For each of those packages, list their dependencies
 * Filter out any dependencies that already live in this repo
 * Remove duplicates
 * And fetch the rest. `go get` will work out all transitive dependencies
   from there
2015-01-30 18:29:12 -06:00
Paul Hinze 170ddc4bd4 Update CHANGELOG.md 2015-01-30 17:54:31 -06:00
Paul Hinze 44759903fa Merge pull request #895 from hashicorp/588-gcp-improvements
Multiple gcp improvements and new resources
2015-01-30 16:49:22 -06:00
Paul Hinze d78309694a Update CHANGELOG.md 2015-01-30 16:46:35 -06:00
Paul Hinze 8749d0090a Merge pull request #899 from hashicorp/770-azure-provider
Add Azure provider
2015-01-30 16:36:51 -06:00
Ferran Rodenas f561e2a6a8 Add Azure provider 2015-01-30 16:32:35 -06:00
Paul Hinze 1e03892ff6 Merge pull request #901 from hashicorp/use-deplist-in-make-updatedeps
Makefile: new deps strategy fixes deps in branches
2015-01-30 16:30:51 -06:00
Paul Hinze a764adbf1b Makefile: new deps strategy fixes deps in branches
Currently when running `make updatedeps` from a branch, the dependency
list from master ends up getting used. We tried to work around this in
35490f7812, and got part way there, but
here's what was happening:

 - record the current SHA
 - run `go get -f -u -v ./...` which ends up checking out master
 - master is checked out early in the `go get` process, which means all
   subsequent dependencies are resolved from master
 - re-checkout the recorded SHA
 - run tests

This works in most cases, except when the branch being tested actually
changes the list of dependencies in some way.

Here we move away from letting `go get -v` walk through everything in
`./...`, instead building our own list of dependencies with the help of
`deplist`. We can then filter terraform packages out from the list, so
they don't get touched, and safely update the rest.

This should solve problems like those observed in #899 and #900.

__Note__: had to add a feature to deplist to make this work properly;
see 016ef97111
Working on getting it accepted upstream.
2015-01-30 16:27:54 -06:00
Phil Frost 863fd0c7d2 Avoid unnecessary updating of aws_subnet
If map_public_ip_on_launch was not specified, AWS picks a default of
"0", which is different than the "" in the state file, triggerinng an
update each time. Mark that parameter as Computed, avoiding the update.
2015-01-30 13:17:16 -05:00
Dave Cunningham 6046647f38 Multiple gcp improvements and new resources 2015-01-30 10:32:35 -06:00
Ryan Lewon 2923261ed7 Fix for outputs. 2015-01-28 21:19:52 -08:00
Paul Hinze 6947ba2518 update CHANGELOG.md 2015-01-28 17:28:26 -06:00
Paul Hinze 24c3718ac6 Merge pull request #884 from hashicorp/452-google-secrets-file
[REPACK] #452 providers/google: remove deprecated client secrets file
2015-01-28 17:21:11 -06:00
Mitchell Hashimoto 0c672aa03b Merge pull request #881 from sparkprime/float_fix
helper/schema: add some missing Float cases
2015-01-28 15:19:29 -08:00
Paul Hinze 0396cd1b0c update CHANGELOG.md 2015-01-28 16:29:58 -06:00
Paul Hinze 632fddd96d Merge pull request #874 from bitglue/fix_rds
Fix aws_db_instance to not recreate each time
2015-01-28 16:22:24 -06:00
Paul Hinze 9fff0b1729 providers/google: fix instance creation
with this commit, the google compute instance acceptance tests are
passing

 - remove GOOGLE_CLIENT_FILE requirement from provider tests to finish
   out #452
 - skip extra "#" key that shows up in metadata maps, fixes #757 and
   sprouts #883 to figure out core issue
 - more verbose variablenames in metadata parsing, since it took me
   awhile to grok and i thought there might have been a shadowing bug in
   there for a minute. maybe someday when i'm a golang master i'll be
   smart enough to be comfortable with one-char varnames. :)
2015-01-28 15:50:56 -06:00
stungtoat d3814d6180 providers/google: remove secrets file
fixes #452
2015-01-28 15:47:49 -06:00
Dave Cunningham aa2015ccd0 Fix failing tests 2015-01-28 16:20:14 -05:00
Dave Cunningham 3cbf1a3230 Fix missing import of math 2015-01-28 15:39:32 -05:00
Dave Cunningham 319933f551 Add some tests for TypeFloat 2015-01-28 15:22:47 -05:00