Commit Graph

8821 Commits

Author SHA1 Message Date
Paul Hinze 911575b7d6 Merge pull request #4747 from hashicorp/b-escaped
Literals with escaped interpolations work
2016-01-19 18:23:08 -06:00
Paul Hinze a0d3245ee3 core: Orphan addressing / targeting
Instead of trying to skip non-targeted orphans as they are added to
the graph in OrphanTransformer, remove knowledge of targeting from
OrphanTransformer and instead make the orphan resource nodes properly
addressable.

That allows us to use existing logic in TargetTransformer to filter out
the nodes appropriately. This does require adding TargetTransformer to the
list of transforms that run during DynamicExpand so that targeting can
be applied to nodes with expanded counts.

Fixes #4515
Fixes #2538
Fixes #4462
2016-01-19 17:48:44 -06:00
Paul Hinze 283d57c031 Merge pull request #4700 from hashicorp/phinze/fix-testrace-resource
helper/resource: Fix data race in resource.Retry
2016-01-19 17:17:04 -06:00
Paul Hinze 6bd60a940c Enhanced Contributing Guide
This is a vastly expanded and clarified Contributing guide. It includes
guidelines for each type of contribution and issue report that are
designed to be linked off to from issue / PR comments.

We expect the text will continue to evolve as we learn what works and
what doesn't.

This guide will coincide with a HashiCorp blog post explaining the
motivation and context around these changes:

https://github.com/hashicorp/www/pull/160
2016-01-19 17:11:17 -06:00
Paul Hinze 4af2c5f5dd core: fix diff mismatch when RequiresNew field and list both change
fixes #1752

Includes AccTest reproducing example from the issue as well as a bunch
of explanatory comments in the tests and impls.
2016-01-19 15:38:04 -06:00
Mitchell Hashimoto 693736b52a config: fix tests 2016-01-19 13:17:47 -08:00
Mitchell Hashimoto f223be15cd config: eval HEL as long as the result changes [GH-2909] 2016-01-19 12:51:56 -08:00
Mitchell Hashimoto 54de9057ba terraform: failing test case 2016-01-19 12:37:55 -08:00
Mitchell Hashimoto 851e440d1d Update CHANGELOG.md 2016-01-19 12:32:19 -08:00
Mitchell Hashimoto 585d0943d9 Merge pull request #4746 from hashicorp/b-detect-weird-json
config: detect provisioner-only resource in JSON and error [GH-4385]
2016-01-19 12:31:29 -08:00
Mitchell Hashimoto 8e7b0d90e3 config: detect provisioner-only resource in JSON and error [GH-4385] 2016-01-19 12:19:32 -08:00
Mitchell Hashimoto 99fbb91ba2 config: validate lifecycle keys [GH-4413] 2016-01-19 11:28:45 -08:00
James Nugent 7ab19c62e6 Update CHANGELOG.md 2016-01-19 12:51:34 -05:00
James Nugent 44700f71b0 Merge pull request #4740 from stack72/azurerm-cdn-profile
provider/azurerm: add cdn profile
2016-01-19 12:49:49 -05:00
Carles Figuerola b18afaa5db Add taging shared module for cloudstack and implement it in resource_network 2016-01-19 11:41:18 -06:00
stack72 183eb248df Scaffold the Azure RM CDN Profile 2016-01-19 17:37:28 +00:00
James Nugent a4abb0e66c Merge pull request #4739 from hashicorp/b-azurerm-resource-id-parsing
provider/azurerm: Parse "resourcegroups" in IDs
2016-01-19 11:42:45 -05:00
James Nugent c3ce8b81ef provider/azurerm: Parse "resourcegroups" in IDs
When parsing resource IDs (probably incorrectly since they are URIs and
should therefore be opaque), we need to look for "resourcegroups" in
addition to "resourceGroups" because the Azure CDN resources return that
in their URIs.

Unfortunately the casing semantics of the rest of the string are not
clear, so downcasing the entire URI is probably best avoided. This is a
fix for a single case.
2016-01-19 11:32:16 -05:00
Clint 8e5108b659 Update CHANGELOG.md 2016-01-19 10:27:00 -06:00
Clint 569e74c2e7 Merge pull request #4481 from ElliotG/feature/encryptedBlockDevice
provider/aws: Added support for the encryption flag on ebs_block_devices in launch configurations
2016-01-19 10:26:11 -06:00
James Nugent 7620381a4f provider/aws: Wait for NACL rule to be visible
Fixes #4721. It seems there may be some eventual consistency in the API
for network ACLs. This fix doesn't use resource.WaitForState() as there
the NACL is not something that can be looked up by ID and has a
property which determines if it is present.

