Commit Graph

3384 Commits

Author SHA1 Message Date
Mitchell Hashimoto
865de51816 dag: do a DFS for each vertex 2015-02-27 19:37:59 -08:00
Mitchell Hashimoto
9eb7ebbddd terraform: do the transitive reduction as part of the graph builder 2015-02-27 19:23:20 -08:00
Mitchell Hashimoto
903e49162d terraform: add TransitiveReductionTransformer 2015-02-27 19:18:04 -08:00
Mitchell Hashimoto
ed2075e384 dag: TransitiveReduction 2015-02-27 19:12:19 -08:00
Mitchell Hashimoto
abd68c2c87 update cHANGELOG 2015-02-27 13:45:59 -08:00
Mitchell Hashimoto
d01c764966 Merge pull request #1068 from hashicorp/f-lang-math
Add math support to embedded interpolation language
2015-02-27 13:44:57 -08:00
Jack Pearkes
f680e9a0f8 Update CHANGELOG.md 2015-02-27 09:38:44 -08:00
Jack Pearkes
6f27f90ae1 providers/aws: increase db instance wait times 2015-02-27 09:38:07 -08:00
Jack Pearkes
053a7c0a8b Merge pull request #1052 from TimeInc/hct-bugfix
Bug: Prevent empty string to be used as default health_check_type
2015-02-27 09:33:46 -08:00
Clint
1f7e71b7f6 Merge pull request #1075 from hashicorp/aws-go-remove-goamz-rds
provider/aws: Remove goamz/rds, only use aws-sdk-go for RDS
2015-02-27 10:57:58 -06:00
Clint
0adb052c11 provider/aws: Remove goamz/rds
consolidates the conversion of AWS RDS to aws-sdk-go
2015-02-27 10:54:37 -06:00
Clint
a222eb183b Merge pull request #1067 from hashicorp/aws-go-db-subnet
provider/aws: convert aws rds subnet to aws-sdk-go
2015-02-27 10:50:21 -06:00
Clint Shryock
b5590c6247 provider/aws: convert aws rds subnet to aws-sdk-go 2015-02-27 09:56:38 -06:00
Clint
c44d0e6301 Merge pull request #1064 from hashicorp/aws-go-db-security-group
provider/aws: Convert AWS DB Security Group to aws-sdk-go
2015-02-27 08:49:48 -06:00
Mitchell Hashimoto
c287cc6d65 update cHANGELOG 2015-02-26 23:56:12 -08:00
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
Mitchell Hashimoto
5848cba6ad config/lang: add modulo 2015-02-26 15:17:37 -08: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
3c4a036fb5 config/lang: add (expr) for order of ops 2015-02-26 14:39:04 -08:00
Mitchell Hashimoto
6750318bb5 config/lang: add test with expressions 2015-02-26 14:34:45 -08:00
Mitchell Hashimoto
9ddcaf15eb config/lang: fix shift/reduce conflict 2015-02-26 14:33:56 -08:00
Mitchell Hashimoto
6f9a358cc4 command/taint: fix comment 2015-02-26 14:30:02 -08:00
Mitchell Hashimoto
07b78fdf84 config/lang: math operations 2015-02-26 14:26:14 -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
Clint Shryock
f453d1863a remove helper functions, flatten status in the function 2015-02-26 15:47:30 -06:00
Clint Shryock
561e92e65d provider/aws: Convert db security group test 2015-02-26 15:36:38 -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
Clint Shryock
ac8da7a988 provider/aws: Convert AWS DB Security Group to aws-sdk-go
Part 1: converting the test next
2015-02-26 15:08:39 -06:00
Mitchell Hashimoto
684228e371 config/lang: add math operations for ints 2015-02-26 11:32:39 -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 Shryock
bd2791824f Update ingress signature 2015-02-26 11:03:56 -06: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