Commit Graph

10375 Commits

Author SHA1 Message Date
Martin Atkins
0e0e3d73af core: New ResourceProvider methods for data resources
This is a breaking change to the ResourceProvider interface that adds the
new operations relating to data sources.

DataSources, ValidateDataSource, ReadDataDiff and ReadDataApply are the
data source equivalents of Resources, Validate, Diff and Apply (respectively)
for managed resources.

The diff/apply model seems at first glance a rather strange workflow for
read-only resources, but implementing data resources in this way allows them
to fit cleanly into the standard plan/apply lifecycle in cases where the
configuration contains computed arguments and thus the read must be deferred
until apply time.

Along with breaking the interface, we also fix up the plugin client/server
and helper/schema implementations of it, which are all of the callers
used when provider plugins use helper/schema. This would be a breaking
change for any provider plugin that directly implements the provider
interface, but no known plugins do this and it is not recommended.

At the helper/schema layer the implementer sees ReadDataApply as a "Read",
as opposed to "Create" or "Update" as in the managed resource Apply
implementation. The planning mechanics are handled entirely within
helper/schema, so that complexity is hidden from the provider implementation
itself.
2016-05-14 08:26:36 -07:00
Martin Atkins
718cdda77b config: Parsing of data.TYPE.NAME.FIELD variables
This allows ${data.TYPE.NAME.FIELD} interpolation syntax at the
configuration level, though since there is no special handling of them
in the core package this currently just acts as an alias for
${TYPE.NAME.FIELD}.
2016-05-14 08:26:35 -07:00
Martin Atkins
860140074f config: Data source loading
This allows the config loader to read "data" blocks from the config and
turn them into DataSource objects.

This just reads the data from the config file. It doesn't validate the
data nor do anything useful with it.
2016-05-14 08:26:35 -07:00
Martin Atkins
fc4fa10981 config: "ResourceMode" concept for resources
Previously resources were assumed to always support the full set of
create, read, update and delete operations, and Terraform's resource
management lifecycle.

Data sources introduce a new kind of resource that only supports the
"read" operation. To support this, a new "Mode" field is added to
the Resource concept within the config layer, which can be set to
ManagedResourceMode (to indicate the only mode previously possible) or
DataResourceMode (to indicate that only "read" is supported).