Instead we reuse the findNetworkAclRule function which the Read function
exhibiting the problem uses, and retry over a 3 minute period, returning
an error message informing the user that running `terraform apply` again
will likely allow them to continue.
2016-01-19 08:12:20 -05:00
James Nugent 0a2966d26d Merge pull request #4730 from leeprovoost/master
provider/aws: Fix principal in cloud trail bucket policy docs
2016-01-19 07:45:37 -05:00
James Nugent 2be2bf3651 Merge pull request #4732 from stack72/f-aws-docs-launch-config
docs/aws: Launch Config `ami` -> `image_id`
2016-01-19 07:44:10 -05:00
stack72 138a6b67a4 Change the AWS Launch Configuration Documentation examples from ami to image_id 2016-01-19 10:12:50 +00:00
Lee Provoost 96f3f76118 Principal * gets rejected by AWS, use cloudtrail.amazonaws.com instead. 2016-01-19 08:54:42 +00:00
Radek Simko 36997b2e70 Merge pull request #4729 from fromonesrc/ecr-repo-typo
Fix typo in ecr_repository_policy docs
2016-01-19 07:48:47 +00:00
Adam Ochonicki 46c2fd68d9 Fix typo in ecr_repository_policy docs 2016-01-18 21:40:08 -05:00
Srikalyan Swayampakula 3d256dd021 Found an issue with more testing aws api is responding with various of
"pending confirmation" such as "PendingConfirmation", "Pending Confirmation" etc.
2016-01-18 15:38:34 -08:00
Srikalyan Swayampakula 63d6d8dbe2 Forgot to add one last condition to ensure that non pending confirmation subscription is returned. 2016-01-18 14:00:11 -08:00
James Nugent 7897e08342 Merge pull request #4722 from stack72/azurerm-resource-tagging
[WIP] provider/azurerm: tagging of resources
2016-01-18 16:15:52 -05:00
stack72 a9afb489f6 Adds the ability to tag more of the Azure RM Network resources 2016-01-18 20:55:28 +00:00
James Nugent c23d6d63b3 Merge pull request #4720 from stack72/azurerm-tagging-acceptance-tests
Add acceptance tests and docs update to allow the tagging of AzureRM …
2016-01-18 13:59:51 -05:00
stack72 2ebe2c01f1 Add acceptance tests and docs update to allow the tagging of AzureRM resource & 2016-01-18 18:35:41 +00:00
James Nugent 14344d0857 Merge pull request #4719 from hashicorp/f-azurerm-tag-resources
Add tagging support for ARM resource groups and virtual networks
2016-01-18 13:20:35 -05:00
James Nugent 2ff0c65c3c provider/azurerm: Support tagging `azurerm_resource_group` 2016-01-18 13:13:28 -05:00
James Nugent d5e3db9deb provider/azurerm: Add tags to `azurerm_virtual_network` 2016-01-18 13:13:28 -05:00
James Nugent a32980e8a7 Merge pull request #4717 from stack72/azurerm-availSet-acctests
Add acceptance test to ARM Availability Set for tagging
2016-01-18 12:58:42 -05:00
stack72 d7a7eb4644 Adds an acceptance test to the ARM Availability Set to show that tagging
and updating of tags work as expected

Also updated the documentation for azure rm availability set to
demonstrate this
2016-01-18 17:47:37 +00:00
James Nugent 00227da93a Merge pull request #4715 from hashicorp/f-azurerm-tags
provider/azurerm: Add scaffolding for tags
2016-01-18 12:35:06 -05:00
James Nugent a640ef9f16 provider/azurerm: Add tests for tag scaffolding 2016-01-18 12:28:04 -05:00
James Nugent f374ca77e7 provider/azurerm: Add scaffolding to tags 2016-01-18 11:48:01 -05:00
James Nugent 556dd16486 Merge pull request #4712 from TimeIncOSS/docs-remote-state-section
docs: Create new section for remote state backends
2016-01-18 06:08:31 -05:00
Radek Simko f2ffff33eb docs: Create new section for remote state backends 2016-01-18 08:08:19 +00:00
Srikalyan Swayampakula 9d125944c0 Added support for http/https endpoints that auto confirms SNS topic subscription.
http and https SNS topic subscription endpoints require confirmation to set a valid arn otherwise
arn would be set to "pending confirmation". If the endpoints auto confirm then arn is set
asynchronously but if we try to create another subscription with same parameters then api returns
"pending subscription" as arn but does not create another a duplicate subscription. In order to
solve this we should be fetching the subscription list for the topic and identify the subscription
with same parameters i.e., protocol, topic_arn, endpoint and extract the subscription arn.

