Commit Graph

2650 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 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 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 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 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 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 shryock 8085e55eda fix issue with undefined var 2015-11-16 16:29:52 -06: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 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 afb416fba4 Merge pull request #2807 from dwradcliffe/f-dyn-provider
add Dyn provider
2015-11-16 13:53:44 -06: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
Rafal Jeczalik 4f25b552bb use single import path for aws-sdk-go 2015-11-16 00:42:08 +01: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 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 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 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
Radek Simko 0822776de0 provider/aws: If ecs_service isn't found during Read, delete it 2015-11-13 21:45:21 +00:00
Radek Simko d9a5de7f7d provider/aws: Prevent crashing when deleting ecs_service which is gone
- fixes https://github.com/hashicorp/terraform/issues/3868
2015-11-13 21:42:29 +00:00
clint shryock 7d94c86958 go fmt structure files 2015-11-13 13:53:52 -06:00
Paul Hinze 928f534cfc template_file: source contents instead of path
Building on the work of #3846, deprecate `filename` in favor of a
`template` attribute that accepts file contents instead of a path.

Required a bit of work in the interpolation code to prevent Terraform
from assuming that template interpolations were resource variables that
needed to be resolved. Leaving them as "Unknown Variables" prevents
interpolation from happening early and lets the `template_file` resource
do its thing.
2015-11-13 11:24:20 -06:00
Paul Hinze 44f259bd74 provider/aws: homedir expand in s3 object source
fixes #3856
2015-11-13 11:21:22 -06:00
Joe Topjian edd8e722bf provider/openstack: Make Networking Port attributes more intuitive
This commit makes some quick updates to the port attributes to make them
more intuitive:

* `security_groups` to `security_group_ids`: since the port is expecting
IDs and not security group names like in other areas of OpenStack.

* `admin_state_up`: change to Boolean to match this same attribute on
other resources.

* `fixed_ips` to `fixed_ip`: while multiple `fixed_ip` blocks can be
specified, only one fixed IP can be specified in each block.
2015-11-13 04:46:12 +00:00
Joe Topjian 4d6e3289bc provider/openstack: adding test for router interface port 2015-11-13 04:04:05 +00:00
Kirill Shirinkin 3a1a242a7a provider/openstack: Allow port_id for router interface 2015-11-13 03:13:12 +00:00
James Nugent 839fc5bfee Merge pull request #3900 from Banno/fix-aws-route53-record-failover-weight
provider/aws: fix for creating failover route53 records
2015-11-12 16:56:59 -06:00
Luke Amdor 10ca0559ae provider/aws: no weight for all set_identifier 2015-11-12 16:15:05 -06:00
Paul Hinze 73ce6d184a chef: read key contents instead of paths
Builds on the work of #3846, shifting the Chef provisioner's
configuration options from `secret_key_path` and `validation_key_path`
over to `secret_key` and `validation_key`.
2015-11-12 16:11:44 -06:00
clint shryock 5cafe740ff update wording on ssl cert error 2015-11-12 14:25:50 -06:00
clint shryock 1b2e068b19 add extra test block 2015-11-12 14:25:50 -06:00
clint shryock fddafd2b96 providers/aws: Document and validate ELB ssl_cert and protocol requirements 2015-11-12 14:25:50 -06:00
Clint dcf40661c8 Merge pull request #3863 from hashicorp/b-aws-elb-access-fix
providers/aws: Fix issue with removing access_logs from ELB
2015-11-12 14:24:58 -06:00
clint shryock 12d2ae1438 patch TestExpandElasticacheParameters test 2015-11-12 10:45:49 -06:00
clint shryock e7e52ed98f Correct test method names so that they are ran 2015-11-12 10:36:22 -06:00
James Nugent cbbe06388f Merge pull request #3883 from lwander/f-gcp-https-health-checks
provider/google: HTTPS Health Checks Resource + Tests & Documentation
2015-11-12 10:02:39 -06:00
Lars Wander 28819603ba provider/google: HTTPS health checks resource + tests & documentation 2015-11-12 10:48:26 -05:00
Michael H. Oshita 90d70786ac Align IAM version number to the current version (2012-10-17) 2015-11-13 00:32:45 +09:00
Joe Topjian 3db7922b53 provider/openstack: Security Group Rule fixes
This commit fixes an issue with security group rules where the rules
were not being correctly computed due to a typo in the rule map.

Once rules were successfully computed, the rules then needed to be
converted into a Set so they can be correctly ordered.
2015-11-12 03:15:52 +00:00
Radek Simko 15a568c806 Merge pull request #3828 from TimeIncOSS/b-aws-ecs-service-del
provider/aws: Treat ecs_service w/ Status==INACTIVE as deleted
2015-11-12 00:01:50 +00:00
Radek Simko bcd63f62a3 provider/aws: Log removal of INACTIVE ECS service 2015-11-11 23:53:59 +00:00
clint shryock 7f2244183c providers/aws: Fix issue with removing access_logs from ELB 2015-11-11 15:25:24 -06:00
clint shryock b51f425dac replace big retry func with resource.Retry 2015-11-11 10:53:23 -06:00