Commit Graph

10793 Commits

Author SHA1 Message Date
James Nugent 75ef7ab636 provider/test: Add more variants of maps
This commit adds a binary for the test provider, and adds a variety of
different types of map to the schema.
2016-06-09 10:49:49 +01:00
James Nugent 074545e536 core: Use .% instead of .# for maps in state
The flatmapped representation of state prior to this commit encoded maps
and lists (and therefore by extension, sets) with a key corresponding to
the number of elements, or the unknown variable indicator under a .# key
and then individual items. For example, the list ["a", "b", "c"] would
have been encoded as:

    listname.# = 3
    listname.0 = "a"
    listname.1 = "b"
    listname.2 = "c"

And the map {"key1": "value1", "key2", "value2"} would have been encoded
as:

    mapname.# = 2
    mapname.key1 = "value1"
    mapname.key2 = "value2"

Sets use the hash code as the key - for example a set with a (fictional)
hashcode calculation may look like:

    setname.# = 2
    setname.12312512 = "value1"
    setname.56345233 = "value2"

Prior to the work done to extend the type system, this was sufficient
since the internal representation of these was effectively the same.
However, following the separation of maps and lists into distinct
first-class types, this encoding presents a problem: given a state file,
it is impossible to tell the encoding of an empty list and an empty map
apart. This presents problems for the type checker during interpolation,
as many interpolation functions will operate on only one of these two
structures.

This commit therefore changes the representation in state of maps to use
a "%" as the key for the number of elements. Consequently the map above
will now be encoded as:

    mapname.% = 2
    mapname.key1 = "value1"
    mapname.key2 = "value2"

This has the effect of an empty list (or set) now being encoded as:

    listname.# = 0

And an empty map now being encoded as:

    mapname.% = 0

Therefore we can eliminate some nasty guessing logic from the resource
variable supplier for interpolation, at the cost of having to migrate
state up front (to follow in a subsequent commit).

In order to reduce the number of potential situations in which resources
would be "forced new", we continue to accept "#" as the count key when
reading maps via helper/schema. There is no situation under which we can
allow "#" as an actual map key in any case, as it would not be
distinguishable from a list or set in state.
2016-06-09 10:49:42 +01:00
James Nugent cb9ef298f3 core: Defeat backward compatibilty in mapstructure
The mapstructure library has a regrettable backward compatibility
concern whereby a WeakDecode of []interface{}{} into a target of
map[string]interface{} yields an empty map rather than an error. One
possibility is to switch to using Decode instead of WeakDecode, but this
loses the nice handling of type conversion, requiring a large volume of
code to be added to Terraform or HIL in order to retain that behaviour.

Instead we add a DecodeHook to our usage of the mapstructure library
which checks for decoding []interface{}{} or []string{} into a map and
returns an error instead.

This has the effect of defeating the code added to retain backwards
compatibility in mapstructure, giving us the correct (for our
circumstances) behaviour of Decode for empty structures and the type
conversion of WeakDecode.

