Commit graph

2912 commits

Author SHA1 Message Date
Sean Gillespie
48aa5e73f8
Save resources obtained from ".get" in the snapshot (#1654)
* Protobuf changes to record dependencies for read resources

* Add a number of tests for read resources, especially around replacement

* Place read resources in the snapshot with "external" bit set

Fixes pulumi/pulumi#1521. This commit introduces two new step ops: Read
and ReadReplacement. The engine generates Read and ReadReplacement steps
when servicing ReadResource RPC calls from the language host.

* Fix an omission of OpReadReplace from the step list

* Rebase against master

* Transition to use V2 Resources by default

* Add a semantic "relinquish" operation to the engine

If the engine observes that a resource is read and also that the
resource exists in the snapshot as a non-external resource, it will not
delete the resource if the IDs of the old and new resources match.

* Typo fix

* CR: add missing comments, DeserializeDeployment -> DeserializeDeploymentV2, ID check
2018-08-03 14:06:00 -07:00
Chris Smith
a9ff410360
Fix doc comment for ComponentResource (#1700)
The `protect` option was added to `ResourceOptions` a long time ago.
2018-08-03 13:31:19 -07:00
Chris Smith
598e25a100
Wire persist field through CLI (#1667) 2018-08-02 20:13:12 -07:00
CyrusNajmabadi
c57aef785b
Ensure we can capture non-built-in modules with 'require'. (#1685) 2018-08-02 16:25:49 -04:00
Luke Hoban
85121274aa
Allow dependsOn to accept a Resource | Resource[] (#1692)
Fixes #1690.
2018-08-02 13:13:33 -07:00
CyrusNajmabadi
58ae413bca
Do not add a newline between a stream of info messages. The contract is that these will just be appended continguously. (#1688) 2018-08-02 10:55:15 -04:00
Joe Duffy
b2c91f7c24
Detect secret-like config (#1689)
Previously, we would unconditionally warn anytime you added a non-secret
config:

    $ pulumi config set aws:region us-west-2
    warning: saved config key '%s' value '%s' as plaintext;
        re-run with --secret to encrypt the value instead.
        Use --plaintext to avoid this warning

This was particularly annoying, since it is very common to store
non-secret config. For instance, the AWS region. And it was easy to tune
out because it wasn't actually warning about anything interesting.

This change, which resolves pulumi/pulumi#570, uses an approach similar
to Go's gas linter, to detect high entropy values, and issue an error.
This ensures that we only make noise on things we suspect are actually
secrets being stored in plaintext, and forces the user to pass
--plaintext. For instance, the common case issues no errors:

    $ pulumi config set aws:region us-west-2

And in the event that you store something that is secret-like:

    $ pulumi config set aws:region nq8r4B4xslzrtj0a3
    error: config value 'nq8r4B4xslzrtj0a3' looks like a secret;
        rerun with --secret to encrypt it, or --plaintext if you meant
        to store in plaintext

To suppress this, simply pass --secret (to encrypt) or --plaintext (to
override the warning).
2018-08-02 04:14:16 -07:00
CyrusNajmabadi
3d063e200c
Properly display multi-step replaces in the progress UI. (#1679) 2018-08-02 00:48:14 -04:00
Sean Gillespie
c4f08db78b
Fix an issue where we fail to catch duplicate URNs in the same plan (#1687) 2018-08-01 21:32:29 -07:00
Thomas Schersach
9bfea8e5c4 Added brew install instructions for macOS 2018-08-01 14:32:09 -07:00
Thomas Schersach
29090ef848 Added pipenv to development environment required tools 2018-08-01 14:32:09 -07:00
Alex Clemmer
b0c383e1e8 Add URN argument to HostClient#Log
This will make it possible to correlate log messages to specific
resources.
2018-08-01 11:00:48 -07:00
Chris Smith
6958ad4073
Merge updates to install-common-toolchain.sh (#1680) 2018-07-31 23:08:19 -07:00
Chris Smith
7aa91d69e0
Add optional CI properties to environment metadata (#1678)
* Add optional CI properties to environment metadata

* Address PR feedback
2018-07-31 21:38:07 -07:00
CyrusNajmabadi
aac67f41e3
Tiny tweak to error message. (#1670) 2018-08-01 00:09:47 -04:00
Joe Duffy
76eea4863a
Prefer "up" over "update" (#1672) 2018-07-31 10:22:16 -07:00
CyrusNajmabadi
d19942f2b0
Go back to capturing *non-user* modules by 'require' reference. (#1655) 2018-07-31 11:37:46 -04:00
Joe Duffy
091c0e1c23
Upgrade Node.js SDK to TypeScript 3.0 (#1669)
Per pulumi/pulumi#1668. No code changes required, just package.json
and lockfile updates.
2018-07-30 23:19:28 -07:00
Matt Ellis
91247f2e19 Bump versions in compat test
There is not a prebuilt binary for Node 10.7 for the older version of gRPC
that we had locked to, forcing a rebuild when the project was restored.
On some CI workers this does not work out and the test spews a bunch of
output and then appears to hang.

Since this doesn't seem related to Pulumi in any way, just bump our
version.
2018-07-30 10:21:34 -07:00
Matt Ellis
f6571980ba Lock to same version of dep as *nix builds 2018-07-30 10:21:34 -07:00
Sean Gillespie
ad3b931bea
Merge pull request #1664 from pulumi/swgillespie/resource-break
Round out the breaking changes for ResourceV2
2018-07-27 18:44:37 -07:00
Pat Gavlin
d70d36b887
Handle non-{unknown,partial} statuses in Create/Update. (#1663)
For example resource.StatusOK. Unenlightened providers may return errors
that result in this status; we should not crash if this is the case.
2018-07-27 16:08:11 -07:00
Sean Gillespie
48d095d66f Remove "down" operation for migration - it is not semantically valid in
general.
2018-07-27 14:52:28 -07:00
Sean Gillespie
9ca76b65c0
Round out V2 breaking changes for Resource 2018-07-27 13:53:14 -07:00
Joe Duffy
f58ea68a7d
Make minor improvements to pulumi new (#1659)
After running `pulumi new`, we print a message to let the user
know the project has been created, along with next steps to actually
perform a deployment. It's easy for this to get lost among the rest
of the output, however. So, wordsmith it a little, and add some color,
to make it pop a little bit more.

Also add SuggestFor annotations so that `init` and `create` direct
you to run the `new` command (I often accidentally type `init`).
2018-07-26 15:49:12 -07:00
CyrusNajmabadi
48df5bfe1e
Update pulumi/pulumi to run on Nodejs v10. (#1658) 2018-07-25 16:55:20 -07:00
CyrusNajmabadi
b90235c611
Add license fields to package.json. (#1656) 2018-07-24 16:10:13 -07:00
Alex Clemmer
61324d5540 Print CLI warning for resource init failures
Fixes #1643.

When a resource fails to initialize (i.e., it is successfully created,
but fails to transition to a fully-initialized state), and a user
subsequently runs `pulumi update` without changing that resource, our
CLI will fail to warn the user that this resource is not initialized.

This commit resolves this issue.
2018-07-20 17:59:06 -07:00
Alex Clemmer
f037c7d143 Checkpoint resource initialization errors
When a resource fails to initialize (i.e., it is successfully created,
but fails to transition to a fully-initialized state), and a user
subsequently runs `pulumi update` without changing that resource, our
CLI will fail to warn the user that this resource is not initialized.

This commit begins the process of allowing our CLI to report this by
storing a list of initialization errors in the checkpoint.
2018-07-20 17:59:06 -07:00
Sean Gillespie
80c28c00d2
Add a migrate package for migrating to and from differently-versioned API types (#1647)
* Add a migrate package for migrating to and from differently-versioned
API types

* travis: gofmt -s deployment_test.go
2018-07-20 13:31:41 -07:00
Sean Gillespie
57ae7289f3
Work around a potentially bad assert in the engine (#1644)
* Work around a potentially bad assert in the engine

The engine asserts if presented with a plan that deletes the same URN
more than once. This has been empirically proven to be possible, so I am
removing the assert.

* CR: Add log for multiple pending-delete deletes
2018-07-18 15:48:55 -07:00
Justin Van Patten
db6f99055d
Suppress package restore output unless it fails (#1642)
Change `pulumi new` to no longer output STDOUT and STDERR by default. Instead, only output STDOUT and STDERR if the restore command fails.
2018-07-18 13:24:58 -07:00
CyrusNajmabadi
2e9a2e8a91
When printing message in non-interactive mode, do not keep printing out the worst diagnostic. (#1640) 2018-07-17 13:00:10 -07:00
Justin Van Patten
4e43dec05c
Show all templates when running pulumi new (#1637)
Previously, it would only show the first 7 templates (we currently have 9 total), and you'd have to move the cursor down to the bottom to show the last 2.
2018-07-16 16:08:56 -07:00
Alex Clemmer
0575595668 Add Pipfile.lock to make Python builds reproducible 2018-07-15 11:05:44 -10:00
Alex Clemmer
d182525fec Add signal cancellation to resource provider 2018-07-15 11:05:44 -10:00
Alex Clemmer
0e39b3c868 Add Cancel to gRPC resource provider interface 2018-07-15 11:05:44 -10:00
Alex Clemmer
4c184335ca Make generate.sh reproducible 2018-07-15 11:05:44 -10:00
Matt Ellis
1f638410c7 Include README in pypi package
Use `pandoc` to convert our README.md to a README.rst and then include
that as the long_description in our pypi package.
2018-07-13 18:19:42 -07:00
Sean Gillespie
89f2f8abb5
[Parallelism] Introduce a "step generator" component in the engine (#1622)
* [Parallelism] Introduce a "step generator" component by refactoring all
step generation logic out of PlanIterator

* CR: remove dead fields on PlanIterator
2018-07-12 14:24:38 -07:00
CyrusNajmabadi
953c082bd8
Use the actual ticker control we already ahve. (#1629) 2018-07-12 11:38:44 -07:00
CyrusNajmabadi
d79dbdce35
Rollback PRs (#1628)
* Revert "Parallelize much more of resource creation in the JS language provider SDK (#1618)"

This reverts commit 4edd244a26.

* Revert "Process our async-work-queue in parallel. (#1619)"

This reverts commit b8c1cb9574.
2018-07-11 18:33:53 -07:00
CyrusNajmabadi
4761a32cc1
Add support for providing a log stream-id to our RPC interface. (#1627) 2018-07-11 15:04:00 -07:00
Sean Gillespie
9bf37cc40d
Introduce ResourceV2, DeploymentV2, and CheckpointV2 (#1578)
* Introduce ResourceV2, DeploymentV2, and CheckpointV2, to prepare for a breaking change to the deployment format

* Rename Read -> External
2018-07-11 09:16:53 -07:00
CyrusNajmabadi
4edd244a26
Parallelize much more of resource creation in the JS language provider SDK (#1618) 2018-07-10 16:41:56 -07:00
CyrusNajmabadi
b8c1cb9574
Process our async-work-queue in parallel. (#1619) 2018-07-10 15:42:11 -07:00
CyrusNajmabadi
e6db67849c
Print out a 'still working' message every 20 seconds when in non-interactive mode. (#1616) 2018-07-10 13:44:18 -07:00
Chris Smith
ad3b5e7ee8
Remove references to unused API endpoints (#1608)
* Remove references to unused API endpoints

* Remove vertical whitespace
2018-07-09 13:48:30 -07:00
Luke Hoban
015344ab06
Support SkipBuild in integration test framework (#1603) 2018-07-06 22:06:28 -07:00
CyrusNajmabadi
3ca56d1e82
Support the NO_COLOR env variable to suppres any colored output. (#1594)
Also, make --color a viable command option for any pulumi command.
2018-07-06 21:30:00 -07:00