Commit Graph

3358 Commits

Author SHA1 Message Date
Mitchell Hashimoto ac6efa5e57 Merge pull request #1065 from hashicorp/f-taint
Add "taint" command
2015-02-26 23:55:20 -08:00
Mitchell Hashimoto 06d1a242d2 Merge pull request #1069 from hashicorp/b-tainted-double-destroy
core: band-aid fix for tainted double destroy
2015-02-26 23:50:56 -08:00
Paul Hinze c03e44106f core: band-aid fix for tainted double destroy
After a lot of fun debugging with @mitchellh we finally have a diagnosis
for #1056.

I'm going to attempt to reproduce the diagnosis in prose to test out my
understanding.

----

The `DestroyTransformer` runs twice:

 * `DestroyPrimary` mode creates destroy nodes for normal resources
 * `DestroyTainted` mode creates destroy nodes for tainted resources

These destroy nodes are specializations of `GraphConfigNode`, which has
a `DynamicExpand` step.

In `DynamicExpand` we have a race condition between the normal destroy
node and the tainted destroy node for a given resource when
`CreateBeforeDestroy` is off.

The `DestroyTainted` `GraphConfigNode` must run the `TaintedTransform`
to draw out tainted nodes, since it is reponsible for destroying them
for replacement.

The `DestroyPrimary` `GraphConfigNode` _also_ runs `TaintedTransform` -
this is to catch `Deposed` nodes from CBD, which are piggy backing on
the end of the `Tainted` list.

Here's the bug: when CBD is off and you start an apply with a tainted
resource in your state, both `DestroyPrimary` and `DestroyTainted` catch
it and create their own `graphNodeTaintedResource` in their respective
subgraphs.

If parallelism is disabled, this doesn't happen because the
`DestroyPrimary` subgraph resolves completely before the
`DestroyTainted` node does its `DynamicExpand`, so the `Tainted` list
has been cleared by the time `DestroyTainted` is expanding. With
parallelism, each of these two subgraphs plays out in its own goroutine
simultaneously, and each picks up the tainted resource(s) that the apply
starts with.  So you get two `graphNodeTaintedResource` nodes, and two
destroys.

This band-aid fixes that by skipping the TaintedTransform alltogether in
the `DestroyPrimary` node if CBD is off.

A better fix will follow, which involves reworking the `Deposed` concept
so it no longer piggybacks on `Tainted`.

fixes #1056
2015-02-26 22:32:50 -06:00
Jack Pearkes 14066c7629 update changelog 2015-02-26 14:56:27 -08:00
Jack Pearkes 5c74a63f3d Merge pull request #1062 from hashicorp/configure-wait-checks
providers/digitalocean: Configure wait checks
2015-02-26 14:55:24 -08:00
Mitchell Hashimoto 6f9a358cc4 command/taint: fix comment 2015-02-26 14:30:02 -08:00
Jack Pearkes c21c766c3e website: route53 subdomain hosted zones example 2015-02-26 14:20:30 -08:00
Clint e95ebaf6ce Merge pull request #1066 from hashicorp/aws-go-db-param-group-test
provider/aws: convert db param group test to use aws-sdk-go
2015-02-26 16:00:59 -06:00
Clint Shryock 659ddd6fa1 provider/aws: convert db param group test to use aws-sdk-go 2015-02-26 15:54:03 -06:00
Jack Pearkes 03cd4ec604 Merge pull request #1061 from hashicorp/digitalocean-droplet-bools
providers/digitalocean: use real bools for droplet creation
2015-02-26 13:28:16 -08:00
Mitchell Hashimoto d411e2939f command/taint: -allow-missing 2015-02-26 10:56:45 -08:00
Mitchell Hashimoto d43c88f5f3 website: update docs for tainted 2015-02-26 10:45:39 -08:00
Mitchell Hashimoto 01aa4236c0 command/taint: support tainting resources in modules 2015-02-26 10:44:25 -08:00
Mitchell Hashimoto fa9b655fd1 website: docs for tainted command 2015-02-26 10:37:08 -08:00
Mitchell Hashimoto b06a88d1ab main: add the taint command 2015-02-26 10:29:51 -08:00
Mitchell Hashimoto 4ec31ecb95 command/taint: new command 2015-02-26 10:29:23 -08:00
Jack Pearkes 8ab4d37f7c providers/digitalocean: be more lenient for droplets 404ing on creation 2015-02-26 10:00:54 -08:00
Jack Pearkes c180487af6 helper/resource: allow configuration of not found checks in state change 2015-02-26 09:59:42 -08:00
Mitchell Hashimoto b3cd1bd5bc terraform: add ResourceState.Taint 2015-02-26 09:58:56 -08:00
Mitchell Hashimoto 341be226f4 terraform: test for various taint cases 2015-02-26 09:50:18 -08:00
Jack Pearkes 74b7137cdc providers/digitalocean: use real bools for droplet creation
Fixes #792
Depends on https://github.com/pearkes/digitalocean/pull/5
2015-02-26 09:37:05 -08:00
Jack Pearkes b7459cbc64 update changelog 2015-02-26 09:21:00 -08:00
Jack Pearkes 7008880ac8 Merge pull request #1057 from hashicorp/digitalocean-droplet-destroy
providers/digitalocean: wait for droplet to be unlocked before destroy
2015-02-26 09:19:33 -08:00
Clint 8c49955fff Merge pull request #1060 from hashicorp/aws-go-db-parameter-group
provider/aws: Convert RDS DB Parameter group to aws-sdk-go
2015-02-26 09:49:24 -06:00
Clint Shryock 242cdc7a29 provider/aws: Convert RDS DB Parameter group to aws-sdk-go 2015-02-26 09:33:33 -06:00
Clint c52ee17e77 Merge pull request #1053 from hashicorp/hashicorp-aws-sdk
provider/aws: Swap awslabs/aws-sdk-go for hashicorp fork
2015-02-26 08:36:16 -06:00
Jack Pearkes 3f217763c7 providers/digitalocean: wait for droplet to be unlocked before destroy 2015-02-25 16:54:39 -08:00
Jack Pearkes f2e92cfeab providers/digitalocean: increase timeout for droplet wait to 60 mins
fixes #325
2015-02-25 16:08:35 -08:00
Jack Pearkes 0ee4e2b46c providers/dme: rename dnsmadeeasy package to dme
This package rename just makes one consistent name across the docs,
packages, and dirs.

