Commit Graph

384 Commits

Author SHA1 Message Date
Mitchell Hashimoto
2a86b85646
terraform: start Import function, totally untested 2016-05-11 13:02:30 -07:00
James Nugent
f49583d25a core: support native list variables in config
This commit adds support for native list variables and outputs, building
up on the previous change to state. Interpolation functions now return
native lists in preference to StringList.

List variables are defined like this:

variable "test" {
    # This can also be inferred
    type = "list"
    default = ["Hello", "World"]
}

output "test_out" {
    value = "${var.a_list}"
}
This results in the following state:

```
...
            "outputs": {
                "test_out": [
                    "hello",
                    "world"
                ]
            },
...
```

And the result of terraform output is as follows:

```
$ terraform output
test_out = [
  hello
  world
]
```

Using the output name, an xargs-friendly representation is output:

```
$ terraform output test_out
hello
world
```

The output command also supports indexing into the list (with
appropriate range checking and no wrapping):

```
$ terraform output test_out 1
world
```

Along with maps, list outputs from one module may be passed as variables
into another, removing the need for the `join(",", var.list_as_string)`
and `split(",", var.list_as_string)` which was previously necessary in
Terraform configuration.

This commit also updates the tests and implementations of built-in
interpolation functions to take and return native lists where
appropriate.

A backwards compatibility note: previously the concat interpolation
function was capable of concatenating either strings or lists. The
strings use case was deprectated a long time ago but still remained.
Because we cannot return `ast.TypeAny` from an interpolation function,
this use case is no longer supported for strings - `concat` is only
capable of concatenating lists. This should not be a huge issue - the
type checker picks up incorrect parameters, and the native HIL string
concatenation - or the `join` function - can be used to replicate the
missing behaviour.
2016-05-10 14:49:14 -04:00
Mitchell Hashimoto
35c87836b4 core: Add terraform_version to state
This adds a field terraform_version to the state that represents the
Terraform version that wrote that state. If Terraform encounters a state
written by a future version, it will error. You must use at least the
version that wrote that state.

Internally we have fields to override this behavior (StateFutureAllowed),
but I chose not to expose them as CLI flags, since the user can just
modify the state directly. This is tricky, but should be tricky to
represent the horrible disaster that can happen by enabling it.

We didn't have to bump the state format version since the absense of the
field means it was written by version "0.0.0" which will always be
older. In effect though this change will always apply to version 2 of
the state since it appears in 0.7 which bumped the version for other
purposes.
2016-05-10 14:40:11 -04:00
Paul Hinze
f882dd1427 core: Encode Targets in saved Planfile
When a user specifies `-target`s on a `terraform plan` and stores
the resulting diff in a plan file using `-out` - it usually works just
fine since the diff is scoped based on the targets.

When there are tainted resources in the state, however, graph nodes to
destroy them were popping back into the plan when it was being loaded
from a file. This was because Targets weren't being stored in the
Planfile, so Terraform didn't know to filter them out. (In the
non-Planfile scenario, we still had the Targets loaded directly from the
flags.)

By encoding Targets in with the Planfile we can ensure that the same
filters are always applied.

Backwards compatibility should be fine here, since we're just adding a
field. The gob encoder/decoder will just do the right thing (ignore/skip
the field) with planfiles stored w/ versions that don't know about
Targets.

Fixes #5183
2016-03-08 14:29:37 -06:00
Martin Atkins
8173cd25bb Demote some log lines to DEBUG.
Now that we support log line filtering (as of 0090c063) it's good to be
a bit more fussy about what log levels are assigned to different things.

Here we make a few things that are implementation details log as DEBUG,
and prevent spurious errors from EvalValidateCount where it was returning
an empty EvalValidateError rather than nil when everything was okay.
2015-10-11 10:45:33 -07:00
Radek Simko
40b04154fe Add operation walkDestroy 2015-10-03 14:16:40 -07:00
Paul Hinze
5c38456b05 core: don't prompt for variables with defaults
In `helper/schema` we already makes a distinction between `Default`
which is always applied and `InputDefault` which is displayed to the
user for an empty field.

