Paul Hinze
52c4bfbe98
core: fix deadlock when dependable node replaced with non-dependable one
...
In #2884 , Terraform would hang on graphs with an orphaned resource
depended on an orphaned module.
This is because orphan module nodes (which are dependable) were getting
expanded (replaced) with GraphNodeBasicSubgraph nodes (which are _not_
dependable).
The old `graph.Replace()` code resulted in GraphNodeBasicSubgraph being
entered into the lookaside table, even though it is not dependable.
This resulted in an untraversable edge in the graph, so the graph would
hang and wait forever.
Now, we remove entries from the lookaside table when a dependable node
is being replaced with a non-dependable node. This means we lose an
edge, but we can move forward. It's ~probably~ never correct to be
replacing depenable nodes with non-dependable ones, but this tweak
seemed preferable to tossing a panic in there.
2015-08-10 15:50:36 -05:00
Mitchell Hashimoto
8bf725e746
terraform: GraphNodeDependent
2015-02-19 12:07:53 -08:00
Mitchell Hashimoto
cb4e364aca
terraform: more tests
2015-02-19 12:07:52 -08:00
Mitchell Hashimoto
3820aea513
terraform: make adding config nodes a transformer
2015-02-19 12:07:52 -08:00
Mitchell Hashimoto
c18825800b
terraform: rename graph to graph_old*.go
2015-02-19 12:07:52 -08:00
Mitchell Hashimoto
659f0db8cf
terraform: Graph => GraphOld
2015-02-19 12:07:52 -08:00
Mitchell Hashimoto
71918efd96
terraform: Add more tests for cases we felt weren't well covered
2014-12-16 15:59:26 -08:00
Armon Dadgar
56a34087ba
terraform: test orphan dependency inversion
2014-11-24 15:42:58 -08:00
Armon Dadgar
5376e05add
terraform: test encoding module dependencies
2014-11-24 15:25:37 -08:00
Armon Dadgar
6af820f78b
terraform: test graph with orphan module dependencies
2014-11-24 15:22:37 -08:00
Armon Dadgar
3bdaccdf5d
terraform: testing the destroy order of modules
2014-11-24 14:58:52 -08:00
Mitchell Hashimoto
06889b8fc7
terraform: make sure taint destroys happen first for counts
2014-10-12 09:50:36 -07:00
Mitchell Hashimoto
7af9179edd
terraform: remove old test
2014-10-12 09:45:01 -07:00
Mitchell Hashimoto
f74a27d75f
terraform: provisioner dependencies are reflected in graph
2014-10-12 09:15:26 -07:00
Mitchell Hashimoto
d4d58ae44b
terraform: turn resource expand into graph
2014-10-12 08:57:08 -07:00
Mitchell Hashimoto
129e4fc453
terraform: fix crash if depends_on used when state has orphans
2014-10-11 13:20:11 -07:00
Mitchell Hashimoto
36f225dea0
fmt
2014-10-10 14:50:35 -07:00
Mitchell Hashimoto
039531e9ca
terraform: dependencies in the graph from count properly show up
2014-10-02 13:54:04 -07:00
Mitchell Hashimoto
4fe0c4ada4
terraform: don't use Meta node anymore
2014-10-01 18:06:25 -07:00
Armon Dadgar
9a6c8490a0
terraform: Updating tests for modules
2014-09-29 15:27:56 -07:00
Armon Dadgar
4fe05428b3
terraform: Avoid having multiple primaries
2014-09-29 15:20:03 -07:00
Armon Dadgar
f398708be2
terraform: Adding flag for CreateBeforeDestroy
2014-09-29 15:20:03 -07:00
Armon Dadgar
aef7718778
terraform: support create-before-destroy
2014-09-29 15:20:02 -07:00
Mitchell Hashimoto
2ac6c127bc
terraform: orphans should properly depend on modules
2014-09-26 10:03:10 -07:00
Mitchell Hashimoto
4782e31e9d
terraform: properly encode module dependencies in state
2014-09-26 09:38:53 -07:00
Mitchell Hashimoto
1fa3840a00
terraform: handle module dependencies with a diff
2014-09-26 09:20:01 -07:00
Mitchell Hashimoto
6904c131a7
terraform: test that unused providers are pruned
2014-09-24 16:02:42 -07:00
Mitchell Hashimoto
1f1563c95b
terraform: provider inheritence is functional
2014-09-24 13:58:07 -07:00
Mitchell Hashimoto
8dbc7e0ccb
terraform: change the graph a bit to better support providers with
...
modules
This doesn't cause inheritence to work yet. That is coming
2014-09-24 13:31:35 -07:00
Mitchell Hashimoto
6b2781d77c
terraform: module orphans
2014-09-23 14:57:17 -07:00
Mitchell Hashimoto
d443202b31
terraform: fix copying dependencies
2014-09-23 14:20:26 -07:00
Mitchell Hashimoto
b1a583e3de
terraform: plan with modules work
2014-09-23 14:15:40 -07:00
Mitchell Hashimoto
bc67e7c443
terraform: diff is split down into modules
2014-09-23 11:43:21 -07:00
Mitchell Hashimoto
a6f792b3aa
terraform: update graph to build subgraphs for modules
2014-09-22 16:48:18 -07:00
Mitchell Hashimoto
a32833af2c
terraform: Graph, Context, Plan all speak modules
2014-09-22 15:37:29 -07:00
Mitchell Hashimoto
1d106d3fa4
terraform: modules are put into the graph
2014-09-22 15:11:57 -07:00
Mitchell Hashimoto
73e2a43427
terraform: don't put the ResourceState in Resource
2014-09-21 22:08:21 -07:00
Mitchell Hashimoto
f89c2c5ff0
terraform: graph tainted resources into the graph
2014-09-19 21:29:48 -06:00
Armon Dadgar
5ef46b797b
terraform: fixing dependency handling for orphans
2014-09-18 15:39:53 -07:00
Armon Dadgar
b2188d7fe8
terraform: properly handle diff generation with meta resources
2014-09-18 14:31:27 -07:00
Armon Dadgar
a9c4b523db
terraform: Encode dependencies of ResourceMeta ndoes
2014-09-18 11:22:40 -07:00
Armon Dadgar
d61f199d6f
terraform: test dependency encoding
2014-09-18 11:12:39 -07:00
Mitchell Hashimoto
7a2591190b
terraform: fix graph test
2014-09-17 17:52:24 -07:00
Mitchell Hashimoto
9b2b3a963f
ResourceDiff => InstanceDiff
2014-09-17 16:33:24 -07:00
Armon Dadgar
4b0f970659
terraform: fixing test errors
2014-09-16 15:09:40 -07:00
Mitchell Hashimoto
28a2e7b979
terraform: depends_on with count creates proper graph [GH-244]
2014-08-30 16:08:50 -07:00
Mitchell Hashimoto
f47956d62f
terraform: dependsOn builds into the graph
2014-07-22 18:20:03 -07:00
Armon Dadgar
eaf2c46dc5
terraform: Testing passthrough of ConnInfo
2014-07-15 12:34:06 -07:00
Armon Dadgar
e8245f1a67
terraform: Testing graph construction with provisioners
2014-07-10 11:38:56 -07:00
Mitchell Hashimoto
9f56fc8ddc
terraform: copy the proper dependencies over on destroy plan
2014-07-07 15:43:32 -07:00