To support both managed and data resources in the tests, the
stringification of resources in config_string.go is adjusted slightly
to use the Id() method rather than the unusual type[name] serialization
from before, causing a simple mechanical adjustment to the loader tests'
expected result strings.
2016-05-14 08:26:35 -07:00
James Nugent
f331240601 Merge pull request #6574 from uber/b-gcp-acc-test-env
provider/google: correct error messages in acceptance tests
2016-05-13 17:29:56 -04:00
James Nugent
80d3c5bb63 Merge pull request #6666 from markpeek/markpeek-govmomi-0.6.2
vendor: Update dependency vmware/govmomi to v0.6.2
2016-05-13 17:23:52 -04:00
Mark Peek
bc9d53e5f9 vendor: Update dependency vmware/govmomi to v0.6.2 2016-05-13 10:07:09 -07:00
Clint
48722f6a5e Update CHANGELOG.md 2016-05-13 11:20:48 -05:00
Paul Stack
cf37c3adaa provider/aws: Add support for kms_key_id to aws_db_instance (#6651)
As requested in #4822, add support for a KMS Key ID (ARN) for Db
Instance

```
make testacc TEST=./builtin/providers/aws
TESTARGS='-run=TestAccAWSDBInstance_kmsKey' 2>~/tf.log
==> Checking that code complies with gofmt requirements...
go generate $(go list ./... | grep -v /vendor/)
TF_ACC=1 go test ./builtin/providers/aws -v
-run=TestAccAWSDBInstance_kmsKey -timeout 120m
=== RUN   TestAccAWSDBInstance_basic
--- PASS: TestAccAWSDBInstance_basic (587.37s)
=== RUN   TestAccAWSDBInstance_kmsKey
--- PASS: TestAccAWSDBInstance_kmsKey (625.31s)
PASS
ok      github.com/hashicorp/terraform/builtin/providers/aws    1212.684s
```
2016-05-13 11:20:29 -05:00
clint shryock
2047da21d5 provider/aws: Update hash in Redshift Security Group test 2016-05-13 10:52:21 -05:00
thetuxkeeper
279eead08e disable unsupported customization parameters (#6656) 2016-05-13 15:56:15 +01:00
thetuxkeeper
390b0d5ab9 provider/vsphere: govmomi v0.6.1 update and fixes (#6479)
* vendor: Update dependency vmware/govmomi

* fixed data types

* fixed RemoveDevice

* fixed CreateDisk usage
2016-05-13 15:27:45 +01:00
Paul Stack
c07f1ff0c6 Update CHANGELOG.md 2016-05-13 11:31:22 +01:00
David Harris
0cb7496b3a provider/aws: fix Elastic Beanstalk cname_prefix (#6653)
Fixes an issue where the `cname_prefix` attribute isn't correctly read
in some regions.
2016-05-13 11:27:56 +01:00
Joseph Anthony Pasquale Holsten
2bca697a12 Merge pull request #6650 from josephholsten/atlas-timeout-errmsg
master: atlas: update test err msg to reflect real timeout
2016-05-12 20:18:57 -05:00
Martin Atkins
fecacb5e10 website: fix navbar typo on azurerm_sql_firewall_rule 2016-05-12 18:08:18 -07:00
Martin Atkins
e414a7c444 Update CHANGELOG.md 2016-05-12 16:54:11 -07:00
Martin Atkins
44deec3097 Merge #6649: OpsWorks app_source SSH key is write-only 2016-05-12 16:52:34 -07:00
Dave Cunningham
758c8f1e22 Fix address docs in gce instance (#6639)
@evandbrown @lwander
2016-05-13 00:51:20 +01:00
Anton Koldaev
266e98eb30 Make the OpsWorks app_source SSH key write only
Similarly to https://github.com/hashicorp/terraform/pull/4241 prevent ssh_key in OpsWorks application app_source key from re-applying every time.
2016-05-12 16:35:25 -07:00
Joseph Anthony Pasquale Holsten
546fb94265 atlas: update test err msg to reflect real timeout 2016-05-12 15:30:17 -07:00
clint shryock
f70f778a5a provider/aws: Randomize DB Option Group Name to avoid name conflicts in Travis CI 2016-05-12 11:15:36 -05:00
clint shryock
baed5dda36 provider/aws: Remove empty config in test 2016-05-12 09:34:16 -05:00
Paul Stack
5a2f106043 Update CHANGELOG.md 2016-05-12 13:57:05 +01:00
thetuxkeeper
510b2934f0 fix gateway for dhcp (#6635) 2016-05-12 13:54:29 +01:00
Paul Stack
6eb75cc0e4 Update CHANGELOG.md 2016-05-12 13:51:50 +01:00
Paul Stack
61b5176fbe provider/aws: Updating state when aws_sns_topic_subscription is (#6629)
missing

Fixes #6625

When an SNS topic subscription was created with TF and then removed via
the AWS Console, Terraform threw an error:

```
* aws_sns_topic_subscription.testme: NotFound: Subscription does not
* exist
    status code: 404, request id: a22e7ed7-3630-5a8a-b767-317ac1440e24
```

This PR will remove the topic subscription from state on a NotFound and
will then readd the subscripton
2016-05-12 13:46:22 +01:00
Paul Stack
8229cdbc71 Update CHANGELOG.md 2016-05-11 23:29:50 +01:00
Evan Brown
55742acf12 providers/google: support optionial uuid naming for Instance Template (#6604)
Auto-generating an Instance Template name (or just its suffix) allows the
create_before_destroy lifecycle option to function correctly on the
Instance Template resource. This in turn allows Instance Group Managers
to be updated without being destroyed.
2016-05-11 22:54:47 +01:00
Paul Stack
2620a78c49 Update CHANGELOG.md 2016-05-11 22:47:11 +01:00
stack72
cb4c8e6864 Merge branch 'Ticketmaster-db_option_group_settings' 2016-05-11 22:44:27 +01:00
stack72
420b24fa90 provider/aws: Fix aws_db_option_group option_settings test for
correct hash value
2016-05-11 22:43:17 +01:00
Mitchell Hashimoto
59a9bcf3dc
terraform: fix compilation with new func call 2016-05-11 13:07:33 -07:00
Mitchell Hashimoto
1c81aa3471
providers/aws: aws_security_group import test 2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
6a675b4a15
helper/resource: ImportState test can verify states 2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
27452f0043
terraform: Module option to Import to add module to graph 2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
ec02c8c0e2
helper/resource: testing of almost all aspects of ImportState tests 2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
2d99c451fb
helper/resource: basic ImportState acceptance testing
Still some TODOs, and more test cases to write, but the basics are all
here.
2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
9bd1c9e7ca
helper/resource: reshuffling to prepare for importstate testing 2016-05-11 13:02:37 -07:00
Mitchell Hashimoto
0d1debc0ae
terraform: import verifies the refresh results in non-nil state
/cc @jen20
2016-05-11 13:02:36 -07:00
James Nugent
bf8d788489
provider/triton: Import triton_machine resources 2016-05-11 13:02:36 -07:00
James Nugent
03fe5a7467
provider/triton: Import triton_vlan resources 2016-05-11 13:02:36 -07:00
James Nugent
655bb4b286
provider/triton: import triton_firewall_rule 2016-05-11 13:02:36 -07:00
James Nugent
e1e1a08569
provider/triton: support importing triton_key 2016-05-11 13:02:36 -07:00
Mitchell Hashimoto
6bdab07174
providers/aws: security group import imports rules 2016-05-11 13:02:36 -07:00
Mitchell Hashimoto
b728e55861
helper/schema: Resource.Data should set latest schema version 2016-05-11 13:02:36 -07:00
Mitchell Hashimoto
84fa3e5c9e
providers/aws: security group import 2016-05-11 13:02:36 -07:00
Mitchell Hashimoto
b728f8c018
terraform: import state ID should be sent to hook 2016-05-11 13:02:35 -07:00
Mitchell Hashimoto
c02c6c3f9c
helper/schema: default state func for import 2016-05-11 13:02:35 -07:00
Mitchell Hashimoto
ba84485c87
plugin: tests for ImportState 2016-05-11 13:02:35 -07:00