But for variables we just have `Default` which is treated like
`InputDefault`. This changes it to _not_ prompt the user for a value
when the variable declaration includes a default.

Treating this as a UX bugfix and the "don't prompt for variables w/
defaults set" behavior as the originally expected behavior we were
failing to honor.

Added an already-passing test to verify and cover the `helper/schema`
behavior.

Perhaps down the road we can add a `input_default` attribute to
variables to allow similar behavior to `helper/schema` in variables, but
for now just sticking with the fix.

Fixes #2592
2015-07-02 10:40:30 -05:00
Mitchell Hashimoto
785defc870 terraform: fail early if module validation fails 2015-06-24 22:43:55 -07:00
Mitchell Hashimoto
0728e25f43 terraform: env vars are lower priority 2015-05-14 09:58:30 -07:00
Mitchell Hashimoto
fe74d69852 terraform: validation should succeed if env var set [GH-1930] 2015-05-13 20:09:05 -07:00
Paul Hinze
0fff7d1673 core: validate graph w/ diff during plan phase
This reimplements my prior attempt at nipping issues where a plan did
not yield the same cycle an apply did. My prior attempt was to have
ctx.Validate generate a "Verbose" worst-case graph. It turns out that
skipping PruneDestroyTransformer to generate this graph misses important
heuristics that prevent cycles by dropping destroy nodes that are
determined to be unused.

This resulted in Validate improperly failing in scenarios where these
heuristics would have broken the cycle.

We detected the problem during the work on #1781 and worked around the
issue by reverting to the non-Verbose graph in Validate.

This commit accomplishes the original goal in a better way - by
generating the full graph and checking it once Plan has calculated the
diff. This guarantees that any graph issue that would be caught by Apply
will be caught by Plan.
2015-05-05 17:24:44 -05:00
Mitchell Hashimoto
6d4969f64c terraform: run prune destroy on validate 2015-05-05 12:11:49 -07:00
Paul Hinze
d4b9362518 core: validate on verbose graph to detect some cycles earlier
Most CBD-related cycles include destroy nodes, and destroy nodes were
all being pruned from the graph before staring the Validate walk.

In practice this meant that we had scenarios that would error out with
graph cycles on Apply that _seemed_ fine during Plan.

This introduces a Verbose option to the GraphBuilder that tells it to
generate a "worst-case" graph. Validate sets this to true so that cycle
errors will always trigger at this step if they're going to happen.

(This Verbose option will be exposed as a CLI flag to `terraform graph`
in a second incoming PR.)

refs #1651
2015-04-23 11:07:13 -05:00
Mitchell Hashimoto
7a1592ff1e terraform: don't panic on input for bad default type [GH-1344] 2015-04-18 16:31:21 -07:00
Paul Hinze
97acccd3ed core: targeted operations
Add `-target=resource` flag to core operations, allowing users to
target specific resources in their infrastructure. When `-target` is
used, the operation will only apply to that resource and its
dependencies.

The calculated dependencies are different depending on whether we're
running a normal operation or a `terraform destroy`.

Generally, "dependencies" refers to ancestors: resources falling
_before_ the target in the graph, because their changes are required to
accurately act on the target.