Following changes were made to support the http/https endpoints that auto confirms

1. Added 3 extra parameters i.e.,
   1. endpoint_auto_confirms -> boolean indicates if end points auto confirms
   2. max_fetch_retries -> number of times to fetch subscription list for the topic to get the subscription arn
   3. fetch_retry_delay -> delay b/w fetch subscription list call as the confirmation is done asynchronously.

  With these parameters help added support http and https protocol based endpoints that auto confirm.

2. Update website doc appropriately
2016-01-17 12:24:32 -08:00
Martin Atkins 25bd43d6f4 Export public keys from tls_private_key
In most cases private keys are used to produce certs and cert requests,
but there are some less-common cases where the PEM-formatted keypair is
used alone. The public_key_pem attribute supports such cases.

This also includes a public_key_openssh attribute, which allows this
resource to be used to generate temporary OpenSSH credentials, so that
e.g. a Terraform configuration could generate its own keypair to use
with the aws_key_pair resource. This has the same caveats as all cases
where we generate private keys in Terraform, but could be useful for
temporary/throwaway environments where the state either doesn't live for
long or is stored securely.

This builds on work started by Simarpreet Singh in #4441 .
2016-01-16 17:30:48 -08:00
Martin Atkins e8006f1539 Merge #4704: sha256 interpolation function 2016-01-16 16:59:50 -08:00
Matt Moyer c17a6ceb2a Add a sha256(...) interpolation function. 2016-01-16 23:54:04 +00:00
Paul Hinze d59db52f06 helper/resource: Fix data race in resource.Retry
The implementation was attempting to capture the error using a scoped
variable reference, but the error value is already exposed via the
return value of `WaitForState()`. Using that instead fixes the data
race.

Fixes the following data race:

```
==================
WARNING: DATA RACE
Read by goroutine 74:
  github.com/hashicorp/terraform/helper/resource.Retry()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:35 +0x284
  github.com/hashicorp/terraform/helper/resource.TestRetry_timeout()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait_test.go:35 +0x60
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc

Previous write by goroutine 90:
  github.com/hashicorp/terraform/helper/resource.Retry.func1()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:20 +0x87
  github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState.func1()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/state.go:83 +0x284

Goroutine 74 (running) created at:
  testing.RunTests()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:561 +0xaa3
  testing.(*M).Run()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:494 +0xe4
  main.main()
      github.com/hashicorp/terraform/helper/resource/_test/_testmain.go:84 +0x20f

Goroutine 90 (running) created at:
  github.com/hashicorp/terraform/helper/resource.(*StateChangeConf).WaitForState()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/state.go:127 +0x283
  github.com/hashicorp/terraform/helper/resource.Retry()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait.go:34 +0x276
  github.com/hashicorp/terraform/helper/resource.TestRetry_timeout()
      /Users/phinze/go/src/github.com/hashicorp/terraform/helper/resource/wait_test.go:35 +0x60
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc
==================
```
2016-01-16 13:38:50 -05:00
Paul Hinze 9cbaacad32 communicator/winrm: fix data race in io copy
As the command completes, the winrm.Command does not wait for its copy of
the remote.Command streams to report itself completed.

This adds an additional sync.WaitGroup to ensure that copy is finished up
before moving on, solving the data race.

Fixes the following data race:

```
==================
WARNING: DATA RACE
Read by goroutine 6:
  github.com/hashicorp/terraform/communicator/winrm.TestStart()
      /Users/phinze/go/src/github.com/hashicorp/terraform/communicator/winrm/communicator_test.go:79 +0xa44
  testing.tRunner()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:456 +0xdc

Previous write by goroutine 14:
  bytes.(*Buffer).ReadFrom()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/bytes/buffer.go:174 +0x465
  io.copyBuffer()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/io/io.go:375 +0x1a5
  io.Copy()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/io/io.go:351 +0x78

Goroutine 6 (running) created at:
  testing.RunTests()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:561 +0xaa3
  testing.(*M).Run()
      /private/var/folders/vd/7l9ys5k57l91x63sh28wl_kc0000gn/T/workdir/go/src/testing/testing.go:494 +0xe4
  main.main()
      github.com/hashicorp/terraform/communicator/winrm/_test/_testmain.go:62 +0x20f

Goroutine 14 (finished) created at:
  github.com/hashicorp/terraform/communicator/winrm.runCommand()
      /Users/phinze/go/src/github.com/hashicorp/terraform/communicator/winrm/communicator.go:151 +0xf8
==================
```
2016-01-16 13:33:24 -05:00
Paul Hinze 394a106143 Update CHANGELOG.md 2016-01-16 12:46:49 -05:00