cc/ @soniah
2015-02-25 15:54:22 -08:00
Jack Pearkes 777d270f20 update changelog 2015-02-25 14:46:40 -08:00
Jack Pearkes 44f20cad6b dnsmadeeasy: re-organize the bins
cc/ @soniah
2015-02-25 14:45:11 -08:00
Jack Pearkes dfaa428728 Merge pull request #855 from soniah/dme
dme - DNSMadeEasy Provider
2015-02-25 14:38:38 -08:00
Clint Shryock f3ba181861 Swap awslabs/aws-sdk-go for hashicorp fork
A temporary change to prevent upstream break while awslabs continues to
refactor.
2015-02-25 15:29:11 -06:00
Clint 06136bd29e Merge pull request #1043 from hashicorp/aws-go-rds-instance
provider/aws: Convert AWS DB Instance to awslabs/aws-sdk-go
2015-02-25 14:13:37 -06:00
Clint Shryock 31236b8f9e Fix zero case 2015-02-25 11:05:14 -06:00
Clint Shryock 5252623656 provider/aws: Remove sentinel value default for RDS instance; default 1 to match API 2015-02-25 10:44:10 -06:00
Clint Shryock bb94eaa50d provider/aws: Fix issue with AWS RDS DB instance which prevented disabling backups 2015-02-25 09:41:05 -06:00
Clint Shryock 5bbb83905e Merge branch 'master' into aws-go-rds-instance
* master:
  terraform: destroy node should not create
2015-02-25 09:21:28 -06:00
Mitchell Hashimoto fc84b3a788 Merge pull request #1046 from hashicorp/b-destroy-not-create
terraform: destroy node should not create
2015-02-24 22:54:17 -08:00
Mitchell Hashimoto 6affc57b2d terraform: destroy node should not create 2015-02-24 22:45:47 -08:00
Clint Shryock 4064d29050 Merge branch 'master' into aws-go-rds-instance
* master:
  providers/aws: Convert Launch Configurations to awslabs/aws-sdk-go
  update CHANGELOG
  terraform: test post state update is called
  command: StateHook for continous state updates
  terraform: more state tests, fix a bug
  state: deep copies are required
  terraform: make DeepCopy public
  state/remote: increment serial properly
  state: only change serial if changed
  terraform: call the EvalUpdateStateHook strategically
  terraform: PostStateUpdate hook and EvalUpdateStateHook
2015-02-24 21:43:03 -06:00
Clint 53a75f63ba Merge pull request #1026 from hashicorp/aws-go-launch-configurations
providers/aws: Convert Launch Configurations to awslabs/aws-sdk-go
2015-02-24 21:41:36 -06:00
Clint Shryock 92bf85925b providers/aws: Convert Launch Configurations to awslabs/aws-sdk-go 2015-02-24 21:02:01 -06:00
Mitchell Hashimoto 2286fc5f20 update CHANGELOG 2015-02-24 17:36:15 -08:00
Mitchell Hashimoto 1fcbfcd19d Merge pull request #1037 from hashicorp/f-continuous-state
Continuous state persistance
2015-02-24 17:34:19 -08:00
Mitchell Hashimoto 42eed99899 Merge pull request #1036 from hashicorp/b-serial-on-change
Only increment serial on state change
2015-02-24 17:34:10 -08:00
Clint Shryock d79b0d7fd1 provider/aws: Convert AWS DB Instance over to awslabs/aws-sdk-go
- Remove check on password for AWS RDS Instance
- Update documentation on AWS RDS Instance regarding DB Security Groups
- Change error handling to check error code from AWS API [ci skip]
2015-02-24 16:51:47 -06:00
Paul Hinze 39e8f15752 Merge pull request #1024 from sparkprime/fix_network_interface
Fix network interface
2015-02-24 13:17:51 -06:00
Mitchell Hashimoto ac167c3082 terraform: test post state update is called 2015-02-23 22:10:31 -08:00
Mitchell Hashimoto 95cf69aa32 command: StateHook for continous state updates 2015-02-23 21:57:17 -08:00