For destroys, "dependencies" are descendents: those resources which fall
_after_ the target. These resources depend on our target, which is going
to be destroyed, so they should also be destroyed.
2015-03-31 14:49:38 -05:00
Mitchell Hashimoto
5e27bfc040 command/push: read name from the config 2015-03-24 13:30:23 -07:00
Mitchell Hashimoto
22087181af command/push: archive, upload 2015-03-24 13:30:22 -07:00
Mitchell Hashimoto
2dce764d75 terraform: add input mode to only ask for unset variables
This adds a new input mode for Context.Input() that will only ask for
variable values that are not set.
2015-03-24 13:30:21 -07:00
Mitchell Hashimoto
f3af221866 terraform: make DeepCopy public 2015-02-23 21:32:27 -08:00
Mitchell Hashimoto
709c40026c terraform: remove debug println 2015-02-23 13:45:45 -08:00
Mitchell Hashimoto
fa222a44c3 terraform: limit parallelism 2015-02-19 12:08:34 -08:00
Mitchell Hashimoto
459ad04d71 terraform: provider cache should append the provider name to it 2015-02-19 12:08:33 -08:00
Mitchell Hashimoto
b1e5b32322 terraform: Graph returns *Graph for now 2015-02-19 12:08:32 -08:00
Mitchell Hashimoto
7552abed8b terraform: fix Refresh func signature 2015-02-19 12:08:32 -08:00
Mitchell Hashimoto
7ccba588ac terraform: gofmt -w -r 'Context2 -> Context' terraform/ 2015-02-19 12:08:32 -08:00
Mitchell Hashimoto
e37c187228 terraform: goodbye context.go (old) 2015-02-19 12:08:32 -08:00
Mitchell Hashimoto
7c78a3749e terraform: provider input 2015-02-19 12:08:08 -08:00
Mitchell Hashimoto
f3714f1efc terraform: start Input 2015-02-19 12:08:08 -08:00
Mitchell Hashimoto
c8091aa338 terraform: fix more create-before-destroy state juggling 2015-02-19 12:08:07 -08:00
Mitchell Hashimoto
742b45886a terraform: destroy nodes work properly 2015-02-19 12:08:06 -08:00
Mitchell Hashimoto
10e82375f2 terraform: early exit and cancellation 2015-02-19 12:08:05 -08:00
Mitchell Hashimoto
a614f6105a terraform: apply starting 2015-02-19 12:08:04 -08:00
Mitchell Hashimoto
93f3050dbd terraform: make things more linear 2015-02-19 12:08:04 -08:00
Mitchell Hashimoto
23d097ee53 terraform: module inputs are passed through to subgraphs 2015-02-19 12:08:01 -08:00
Mitchell Hashimoto
aae2d4c780 terraform: starting up the plans 2015-02-19 12:08:00 -08:00
Mitchell Hashimoto
e5e4ac7548 terraform: deep copy the state when refreshing 2015-02-19 12:08:00 -08:00
Mitchell Hashimoto
379c37dd06 terraform: refresh hooks 2015-02-19 12:08:00 -08:00
Mitchell Hashimoto
a616c362de terraform: more tests 2015-02-19 12:08:00 -08:00
Mitchell Hashimoto
1e962b868d terraform: Refresh, Read/Write state 2015-02-19 12:08:00 -08:00
Mitchell Hashimoto
863b9a4f45 terraform: filter eval nodes on operation 2015-02-19 12:07:59 -08:00
Mitchell Hashimoto
d94c4392eb terraform: validate provisioners 2015-02-19 12:07:58 -08:00
Mitchell Hashimoto
58347617e8 terraform: trying this graphwalker thing 2015-02-19 12:07:56 -08:00
Mitchell Hashimoto
10264a7def terraform: nicer errors by using multierror properly 2015-02-19 12:07:56 -08:00
Mitchell Hashimoto
d0786d20dd terraform: more passing tests 2015-02-19 12:07:56 -08:00
Mitchell Hashimoto
de3d9fb9d9 terraform: evaluation interpolater connect 2015-02-19 12:07:56 -08:00
Mitchell Hashimoto
c308405b53 terraform: validation in progress 2015-02-19 12:07:55 -08:00
Mitchell Hashimoto
d9a964f44c terraform: validate almost done 2015-02-19 12:07:55 -08:00
Mitchell Hashimoto
9f70c6fad5 terraform: rename context 2015-02-19 12:07:54 -08:00
Mitchell Hashimoto
659f0db8cf terraform: Graph => GraphOld 2015-02-19 12:07:52 -08:00
Mitchell Hashimoto
2abeb2d9ac config: use new API 2015-01-14 22:03:15 -08:00
Mitchell Hashimoto
8ae14f06b3 config: variables must be typed 2015-01-14 10:40:43 -08:00
Mitchell Hashimoto
1429ac6a7f terraform: return unknown variable value if nil 2014-12-16 18:43:18 -08:00
Mitchell Hashimoto
ef60ac5b8c terraform: update comment 2014-12-16 08:24:21 -08:00
Mitchell Hashimoto
e5f07567c6 terraform: module input to another module doesn't error [GH-659] 2014-12-16 08:23:19 -08:00
Armon Dadgar
f1cb297c59 terraform: Fixing issue with computed maps 2014-12-09 00:51:28 -08:00
Armon Dadgar
0a3d7bd121 terraform: Check module config for resource instead of state 2014-12-09 00:25:06 -08:00
Mitchell Hashimoto
e82a28529d terraform: return errors for interpolations 2014-12-08 23:57:01 -08:00
Luke Amdor
ca48dcab4a no module state, we shouldn't fail multivars yet 2014-12-06 15:30:19 -06:00
Luke Amdor
6dcb7166d1 fix destroy so incoming module vars get set 2014-12-05 17:18:45 -06:00
Luke Amdor
fead5872e5 Fix for multivars when modulestate not created yet 2014-12-02 13:53:09 -06:00
Luke Amdor
4b3bf76406 looking up count of multivars in module config 2014-11-28 07:14:58 -06:00
Armon Dadgar
a5d444b8e3 terraform: fix module output handling. Fixes #474 2014-11-24 19:18:52 -08:00
Armon Dadgar
f26b8df92f Merge pull request #598 from hashicorp/f-mod-deps
Fix dependency handling of modules
2014-11-24 18:53:22 -08:00
Armon Dadgar
5b025c89f9 terraform: guard output types. Fixes #593 2014-11-24 16:49:38 -08:00
Armon Dadgar
d5fd4dabe8 terraform: Mark modules for destroy 2014-11-24 14:15:24 -08:00
Emil Hessman
4bfe18b40d argument and verb formatting fixes reported by go vet
builtin/providers/aws/tags_test.go:56: unrecognized printf verb 'i'
builtin/providers/aws/tags_test.go:59: unrecognized printf verb 'i'

