Commit Graph

44 Commits

Author SHA1 Message Date
Martin Atkins 275a44f552 command: Reinstate object ids in the UIHook progress logs
We used to treat the "id" attribute of a resource as special and elevate
it into its own struct field "ID" in the state, but the new state format
and provider protocol treats it just as any other attribute.

However, it's still useful to show the value of a single identifying
attribute when there isn't room in the UI for showing all of the
attributes, and so here we take a new strategy of considering "id" along
with some other conventional names as special only in the UI layer.

This new heuristic approach can be adjusted over time as new provider
patterns emerge, but for now it covers some common conventions we've seen
in real providers.

With that said, since all existing providers made for Terraform versions
prior to v0.12 were forced to set "id", we won't see any use of other
attributes here until providers are updated to remove the placeholder
ids they were generating in cases where an id was not actually relevant
but was forced by the old protocol. At that point the UX should be
improved by showing a more relevant attribute instead.

We now also allow for the possibility of no id at all, since that is valid
for resources that exist only within the Terraform state, like the ones
from the "random" and "tls" providers.
2018-10-16 19:14:11 -07:00
Martin Atkins b428746cfd command: UiHook to report when it gets incorrect values
For PreApply hook purposes we only actually use the Delete, Create, and
Update actions, because other actions are handled in different ways than
a direct call to ApplyResourceChange.

However, if there's a bug in core that causes it to pass a different
action, it's better for us to mark it as being explicitly unknown in the
UI rather than simply defaulting to "Modifying...", which can thus obscure
the problem and make for a confusing result.
2018-10-16 19:14:11 -07:00
Martin Atkins 44bc7519a6 terraform: More wiring in of new provider types
This doesn't actually work yet, but it builds and then panics in a pretty
satisfying way.
2018-10-16 19:12:54 -07:00
Martin Atkins a3403f2766 terraform: Ugly huge change to weave in new State and Plan types
Due to how often the state and plan types are referenced throughout
Terraform, there isn't a great way to switch them out gradually. As a
consequence, this huge commit gets us from the old world to a _compilable_
new world, but still has a large number of known test failures due to
key functionality being stubbed out.

The stubs here are for anything that interacts with providers, since we
now need to do the follow-up work to similarly replace the old
terraform.ResourceProvider interface with its replacement in the new
"providers" package. That work, along with work to fix the remaining
failing tests, will follow in subsequent commits.

The aim here was to replace all references to terraform.State and its
downstream types with states.State, terraform.Plan with plans.Plan,
state.State with statemgr.State, and switch to the new implementations of
the state and plan file formats. However, due to the number of times those
types are used, this also ended up affecting numerous other parts of core
such as terraform.Hook, the backend.Backend interface, and most of the CLI
commands.

Just as with 5861dbf3fc49b19587a31816eb06f511ab861bb4 before, I apologize
in advance to the person who inevitably just found this huge commit while
spelunking through the commit history.
2018-10-16 19:11:09 -07:00
Martin Atkins d4efc95191 command: show resource actions using resource addresses
Previously we were using the internal resource id syntax in the UI. Now
we'll use the standard user-facing resource address syntax instead.
2017-09-01 17:55:05 -07:00
Michael Handler 817d1c4869 Output duration in UiHook after successful operation completion. 2017-08-16 14:41:41 -07:00
James Bardin 947db2304a it's possible to get a nil diff in PreApply
Looking through the operations in node_resource_apply and
node_resource_destroy, there are multiple nil checks for diffApply, so
one we need to continue to assume that the diff can be nil through there
until we ensure that it is non-nill in all cases.

