Commit graph

2252 commits

Author SHA1 Message Date
Matt Ellis
78a2e39aab Exit when an error when confirmation is declined
Fixes #931
2018-02-16 00:32:24 -08:00
Joe Duffy
55e4dbe835
Update spinner to use modern ASCII/emoji art (#942) 2018-02-15 18:22:17 -08:00
Matt Ellis
2d0ca1992e Cleanup provider launch scripts and fix some windows build oddities
The windows build was still on the old plan from way back when where
we had binaries littered in the build tree and you had to add parts of
your build-tree to the `%PATH%` for the integration tests to work.

This cleans that up and moves all of our scripts that invoke
javascript to be on the same plan. They invoke our specially named
node with a relative path to the JS code we want to run.
2018-02-15 17:02:35 -08:00
Matt Ellis
b8f3bb24aa Yarn link pulumi in history tests 2018-02-14 17:55:48 -08:00
Matt Ellis
4b2441ac22 Use relative path in langhost launcher
We no longer have a node_modules folder in the SDK (since all
packages now come from NPM) so we need to adjust the shell script we
use to launch our runner to use a relative path.
2018-02-14 17:55:48 -08:00
Joe Duffy
902d646215
Rename package to project (#935)
This addresses pulumi/pulumi#446: what we used to call "package" is
now called "project".  This has gotten more confusing over time, now
that we're doing real package management.

Also fixes pulumi/pulumi#426, while in here.
2018-02-14 13:56:16 -08:00
Sean Gillespie
402a599fc7
Don't use shebangs to launch providers and correctly kill child process trees on Unix (#934)
* Don't use shebangs to launch providers and correctly kill child process trees on Unix

* Link to relevant documentation
2018-02-14 13:56:07 -08:00
Sean Gillespie
61a4d9f98b
Merge pull request #933 from pulumi/swgillespie/readme
Update the README
2018-02-14 13:15:16 -08:00
Sean Gillespie
c245b6ac6f
Update the README 2018-02-14 10:33:18 -08:00
Joe Duffy
444ebdd1b5
Improve failure messages (#932)
This improves the failure messages in two circumstances:

1) If the resource monitor RPC connection is missing.  This can happen
   two ways: either you run a Pulumi program using vanilla Node.js, instead
   of the CLI, or you've accidentally loaded the Pulumi SDK more than once.

2) Failure to load the custom Pulumi SDK Node.js extension.  This is a new
   addition and would happen if you tried running a Pulumi program using a
   vanilla Node.js, rather than using the Pulumi CLI.
2018-02-14 09:55:02 -08:00
Joe Duffy
5d2f21d527
Merge pull request #926 from pulumi/swgillespie/custom-node
Download and use a custom Node binary containing the closure serialization native module
2018-02-13 19:16:16 -08:00
Matt Ellis
993caf7693 Replace push with update in help text
At one point `pulumi update` was spelled `pulumi push` and we wrote
some help documentation about that. When we changed to `pulumi update`
we did not revise the documentation.

Fixes #925
2018-02-13 17:58:33 -08:00
Sean Gillespie
a09f3bf52c
Launch the dynamic provider provider with shebangs 2018-02-13 17:54:55 -08:00
Sean Gillespie
f1a0b1c925
Launch dynamic providers with our custom Node 2018-02-13 17:06:12 -08:00
Matt Ellis
7cd42df84e Fix paths to custom_node 2018-02-13 16:50:32 -08:00
Matt Ellis
80de7f9a83 Add missing download_node.cmd wrapper 2018-02-13 16:31:35 -08:00
Matt Ellis
4499b44355 Fix download_node.ps1; remove ensure_custom_v8
This gets the windows build a little further along. We actually get to
the point where we run the pulumi integration tests now, but they all
fail.
2018-02-13 16:00:02 -08:00
Sean Gillespie
1c2c10a19d Revert "Revert Windows changes to unblock npm ingestion"
This reverts commit d98dcaa79c.
2018-02-13 15:07:07 -08:00
Sean Gillespie
d98dcaa79c Revert Windows changes to unblock npm ingestion 2018-02-13 14:04:23 -08:00
Sean Gillespie
05cb5368a4
Download and use a custom Node binary instead of linking against
private V8 APIs from within our native Node module.
2018-02-13 14:04:01 -08:00
Joe Duffy
e0d3eae16f
Publish README and LICENSE in @pulumi/pulumi (#927) 2018-02-13 12:05:45 -08:00
Joe Duffy
0cb112b984
Publish the Go-based langhost in the SDK tgz's (#924) 2018-02-12 16:54:12 -08:00
Joe Duffy
6e5084218c
Use the scoped @pulumi name for linking layout (#920) 2018-02-12 16:16:16 -08:00
Matt Ellis
0fc10ec757 Only build master, release/* and tags
Our use of parens around the individual clauses of our if condition
seemed to cause Travis to ignore the condition and build
regardless. I've asked Travis about this, but for now, drop them (with
a comment) so we stop building pushes for topic branchs.
2018-02-12 15:13:55 -08:00
Matt Ellis
a3608e0c2a Retry a few times when running yarn during integration tests
We've seen yarn fail from time to time during our integration
tests (usually timeouts talking to the npm registry) so let's add a
few retries to all yarn commands.
2018-02-12 15:13:35 -08:00
Matt Ellis
5f23a9837a Permit setting multi line config from stdin
When reading a configuration value from standard in and standard in is
not connected to a terminal, read until EOF and then trim a trailing
newline (if present) to get the value

Fixes #822
2018-02-12 15:13:19 -08:00
Joe Duffy
a74aa51662
Rename pulumi package to @pulumi/pulumi (#917)
In order to begin publishing our core SDK package to NPM, we will
need it to be underneath the @pulumi scope so that it may remain
private.  Eventually, we can alias pulumi back to it.

This is part of pulumi/pulumi#915.
2018-02-12 13:13:13 -08:00
Luke Hoban
c7adaf107d
Don't include pending-delete resources in tree representation (#902)
Resources in the checkpoint file which are pending-delete represent old versions of resources which are no longer part of the active deployment.  For purposes of constructing the active resource tree, we should skip these resources.
2018-02-12 08:47:09 -08:00
Joe Duffy
e327dccad4
Merge pull request #911 from pulumi/swgillespie/langhost-2
Missed a pulumi-langhost-nodejs batch wrapper
2018-02-11 19:57:05 -05:00
Sean Gillespie
eda0e25241
Missed a pulumi-langhost-nodejs batch wrapper 2018-02-09 21:25:32 -08:00
Sean Gillespie
e87204d3e1
Move language host logic from Node to Go (#901)
* experimental: separate language host from node

* Remove langhost details from the NodeJS SDK runtime

* Cleanup

* Work around an issue where Node sometimes loads the same module twice in two different contexts, resulting in two distinct module objects. Some additional cleanup.

* Add some tests

* Fix up the Windows script

* Fix up the install scripts and Windows build

* Code review feedback

* Code review feedback: error capitalization
2018-02-10 02:15:04 +00:00
CyrusNajmabadi
296151e088
Support serializing methods to the inside layer. (#904) 2018-02-09 14:22:03 -08:00
Matt Ellis
60006f352a Build release branches in CI 2018-02-09 13:42:16 -08:00
Pat Gavlin
eb59d63dcb
Merge pull request #903 from pulumi/UpdateWaits
Reduce update event wait times.
2018-02-09 10:36:31 -08:00
Pat Gavlin
881393146b Remove update event waits. 2018-02-09 09:43:04 -08:00
Pat Gavlin
098e2091fa
Merge pull request #896 from pulumi/UpdateLogWaits
Wait between calls to fetch update logs.
2018-02-07 17:11:26 -08:00
pat@pulumi.com
e8e0ae9bb4 Wait between calls to fetch update logs.
As it stands, we currently hammer the service's update logs endpoint in
a tight loop while waiting for a deployment to complete. This is not
necessary, and can indeed be deletrious to the user experience: it
appears that this may be exacerbating some mysterious 500 responses from
API gateway.

These changes add a brief sleep in the relevant loop that waits for 5
seconds if the last call produced new log entries or 15 seconds if it
did not.

Fixes #844.
2018-02-07 16:57:05 -08:00
Justin Van Patten
1b6df5eddf
Fix spelling (#894) 2018-02-07 15:01:55 -08:00
CyrusNajmabadi
71beb2a51f
Rollback #882 (#888) 2018-02-06 11:22:10 -08:00
CyrusNajmabadi
1dbe4b7dfd
Await the promise of an Output, not the Output itself. (#885) 2018-02-05 19:38:16 -08:00
CyrusNajmabadi
b740c93c18
Remove 'Computed' type. (#883) 2018-02-05 18:37:10 -08:00
Pat Gavlin
5c0b62e1aa
Serialize resource registration after inputs resolve. (#882)
As it stands, we serialize more than is correct when registering
resources: in addition to serializing the RegisterResource RPC, we also
wait for input properties to resolve in the same context. Unfortunately,
this means that we can create cycles in the promise graph when a
resource A is constructed in an earlier turn than some resource B and
one of B's output properties is an input to resource A. These changes
fix this issue by allowing input properties to resolve *before*
serializing the RegisterResource RPC.

Some integration tests had taken a dependency on the ordering of resources in
either the output of the `pulumi` command or the checkpoint file. The
only test that took a dependency on command output was updated s.t. its
resources have exactly one legal topographical sort (and therefore their
ordering is deterministic). The other tests were updated s.t. their
validation did not depend on resource ordering.
2018-02-05 16:29:20 -08:00
CyrusNajmabadi
275670692b
Introduce Output<T> and update Resource construction code to properly handle it. (#834)
This PR adds a new formalisms at the Resource layer.  First all inputs to a Resource are typed as ```Input<T>```.  This is either a T, ```Promise<T>``
2018-02-05 14:44:23 -08:00
Chris Smith
c408068075
Add User-Agent header to CLI requests (#881)
Today we don't send any version information with API requests to the service, so we cannot make breaking changes between versions of the backend API while preserving backwards compatibility.

This PR adds a `User-Agent` header with REST requests that sends a CLI version number of "1". If the service were to make a breaking change, it could use this header to determine which response handler to use. (e.g. return a different response for "" or "1" and another for "2".) Obviously we want to avoid being in this situation, but in the event that we need to make a breaking change, we'll need this value.

We send the Pulumi version as well, though the SDK will probably rev much more quickly than the backend API client version.

Fixes #848
2018-02-05 09:38:00 -08:00
Matthew Riley
1ff84c1991
Merge pull request #874 from pulumi/keep-on-failure
Keep test files on assertion failure
2018-02-02 22:52:37 -08:00
Matthew Riley
606c45ffea Keep test files on assertion failure
We were pretty careful to keep the test directory around if the test ever
exited early due to a panic or error return. But if the test ran to
completion and failed -- for example, if ExtraRuntimeValidation caused the
test to fail -- we would end up deleting the test directory.

Fixes #868
2018-02-01 23:35:49 -08:00
Matt Ellis
818246a708 Allow control of uploaded archive root in Pulumi.yaml
Previously, when uploading a projectm to the service, we would only
upload the folder rooted by the Pulumi.yaml for that project. This
worked well, but it meant that customers needed to structure their
code in a way such that Pulumi.yaml was always as the root of their
project, and if they wanted to share common files between two projects
there was no good solution for doing this.

This change introduces an optional piece of metadata, named context,
that can be added to Pulumi.yaml, which allows controlling the root
folder used for computing the root folder to archive from.  When it is
set, it is combined with the location of the Pulumi.yaml file for the
project we are uploading and that folder is uses as the root of what
we upload to the service.

Fixes: #574
2018-01-31 16:22:58 -08:00
Matt Ellis
39dbdc98e9 Clean up colorization logic
The existing logic would flow colorization information into the
engine, so depending on the settings in the CLI, the engine may or may
not have emitted colorized events. This coupling is not great and we
want to start moving to a world where the presentation happens
exclusively at the CLI level.

With this change, the engine will always produce strings that have the
colorization formatting directives (i.e. the directives that
reconquest/loreley understands) and the CLI will apply
colorization (which could mean either running loreley to turn the
directives into ANSI escape codes, or drop them or retain them, for
debuging purposes).

Fixes #742
2018-01-31 15:46:14 -08:00
Joe Duffy
8ea0133d0e
Copy the package.json with its semver expanded (#864)
Our scripts currently copy the package.json that does *not* have
the expanded semver, so its version is simply "${VERSION}", and NPM
is very much not happy with that.  We can just stop copying the
package.json explicitly since it's inside of the bin/ directory.
2018-01-31 10:34:21 -08:00
Matt Ellis
b1496f3051 Remove Document and Location
These types are no longer used as pulumi no longer reads and evaluates
source code.

Contributes to #441
2018-01-30 16:42:39 -08:00