config/config_test.go:101: possible formatting directive in Fatal call
config/config_test.go:157: possible formatting directive in Fatal call

config/module/get_file_test.go:91: missing argument for Fatalf(%s): format reads arg 1, have only 0 args

helper/schema/schema.go:341: arg v.Type for printf verb %s of wrong type: schema.ValueType
helper/schema/schema.go:656: missing argument for Errorf(%s): format reads arg 2, have only 1 args
helper/schema/schema.go:912: arg schema.Type for printf verb %s of wrong type: schema.ValueType

terraform/context.go:178: arg v.Type() for printf verb %s of wrong type: github.com/hashicorp/terraform/config.VariableType
terraform/context.go:486: arg c.Operation for printf verb %s of wrong type: terraform.walkOperation

terraform/diff_test.go💯 arg actual for printf verb %s of wrong type: terraform.DiffChangeType
terraform/diff_test.go:235: arg actual for printf verb %s of wrong type: terraform.DiffChangeType
2014-11-02 13:56:44 +01:00
Mitchell Hashimoto
22f09b487b terraform: refresh ignores variables with no values [GH-478] 2014-10-20 23:08:17 -07:00
Mitchell Hashimoto
0908e8f42c terraform: don't fail refresh if output doesn't exist [GH-483] 2014-10-20 18:45:52 -07:00
Mitchell Hashimoto
686871310d terraform: input properly sends on only set input 2014-10-18 14:54:42 -07:00
Mitchell Hashimoto
0a5e06d62c terraform: merge interpolated inherited provider configurations [GH-418] 2014-10-18 13:58:01 -07:00
Mitchell Hashimoto
f03ab178bf terraform: don't execute provisioners on destroy 2014-10-18 11:37:26 -07:00
Mitchell Hashimoto
990b814188 terraform: set count to 1 while validating [GH-442] 2014-10-17 18:18:28 -07:00
Mitchell Hashimoto
f626c5df96 terraform: validation works with count if default [GH-442] 2014-10-17 18:06:54 -07:00
Mitchell Hashimoto
82bf4f485b terraform: taint resources who error on create with provisioners
[GH-434]
2014-10-16 23:19:07 -07:00
Mitchell Hashimoto
de4c922c9c terraform: validation with unknown variables works [GH-432] 2014-10-16 15:54:56 -07:00
Armon Dadgar
422b82648c terraform: Switch to using semaphore 2014-10-16 10:04:36 -07:00
Mitchell Hashimoto
5596ee7f53 terraform: don't panic if no state in Walk return [GH-403] 2014-10-15 20:32:19 -07:00
Mitchell Hashimoto
ce61b5caec terraform: no outputs if we have no resources 2014-10-12 22:49:05 -07:00
Mitchell Hashimoto
d4d58ae44b terraform: turn resource expand into graph 2014-10-12 08:57:08 -07:00
Mitchell Hashimoto
ecafcfa682 terraform: don't validate tainted resources 2014-10-11 16:02:07 -07:00
Mitchell Hashimoto
6e7d23d612 terraform: don't crash if validating orphan 2014-10-11 15:58:52 -07:00
Mitchell Hashimoto
e5ce6a97a3 Merge pull request #385 from hashicorp/f-splat-wtf
Fix variable "splatting"
2014-10-09 23:18:10 -07:00
Mitchell Hashimoto
975d564a22 terraform: remove debug stuff 2014-10-09 23:16:59 -07:00
Mitchell Hashimoto
6c96e0f6ac terraform: nil out the Diff on a resource when expanding
This fixes a bug where the Destroy diff was being kept around for
nodes that shouldn't be destroyed. We added a test to verify this
doesn't happen.
2014-10-09 23:15:42 -07:00
Mitchell Hashimoto
865ec6a6bf terraform: use the InterpSplitDelim 2014-10-09 16:17:00 -07:00
Mitchell Hashimoto
9dd7618fce config: fix messaging for name symbols 2014-10-08 16:12:53 -07:00
Mitchell Hashimoto
9ed89dbabd terraform: make wording better 2014-10-08 16:01:13 -07:00
Mitchell Hashimoto
36f4a644b6 terraform: warn if the name has special characters 2014-10-08 15:59:50 -07:00
Mitchell Hashimoto
8b5c120ecf terraform: add InputMode to determine what is asked for 2014-10-08 10:18:45 -07:00
Mitchell Hashimoto
d714c6f2f1 terraform: test path variables 2014-10-07 20:09:30 -07:00
Mitchell Hashimoto
28acb7baa8 Merge pull request #361 from hashicorp/f-provisioner-ui
Foundational support for UI output from provisioners
2014-10-05 08:29:18 -07:00
Mitchell Hashimoto
b713f1ac8d terraform: no longer check for nil diff as error 2014-10-04 16:47:42 -07:00
Mitchell Hashimoto
76f5f1057e terraform: no longer require uiOutput, do it auto in Hook 2014-10-04 16:24:07 -07:00
Mitchell Hashimoto
d7a1f3dc0e terraform: prefix the provisioner output 2014-10-04 10:38:46 -07:00
Mitchell Hashimoto
8b129babe5 terraform: change provisioners to take UIOutput 2014-10-04 09:20:05 -07:00
Mitchell Hashimoto
94f43ff145 terraform: fix crash if outputs with no state [GH-358] 2014-10-03 15:57:43 -07:00
Mitchell Hashimoto
2f2be4e936 terraform: show variable defaults when prompting for inputs 2014-10-02 22:33:38 -07:00
Mitchell Hashimoto
1ddf5bfc5f terraform: guard against a nil resource 2014-10-02 22:24:01 -07:00
Mitchell Hashimoto
ea18b62e8f terraform: count.index 2014-10-02 22:02:59 -07:00
Mitchell Hashimoto
66c58788fe terraform: test count = 1 variable access 2014-10-02 17:24:22 -07:00
Mitchell Hashimoto
221e40a3a9 terraform: test count == zero 2014-10-02 17:18:40 -07:00
Mitchell Hashimoto
e4ba737392 terraform: validate count is non-negative 2014-10-02 17:14:25 -07:00
Mitchell Hashimoto
941e27b9f3 terraform: Validate expands properly 2014-10-02 13:24:38 -07:00
Mitchell Hashimoto
79520a19c4 terraform: walk the resource properly for destroy 2014-10-02 13:23:16 -07:00
Mitchell Hashimoto
3b89a7bdc7 terraform: more tests passing 2014-10-02 11:48:00 -07:00
Mitchell Hashimoto
fb1c224e12 terraform: expand resource nodes at walk time 2014-10-02 10:42:58 -07:00
Mitchell Hashimoto
fecb68f117 terraform: remove meta nodes 2014-10-01 18:08:52 -07:00
Armon Dadgar
4fe05428b3 terraform: Avoid having multiple primaries 2014-09-29 15:20:03 -07:00
Mitchell Hashimoto
d927c6e1f6 terraform: support var descriptions 2014-09-29 14:05:10 -07:00
Mitchell Hashimoto
901c1448b4 command: make the UI a look nicer 2014-09-29 13:12:06 -07:00
Mitchell Hashimoto
9bb26f7695 terraform: Make output more machine-like 2014-09-29 12:52:48 -07:00
Mitchell Hashimoto
980fce1d6c terraform: make UX a bit better for input 2014-09-29 12:45:28 -07:00
Mitchell Hashimoto
99d0e52ead terraform: validate should use the full config 2014-09-29 12:04:14 -07:00
Mitchell Hashimoto
133a28e363 terraform: prefix the Id for configuring providers 2014-09-29 10:36:49 -07:00
Mitchell Hashimoto
2791badf01 terraform: ask for input for providers 2014-09-29 09:13:15 -07:00
Mitchell Hashimoto
fd70e5e7bf terraform: Input() asks for variable inputs 2014-09-28 23:37:36 -07:00
Mitchell Hashimoto
4b3473e522 terraform: fix compilation from merge 2014-09-26 10:10:08 -07:00
Mitchell Hashimoto
0d1867c0b3 Merge branch 'f-module-apply'
Conflicts:
	terraform/context.go