The code is identical to that in the HIL library, and packaged into a
helper.
2016-06-08 18:38:41 +01:00
James Nugent 819bd3fba3 deps: Update github.com/hashicorp/hil/... 2016-06-08 18:38:41 +01:00
James Nugent 49995428fd core: Remove support for V0 state
This removes support for the V0 binary state format which was present in
Terraform prior to 0.3. We still check for the file type and present an
error message explaining to the user that they can upgrade it using a
prior version of Terraform.
2016-06-08 18:38:41 +01:00
James Nugent 91587a49f3 core: Remove unnecessary debug logging
Some unnecessary debug logging was introduced in 7b6df27e4, this commit
removes it so as not to clutter logs.
2016-06-08 18:38:41 +01:00
James Nugent a31cb5087e Merge pull request #7073 from ottenhoff/bgp-private-range
BGP AS 60000 is assigned to EQUINIX-CLOUD-EXCHANGE-AMSTERDAM-ASN.
2016-06-08 16:04:13 +02:00
Sam Ottenhoff bd36bc60aa BGP AS 60000 is assigned to EQUINIX-CLOUD-EXCHANGE-AMSTERDAM-ASN.
AS65000 is reserved for private use. https://en.wikipedia.org/wiki/Autonomous_system_\(Internet\)
2016-06-08 13:46:56 +00:00
James Bardin ac2d195cc5 Update CHANGELOG.md
add Elastic Transcoder resources
2016-06-07 17:31:02 -04:00
James Bardin cd160d3f3f Merge pull request #6965 from hashicorp/jbardin/GH-3968
Add support for Amazon Elastic Transcoder
2016-06-07 17:28:55 -04:00
James Bardin 45c88bf229 s/ForceNew/Forces new resource/ 2016-06-07 17:19:16 -04:00
James Bardin 5b5641208e remove extra "=" from test config 2016-06-07 17:06:25 -04:00
James Bardin 950950ff4b doc improvements 2016-06-07 16:57:34 -04:00
James Bardin 8eb4858c26 Add Elastic Transcoder docs 2016-06-07 16:29:14 -04:00
James Bardin 3ec1c61865 vendor aws/aws-sdk-go/service/elastictranscoder 2016-06-07 16:07:08 -04:00
James Bardin 5c1b625c84 Add support for Amazon Elastic Transcoder
- Add resources for elastic transcoder pipelines and presets
2016-06-07 16:07:08 -04:00
Paul Hinze ee0dfba565 Merge pull request #7048 from hashicorp/b-update-hcl
Update HCL to latest version
2016-06-07 14:36:55 -05:00
Clint a72847298e Update CHANGELOG.md 2016-06-07 14:30:37 -05:00
Clint 7d23570e2d provider/cloudflare: Add migration for v1 to v4 API libraries (#6969)
* provider/cloudflare: Add migration for v1 to v4 API libraries

- mock out api calls
2016-06-07 14:29:25 -05:00
James Bardin b0bc6718a1 Merge pull request #7051 from hashicorp/jbardin/GH-3999
add sidebar link for elb_attachment
2016-06-07 13:33:21 -04:00
James Bardin e6481ccc74 add sidebar link for elb_attachment 2016-06-07 11:44:37 -04:00
Paul Stack cc51dd8472 Update CHANGELOG.md 2016-06-07 17:19:16 +02:00
Mark Peek 74d5db4f3e Don't require vsphere debug paths to be set (#7027)
The change to add govmomi debug paths (#6893) required user input even
when the env was not set. This change defaults those values appropriately.
2016-06-07 16:16:04 +01:00
Paul Stack 72bba5f308 Update CHANGELOG.md 2016-06-07 17:15:38 +02:00
Mark Peek 57e935755e Add vsphere virtual machine migration (Fixes #7008) (#7023)
Fixes vsphere virtual machine migration issues with
disk controller_type and skip_customization.
2016-06-07 16:11:35 +01:00
Radek Simko be53bdf09f Update CHANGELOG.md 2016-06-07 15:51:53 +01:00
Paul Hinze 029c79e677
Update HCL to latest version
Pulls in https://github.com/hashicorp/hcl/pull/125

Which fixes #6359
2016-06-07 09:21:10 -05:00
James Bardin 4c7a31d72a Merge pull request #6879 from hashicorp/jbardin/GH-3999
Add top-level ELB Attachment resource
2016-06-07 10:19:07 -04:00
James Bardin e4d8c6929f Add top-level ELB Attachment resource
Add an aws_elb_attachment resource so that the attment of instances to
an ELB can be managed separately from an aws_elb and prevent dependency
cycles.
2016-06-07 09:46:39 -04:00
Clint 3d4bc56d97 Merge pull request #7037 from hashicorp/b-cloudflare-lib-upgrade
provider/cloudflare: Upgrade library to github.com/cloudflare/cloudflare-go
2016-06-06 15:29:39 -05:00
clint shryock 943583925d provider/cloudfront: Minor adjustments for new cloudflare-go lib 2016-06-06 14:57:26 -05:00
clint shryock d70d7aba57 provider/cloudflare: Swap out mitchellh fork for upstream cloudflare-go
TODO noted that this should be done when a PR was merged, and it has so
2016-06-06 14:48:05 -05:00
Clint 8c3ff93395 Update CHANGELOG.md 2016-06-06 11:31:38 -05:00
Clint d8ab30ca02 Merge pull request #6987 from modax/bug/vpngw-vpc-reattach
provider/aws: Fix reattachment of VPC to VPN gateway.
2016-06-06 11:30:44 -05:00
clint shryock b9f512e0cf provider/aws: Bump ElasticSearch domain delete time to match create time. Should help test pass 2016-06-06 11:13:48 -05:00
clint shryock 3044cc5c38 provider/aws: randomiz names in TestAccAWSCloudwatchLogSubscriptionFilter_basic 2016-06-06 10:25:02 -05:00
Christoph Blecker a1021f32e1 Fix Google Cloud Two-Tier Example (#7009) 2016-06-05 00:48:54 +01:00
Paul Stack 7346be525c Update CHANGELOG.md 2016-06-05 00:47:46 +01:00
Joshua Spence d3030e1e0f Add `name_prefix` to `aws_iam_instance_profile` and `aws_iam_role` (#6939) 2016-06-05 00:46:27 +01:00
James Nugent e44727e086 Merge pull request #7010 from mbainter/patch-1
Update examples using concat with strings
2016-06-03 17:51:57 -05:00
Mark Bainter 267d206a52 Update examples using concat with strings
Since using concat() to join strings is deprecated and soon to be removed, this patch updates the sha examples to use interpolation instead.
2016-06-03 17:49:54 -05:00
clint shryock c5434c70e8 provider/aws: update doc on ebs types 2016-06-03 15:43:05 -05:00
James Nugent 07b7e757aa Merge pull request #7007 from hashicorp/f-remove-bin-tests
core: Remove tests from provider binaries
2016-06-03 14:08:33 -05:00
James Nugent 69df3beb89 core: Remove tests from provider binaries
These tests run each time Travis builds, causing additional noise and a
(negligible) speed decrease. However, since the advent of internal
plugins, these tests are unnecessary, and each file only carries a
package declaration anyway - so there are no tests actually executed!
2016-06-03 13:47:58 -05:00
Clint 7b232d7ebe Update CHANGELOG.md 2016-06-03 13:47:26 -05:00
clint shryock b24228021f Merge branch 'pr-6865'
* pr-6865:
  provider/aws: Add db_param group to RDS Cluster Instance test
  remove status attribute
  support aurora instance's parameter group and modifyinstance
2016-06-03 13:46:14 -05:00
clint shryock 412d88e768 provider/aws: Add db_param group to RDS Cluster Instance test 2016-06-03 13:46:01 -05:00
Clint 0c71fac175 Merge pull request #7004 from hashicorp/b-aws-ami-datasource-update
provider/aws: Fix panics in datasource AMI
2016-06-03 10:39:16 -05:00
James Nugent f01e1ec67a Merge pull request #6995 from hashicorp/govendor
deps: Migrate to govendor
2016-06-03 09:56:40 -05:00
clint shryock badbe6d738 provider/aws: Fix panics in datasource AMI 2016-06-03 09:19:51 -05:00