Commit Graph

7250 Commits

Author SHA1 Message Date
Paul Hinze 6b6b5a43c3 provider/aws: serialize SG rule access to fix race condition
Because `aws_security_group_rule` resources are an abstraction on top of
Security Groups, they must interact with the AWS Security Group APIs in
a pattern that often results in lots of parallel requests interacting
with the same security group.

We've found that this pattern can trigger race conditions resulting in
inconsistent behavior, including:

 * Rules that report as created but don't actually exist on AWS's side
 * Rules that show up in AWS but don't register as being created
   locally, resulting in follow up attempts to authorize the rule
   failing w/ Duplicate errors

Here, we introduce a per-SG mutex that must be held by any security
group before it is allowed to interact with AWS APIs. This protects the
space between `DescribeSecurityGroup` and `Authorize*` / `Revoke*`
calls, ensuring that no other rules interact with the SG during that
span.

The included test exposes the race by applying a security group with
lots of rules, which based on the dependency graph can all be handled in
parallel. This fails most of the time without the new locking behavior.

I've omitted the mutex from `Read`, since it is only called during the
Refresh walk when no changes are being made, meaning a bunch of parallel
`DescribeSecurityGroup` API calls should be consistent in that case.
2015-11-18 12:39:59 -06:00
Clint e7a054c9dd Update CHANGELOG.md 2015-11-17 09:11:22 -06:00
Clint 2ed867b5ab Merge pull request #3945 from hashicorp/b-aws-r53-record-zone-fix
provider/aws: Fix crash in Route53 Record if Zone not found
2015-11-17 09:10:50 -06:00
James Nugent b057ef78ff Update CHANGELOG.md 2015-11-17 13:28:21 +00:00
James Nugent edaaab9f62 Merge pull request #3948 from pshima/f-packet-net-provisioner-ip
Populate the provisioner connection info for packet.net devices
2015-11-17 13:26:10 +00:00
Pete Shima e2ef92f50f Populate the provisioner connection info for packet.net devices with the ipv4 public address 2015-11-16 21:02:57 -08:00
Paul Hinze 24ee56326d Update CHANGELOG.md 2015-11-16 17:58:28 -06:00
Paul Hinze 7e59d7f67c Merge pull request #3901 from hashicorp/phinze/google-credentials
provider/google: read credentials as contents instead of path
2015-11-16 17:57:54 -06:00
Paul Hinze 1905766cf8 Update CHANGELOG.md 2015-11-16 17:55:25 -06:00
Paul Hinze 010293992a Merge pull request #3899 from hashicorp/phinze/azure-publish-settings
provider/azure: read publish_settings as contents instead of path
2015-11-16 17:54:43 -06:00
Paul Hinze 5d898f1c5f Merge pull request #3946 from hashicorp/fix-ecs-datatype
aws: Add missing dereference operator
2015-11-16 17:49:59 -06:00
Paul Hinze fb0dc4951d provider/azure: read publish_settings as contents instead of path
Building on the work in #3846, shifting the Azure provider's
configuration option from `settings_file` to `publish_settings`.
2015-11-16 17:47:56 -06:00
Radek Simko 00d0551933 aws: Add missing dereference operator 2015-11-16 23:19:45 +00:00
clint shryock 1413d032ee provider/aws: Fix crash in Route53 Record if Zone not found 2015-11-16 17:15:17 -06:00
clint shryock 901e5fbf9f fix log reference 2015-11-16 17:14:02 -06:00
Clint 6cb5ce2a7c Merge pull request #3943 from hashicorp/b-aws-ecs-service-hotfix
Fix issue with undefined var
2015-11-16 16:34:13 -06:00
clint shryock 8085e55eda fix issue with undefined var 2015-11-16 16:29:52 -06:00
Radek Simko 48e1e96078 Merge pull request #3936 from hashicorp/f-remove-depgraph
Remove unused depgraph package
2015-11-16 22:05:54 +00:00
Clint 0346c66d1c Merge pull request #3839 from hashicorp/new_header
New header/footer redesign
2015-11-16 16:05:37 -06:00
Radek Simko dfb474dd7c Update CHANGELOG.md 2015-11-16 21:47:06 +00:00
Radek Simko a8ceda1b15 Merge pull request #3914 from TimeIncOSS/b-aws-ecs-service-gone
provider/aws: Prevent crashing when deleting ecs_service which is gone
2015-11-16 21:46:06 +00:00
Paul Hinze eb9a93862b provider/google: read credentials as contents instead of path
Building on the work in #3846, shifting the Google provider's
configuration option from `account_file` to `credentials`.
2015-11-16 15:14:32 -06:00
Paul Hinze 31586028c4 Update CHANGELOG.md 2015-11-16 14:51:19 -06:00
Paul Hinze 993ec0a320 Merge pull request #3909 from hashicorp/phinze/template-file-contents
template_file: source contents instead of path
2015-11-16 14:50:45 -06:00
Sander van Harmelen 0cdc81f390 Merge pull request #3896 from hashicorp/phinze/chef-keys-as-contents
chef: read key contents instead of paths
2015-11-16 21:44:09 +01:00
Paul Hinze fed3095455 Update CHANGELOG.md 2015-11-16 13:55:25 -06:00
Paul Hinze afb416fba4 Merge pull request #2807 from dwradcliffe/f-dyn-provider
add Dyn provider
2015-11-16 13:53:44 -06:00
Clint f36b7bf653 Merge pull request #3938 from mdb/doc-formatting-fix
website: add `` to format documentation env vars
2015-11-16 10:28:10 -06:00
Mike Ball 874bddd84c website: add `` to format documentation env vars
this consistently formats the `TF_*` variables referenced in
documentation and also improves readability.
2015-11-16 11:23:43 -05:00
James Nugent c593bf3722 Remove unused depgraph package 2015-11-16 10:51:54 -05:00
Radek Simko 5194eb4e28 Update CHANGELOG.md 2015-11-16 15:33:46 +00:00
Radek Simko 5c59bd95cb Merge pull request #3924 from TimeIncOSS/b-aws-ecs-td-computed
provider/aws: Make all fields in ecs_task_definition ForceNew
2015-11-16 15:31:17 +00:00
Radek Simko ce375ae32d Merge pull request #3773 from rjeczalik/master
provider/aws: use single import path for aws-sdk-go
2015-11-16 07:57:27 +00:00
Rafal Jeczalik 4f25b552bb use single import path for aws-sdk-go 2015-11-16 00:42:08 +01:00
James Nugent b7f66bdd9d Merge pull request #3922 from TimeIncOSS/remove-url-helper
helper: Remove url helper (moved to go-getter)
2015-11-15 16:57:37 -05:00
James Nugent aa5bf5414d Merge pull request #3929 from pshima/packet-dot-net-project-doc-update
Small update to packet.net docs for project
2015-11-15 16:56:50 -05:00
Pete Shima 880002fe15 Small update to packet.net docs for project 2015-11-15 10:55:42 -08:00
Radek Simko 33ca2a796f Fix typo (Modifier -> Modified) 2015-11-14 12:19:29 +00:00
Radek Simko 308edd6dd7 provider/aws: Make all fields in ecs_task_definition ForceNew
- fixes https://github.com/hashicorp/terraform/issues/2694
2015-11-14 10:36:01 +00:00
Radek Simko aae8fc8494 provider/aws: Add acceptance test for bugfix for #2694 2015-11-14 10:34:17 +00:00
Radek Simko 7f95311491 Update CHANGELOG.md 2015-11-14 09:37:01 +00:00
Radek Simko d5ae5ba062 Merge pull request #3910 from hashicorp/phinze/s3-object-homedir-expand
provider/aws: homedir expand in s3 object source
2015-11-14 09:35:09 +00:00
Radek Simko 432cab51a7 Merge pull request #3917 from grothja/patch-1
Correct argument reference for `certificate`
2015-11-14 09:29:13 +00:00
Radek Simko 1e3cc7b33f helper: Remove url helper (moved to go-getter) 2015-11-14 08:21:18 +00:00
Radek Simko e7c88eab35 openstack: fix go vet error (bool modifier is %t) 2015-11-14 08:19:22 +00:00
Joe Topjian 19fc2193f4 Merge pull request #3904 from jtopjian/jtopjian-openstack-port-attr-cleanup
provider/openstack: Make Networking Port attributes more intuitive
2015-11-13 20:15:29 -07:00
Joe Topjian 79a46a2bcb Update CHANGELOG.md 2015-11-13 20:15:09 -07:00
Joe Topjian f2a5064538 Merge pull request #3857 from jtopjian/jtopjian-openstack-secgroup-rule-fix2
provider/openstack: Security Group Rule fixes
2015-11-13 20:13:46 -07:00
Jonathan Groth 8491f0883d Correct argument reference for `certificate` 2015-11-13 17:13:20 -05:00
Radek Simko 0822776de0 provider/aws: If ecs_service isn't found during Read, delete it 2015-11-13 21:45:21 +00:00