2014-09-26 10:08:35 -07:00
Mitchell Hashimoto
77b1c7daa0 terraform: destroy plans work with modules 2014-09-25 20:44:34 -07:00
Mitchell Hashimoto
1835a03842 terraform: hook parameter is an InstanceInfo 2014-09-25 10:40:44 -07:00
Mitchell Hashimoto
bc71d6adca terraform: prefix errors/warnings with the module they came from 2014-09-24 22:35:11 -07:00
Mitchell Hashimoto
c88614c585 terraform: providers inherit properly for validation 2014-09-24 21:38:23 -07:00
Mitchell Hashimoto
6712ed15aa terraform: clarify comment 2014-09-24 19:40:54 -07:00
Mitchell Hashimoto
8420b58015 terraform: clean up some functions 2014-09-24 19:36:00 -07:00
Mitchell Hashimoto
2d07f79c5a terraform: validation validates the submodules 2014-09-24 19:31:30 -07:00
Mitchell Hashimoto
a36b3e1ec5 command: tests pass 2014-09-24 15:48:46 -07:00
Mitchell Hashimoto
718fb42f4b terraform: Plan should use module.Tree 2014-09-24 14:56:48 -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
e8dfcdbe7b terraform: computed input variables work to modules 2014-09-23 17:05:44 -07:00
Mitchell Hashimoto
9e871d5617 terraform: variables to modules work 2014-09-23 16:49:38 -07:00
Mitchell Hashimoto
a3b668bf7d terraform: module w/ computed output works 2014-09-23 16:27:38 -07:00
Mitchell Hashimoto
bfa4e1d7d0 terraform: module output variables are functional 2014-09-23 16:07:41 -07:00
Mitchell Hashimoto
1b5d0ed0bb terraform: outputs should be properly calculated for modules now 2014-09-23 15:46:20 -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
8dcc4528fc terraform: basic sub-module walks work
Lots broken still, but its a start.
2014-09-23 13:47:20 -07:00
Mitchell Hashimoto
c164839ed1 terraform: walkContext 2014-09-23 13:21:45 -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
Armon Dadgar
cdce8208f3 terraform: ensure provisioner runs only on instance create 2014-09-22 11:15:22 -07:00
Mitchell Hashimoto
73e2a43427 terraform: don't put the ResourceState in Resource 2014-09-21 22:08:21 -07:00
Mitchell Hashimoto
a3bb8435b7 terraform: remove unused 2014-09-21 09:42:37 -07:00
Mitchell Hashimoto
13a4818867 terraform: add flags field 2014-09-20 17:02:31 -07:00
Mitchell Hashimoto
53c23266ca terraform: add Info field to Resource, remove from Node 2014-09-19 23:01:51 -06:00
Mitchell Hashimoto
06c862a379 terraform: tainted things all work 2014-09-19 22:47:53 -06:00
Mitchell Hashimoto
10b5661bc3 terraform: planning tainted resources works 2014-09-19 22:35:29 -06:00
Mitchell Hashimoto
157843725d terraform: refreshing tainted resources works 2014-09-19 22:28:13 -06:00
Armon Dadgar
5e0765c24a terraform: Refresh handles tainted instances 2014-09-19 16:24:17 -07:00
Armon Dadgar
dc01633f3c terraform: fixing outputs for destroy plan 2014-09-17 17:35:43 -07:00
Mitchell Hashimoto
9aa8bec660 terraform: update comments 2014-09-17 17:23:19 -07:00
Mitchell Hashimoto
1aff5e98e1 terraform: some deepcopying going on 2014-09-17 17:18:17 -07:00
Armon Dadgar
c14a17f39b terraform: save/restore dependency info for orphans 2014-09-17 17:01:55 -07:00
Mitchell Hashimoto
f9ce7de468 terraform: Refresh tests passing 2014-09-17 16:51:07 -07:00
Mitchell Hashimoto
e2aa067996 terraform: fixing Refresh tests 2014-09-17 16:47:26 -07:00
Mitchell Hashimoto
9b2b3a963f ResourceDiff => InstanceDiff 2014-09-17 16:33:24 -07:00
Mitchell Hashimoto
0a6c675fba terraform: update hooks to use InstanceState 2014-09-17 15:00:19 -07:00
Armon Dadgar
edccc2de3f terraform: fixing provisioner invocation 2014-09-16 17:37:39 -07:00
Armon Dadgar
4a736b0dac terraform: Fixing panics and TODOs 2014-09-16 17:19:37 -07:00
Armon Dadgar
55f4e35586 terraform: Fixing applyWalkFn 2014-09-16 17:10:41 -07:00
Armon Dadgar
81abdcafdc terraform: fixing all the panics 2014-09-16 16:55:19 -07:00
Armon Dadgar
25a3cc480c terraform: fixing tons of panics 2014-09-16 16:32:01 -07:00
Mitchell Hashimoto
95f3e626a5 terraform: modify the ResourceProvider API super hardcore 2014-09-16 16:20:11 -07:00
Armon Dadgar
3963b42625 terraform: Fixing up context 2014-09-16 12:12:15 -07:00
Armon Dadgar
9cbd71b88d terraform: Changing how instances are represented 2014-09-15 17:49:31 -07:00
Armon Dadgar
f5fc4933e5 terraform: working through errors 2014-09-15 17:30:18 -07:00
Armon Dadgar
a85d6fa6c3 terraform: Adding module lookups for state 2014-09-15 17:11:36 -07:00
Mitchell Hashimoto
a53faa2fff terraform: validate providers even without config block [GH-284] 2014-09-09 17:38:30 -07:00
Mitchell Hashimoto
52bc9a1055 core: check sets for computed [GH-247] 2014-08-30 17:26:10 -07:00
Mitchell Hashimoto
da2e221628 terraform: Interpolate if there are any interpolations [GH-159] 2014-08-21 15:05:56 -07:00
Mitchell Hashimoto
d8a999e5af terraform: ResourceConfig.Get gets interpolated if possible 2014-08-19 09:05:19 -07:00
Mitchell Hashimoto
87f4b49f85 terraform: multi-variables work with count = 1 [GH-115] 2014-08-05 10:12:35 -07:00
Mitchell Hashimoto
78c32ac196 terraform: hooks around provisioners 2014-07-27 09:00:34 -07:00
Mitchell Hashimoto
615cf04715 terraform: refresh returning nil should delete from state 2014-07-24 14:40:52 -07:00
Mitchell Hashimoto
86903eb18f terraform: fix issues with tainted marking 2014-07-24 08:49:54 -07:00
Mitchell Hashimoto
1ee69761d4 terraform: self-referencing variables in provisoiners work 2014-07-24 07:58:45 -07:00
Mitchell Hashimoto
b51d18f1de terraform: more logs 2014-07-24 07:30:24 -07:00
Mitchell Hashimoto
dc0ec11ec9 command: fix tests 2014-07-22 19:43:09 -07:00
Mitchell Hashimoto
d5e3d5a196 terraform: validate diffs are the same 2014-07-22 19:33:09 -07:00
Mitchell Hashimoto
79eb52eba6 terraform: error if diff during Apply returns nil 2014-07-22 19:33:08 -07:00
Mitchell Hashimoto
14f7067b0c terraform: taint plan requires destroy/create 2014-07-22 10:30:42 -07:00
Mitchell Hashimoto
192fc1e544 terraform: mark resource as tainted if provisioning fails 2014-07-22 10:09:11 -07:00
Mitchell Hashimoto
808036bf60 terraform: ResourceProvisioner can't return a state anymore 2014-07-22 09:56:39 -07:00
Mitchell Hashimoto
fed0a89c36 terraform: comments 2014-07-22 08:21:11 -07:00
Mitchell Hashimoto
83ba038423 terraform: mapping overrides work 2014-07-22 08:18:53 -07:00
Mitchell Hashimoto
c9a20c3c58 terraform: test that mapping lookups work 2014-07-22 08:06:09 -07:00
Mitchell Hashimoto
3276ae313f terraform: PostApply should get error result from Apply 2014-07-17 15:38:50 -07:00
Mitchell Hashimoto
ff36378c4e terraform: partial state should be saved on apply error 2014-07-17 15:32:19 -07:00
Armon Dadgar
104b28e19e terraform: Remove ResourceConnectionInfo, use raw map 2014-07-15 12:34:07 -07:00
Armon Dadgar
fec8e95a09 terraform: Ensure ConnInfo is initialized 2014-07-15 12:34:07 -07:00
Armon Dadgar
94c95afa48 terraform: Passthrough provisioner level connection info 2014-07-15 12:34:06 -07:00
Mitchell Hashimoto
3af16c8faf terraform: don't process outputs when all we did was destroy 2014-07-13 11:07:31 -07:00
Mitchell Hashimoto
4dea4c325b terraform: Context.Graph 2014-07-12 19:23:56 -07:00
Mitchell Hashimoto
10d17c4d40 terraform: don't ever pass a nil diff into Apply 2014-07-11 20:20:08 -07:00
Mitchell Hashimoto
2ed77c8a6f terraform: remove output diffs attributes from the Apply call 2014-07-11 12:00:41 -07:00
Mitchell Hashimoto
8d065ce5c4 terraform: don't validate orphans 2014-07-11 11:09:19 -07:00
Mitchell Hashimoto
9c9f478811 terraform: remove data race around validation 2014-07-10 13:36:06 -07:00
Mitchell Hashimoto
d9dda40957 Merge pull request #16 from hashicorp/f-provisioners
Adding support for provisioners
2014-07-10 13:03:51 -07:00
Armon Dadgar
83c1ed438f terraform: Fix and test provisioner configs 2014-07-10 11:38:57 -07:00