So regardless of how we came to get a nil diff in the UiHook PreApply
method, we need to check it.
2017-04-28 21:59:56 -04:00
Radek Simko fc72a20c66 command/hook_ui: Increase max length of state IDs (#13317) 2017-04-04 15:41:54 +01:00
James Bardin b9931c437d fix race in hook ui PreApply test
Fix a race in the PreApply test, and make the PreApply background task
actually concealable.
2017-03-17 13:49:05 -04:00
Radek Simko 4d6242dfe0 command: Add tests for UiHook (#12447) 2017-03-13 20:09:25 +00:00
Mitchell Hashimoto 5086f9f568
command: remove log 2017-03-02 11:15:38 -08:00
Mitchell Hashimoto 866de2776e
command: trigger still applying cancellations from a channel 2017-03-02 11:15:02 -08:00
Radek Simko 17c9a403f2
WIP 2017-03-02 18:43:27 +00:00
Radek Simko 08283f077b
command: Fix crash caused by empty state 2017-03-02 10:58:01 +00:00
Radek Simko 2e2b8686dd command: Display state ID in PreApply+PostApply (#12261) 2017-03-01 22:16:22 +00:00
Mitchell Hashimoto ab1e512ae2
command: use reset instead of reset_bold
Fixes #10337

The `reset_bold` escape code (21) causes the text on Windows command
prompts to just become invisible. `reset` does the same job for us in
this scenario so do that.
2016-11-29 09:52:58 -08:00
James Bardin 5802f76eaa Make all terraform package tests pass under -race
This isn't a pretty refactor, but fixes the race issues in this package
for now.

Fix race on RawConfig.Config()

fix command package races
2016-07-29 16:12:21 -04:00
Chris Marchesi 9d7fb89114 core: Adding Sensitive attribute to resource schema
This an effort to address hashicorp/terraform#516.

Adding the Sensitive attribute to the resource schema, opening up the
ability for resource maintainers to mark some fields as sensitive.
Sensitive fields are hidden in the output, and, possibly in the future,
could be encrypted.
2016-05-29 22:18:44 -07:00
Martin Atkins 5d27a5b3e2 command: Show id only when refreshing managed resources
Data resources don't have ids when they refresh, so we'll skip showing the
"(ID: ...)"  indicator for these. Showing it with no id makes it look
like something is broken.
2016-05-14 08:26:37 -07:00
Mitchell Hashimoto b728f8c018
terraform: import state ID should be sent to hook 2016-05-11 13:02:35 -07:00
Mitchell Hashimoto f6a59734ef
command: UI for import 2016-05-11 13:02:35 -07:00
Mitchell Hashimoto 08ad84d8b2 command: defer the lock unlock 2016-04-13 12:02:24 -07:00
Mitchell Hashimoto 284bc92c04 command: show periodic messages about continued ops 2016-04-13 11:12:05 -07:00
Radek Simko 7a60174dd1 Do not print errors via UiHook 2015-07-22 14:09:23 +02:00
Mitchell Hashimoto c6a165f8c6 command: prov UI should trim only right spaces 2014-10-12 09:59:08 -07:00
Mitchell Hashimoto fbeb99ee83 command: make sure the output has a line from a provisioner to output 2014-10-11 17:40:28 -07:00
Mitchell Hashimoto bb698217f8 command: split on \r too 2014-10-11 17:35:32 -07:00
Mitchell Hashimoto 28cd738edc command: provisioner output should prefix every line 2014-10-05 23:29:13 -07:00
Mitchell Hashimoto c1fbf46a33 command: send the provisioner output to the prompt 2014-10-04 16:33:47 -07:00
Mitchell Hashimoto 5f791051a6 command: render new modules properly 2014-09-25 14:52:06 -07:00
Mitchell Hashimoto 9b2b3a963f ResourceDiff => InstanceDiff 2014-09-17 16:33:24 -07:00
Mitchell Hashimoto cdad3036ae command: closer to compiling 2014-09-17 11:15:07 -07:00
Mitchell Hashimoto 68c0bf3ced command: add provisioning output 2014-07-27 09:12:16 -07:00
Mitchell Hashimoto 0f45ebbdc3 command: better UI for showing completion of steps 2014-07-26 21:20:31 -07:00
Mitchell Hashimoto 52d29a6ecf command/apply: outputs 2014-07-13 09:34:35 -07:00
Mitchell Hashimoto 3a851bece0 command: convert all to use the new Meta thing 2014-07-12 20:37:30 -07:00
Mitchell Hashimoto 6c736bd3c4 command: introduce Meta and "-no-color" option 2014-07-12 20:21:46 -07:00
Mitchell Hashimoto b4b116a018 command/plan: output while refreshing since that can take awhile 2014-07-12 17:17:03 -07:00
Mitchell Hashimoto c615afc097 command/apply: improved output, still not done 2014-07-12 17:03:55 -07:00
Mitchell Hashimoto 832211c17a command/plan: nice plan formatting 2014-07-12 16:32:48 -07:00
Mitchell Hashimoto 8d4aeb96c0 command: add preapply to UI so we can see that 2014-06-26 22:11:04 -07:00
Mitchell Hashimoto d3f2547f86 command: concurrent UI 2014-06-26 22:01:05 -07:00
Mitchell Hashimoto 23de2fc2f3 command: UiHook outputs for diffs 2014-06-26 17:18:46 -07:00
Mitchell Hashimoto 01319e1dc9 Ui hook 2014-06-26 17:05:21 -07:00