Commit graph

2310 commits

Author SHA1 Message Date
Matt Ellis
aa8f8eadcd Update .travis.yml
- Only build 'master' on push jobs
- Use Travis's built in support for cloning the entire repository
2018-01-12 17:24:17 -08:00
Joe Duffy
0d107c742a
Restructure test framework to ease multiple languages (#799)
This change restructures the test framework code a bit, to make it
easier to introduce additional languages.  Our knowledge of Yarn and
Node.js project structure, for instance, was previously baked in to
the test logic, in a way that was hard to make, for instance, Yarn
optional.  (In Python, of course, it will not be used.)  To better
support this, I've moved some state onto a new programTester struct
that we can use to lazily find binaries required during the testing
(such as Yarn, Pip, and so on).  I'm committing this separately so
that I can minimize merge conflicts in the Python work.
2018-01-12 17:10:53 -08:00
Matthew Riley
3620cdb243
Merge pull request #792 from pulumi/fail-test
Keep test temp directories around on failure
2018-01-12 12:04:58 -08:00
Ashley Hauck
ed0c068651
Merge pull request #796 from pulumi/ashley/type_merge
Create a common apitype pkg
2018-01-11 16:01:22 -08:00
khyperia
1a0cf9ff1b
Respond to feedback 2018-01-11 15:20:20 -08:00
khyperia
2598090cb7
Formatting 2018-01-11 13:46:34 -08:00
khyperia
08f3c623e6
Fix some style issues 2018-01-11 12:05:08 -08:00
khyperia
0f73b8c395
Move types to pulumi-service 2018-01-11 11:51:31 -08:00
khyperia
d4de351b10
Correct some field types 2018-01-11 10:57:25 -08:00
khyperia
916ba6cd39
Add UpdateProgramRequestUntyped 2018-01-11 10:42:43 -08:00
khyperia
f455689bd4
Add apitypes from pulumi-ppc 2018-01-10 15:43:44 -08:00
khyperia
3c644d243f
Create apitype package 2018-01-10 15:04:55 -08:00
Ashley Hauck
823b64d2ef
Merge pull request #793 from pulumi/ashley/docs
Change `make configure` to `make ensure` in docs
2018-01-10 13:19:47 -08:00
khyperia
4a76d15055
Change make configure to make ensure in docs 2018-01-10 08:46:04 -08:00
Matthew Riley
047a6c3c56 Make "delete temp dir" condition explicit
Previously we checked if the test had failed -- but the call to
`assert.NoError` that actually fails the test sometimes hasn't happened yet.
2018-01-09 23:35:26 -08:00
Matthew Riley
d688910360 Remove named parameters from CopyTestToTemporaryDirectory
Fix two references to the now-unnamed `dir` that should have been to
other variables.

Check a real condition before the deferred call to RemoveAll instead of
checking the error return.
2018-01-09 23:35:26 -08:00
Pat Gavlin
208b7296be
Merge pull request #791 from pulumi/AllowUnknownsPreview
Supply unknown properties to providers during preview.
2018-01-09 19:15:17 -08:00
Pat Gavlin
88a22515df Supply unknown properties to providers during preview.
My previous change to stop supplying unknown properties to providers
broke `pulumi preview` in the case of unknown inputs. This change
restores the previous behavior for previews only; the new unknown-free
behavior remains for applies.

Fixes #790.
2018-01-09 18:41:47 -08:00
Matthew Riley
def6ebbd30
Merge pull request #789 from pulumi/additive-edits
Fix pulumi-aws integration tests
2018-01-09 17:22:41 -08:00
Matthew Riley
3c070d3ad5 Restore support for non-Additive edits
None were used in this repository, but `pulumi-aws` used them.
2018-01-09 17:02:30 -08:00
Matthew Riley
9a869eb2d7 Print output of failed commands 2018-01-09 17:02:30 -08:00
Matthew Riley
d9fa8237be Use length of correct string for prefixer 2018-01-09 16:48:04 -08:00
Pat Gavlin
0d0560e9d7
Merge pull request #787 from pulumi/Unknowns
Do not expose unknowns to resource providers.
2018-01-09 13:20:45 -08:00
pat@pulumi.com
f3cb37ef95 Do not expose unknowns to resource providers.
Before these changes, we were inconsistent in our treatment of unknown
property values across the resource provider RPC interface. `Check` and
`Diff` were retaining unknown properties in inputs and outputs;
`Create`, `Update`, and `Delete` were not. This interacted badly with
recent changes to `Check` to return all provider inputs--i.e. not just
defaults--from that method: if an unknown input was provided, it would
be present in the returned inputs, which would eventually confuse the
differ by giving the appearance of changes where none were present.

These changes remove unknowns from the provider interface entirely:
unknown property values are never passed to a provider, and a provider
must never return an unknown property value.

This is the primary piece of the fix for pulumi/pulumi-terraform#93.
2018-01-09 12:21:47 -08:00
Pat Gavlin
bb533c6547
Merge pull request #786 from pulumi/RefactorEngineEntrypoints
Refactor the engine's entrypoints.
2018-01-08 14:54:49 -08:00
pat@pulumi.com
5f28d52e00 Remove the Engine type entirely.
It no longer carries any state. All of its methods are now package-level
functions.
2018-01-08 14:20:51 -08:00
pat@pulumi.com
c56e716c31 Refactor the engine's entrypoints.
These changes refactor the engine's entrypoints--Deploy, Destroy, and
Preview--to be update-centric rather than stack-centric. Each of these
methods now takes a value of a new type, Update, that abstracts away the
vagaries of fetching and maintaining the update's state. This
refactoring also reinforces Pulumi.yaml as a CLI concept rather than an
engine concept; the CLI is now the only reader/writer of this format.

These changes will smooth the way for a few refactorings on the service
side that will aid in update isolation.
2018-01-08 14:15:16 -08:00
Matthew Riley
f203e36f04
Merge pull request #783 from pulumi/keep-test-output
Save data (including command output) from failed integration tests
2018-01-08 14:06:31 -08:00
Matthew Riley
9e3976513c AssertNoError instead of Assert(err == nil)
This may not be exhaustive, but I replaced all instances I could find.
2018-01-08 13:46:21 -08:00
Matthew Riley
372ab5ea5d Copy failed test data from Travis to S3 2018-01-08 13:46:21 -08:00
Matthew Riley
ff10b65f3a Add environment variable to keep data for failed tests
Useful to keep command output and maybe-still-relevant checkpoints around.
2018-01-08 13:46:21 -08:00
Matthew Riley
594ccf755a Write command output to log file 2018-01-08 13:46:21 -08:00
Matthew Riley
b0eed85871 Remove non-additive edits
Now we know we only create one temporary directory per test
2018-01-08 13:46:21 -08:00
Matthew Riley
afb734a712 Unexport a few private utility functions
Makes it bit easier to see the module entrypoints.
2018-01-08 13:46:21 -08:00
Matt Ellis
2443539473 Only build master for AppVeyor
We only have one AppVeyor worker and building topic branches causes us
to build large backups in our queues. This is made worse when folks
are iterating on a PR because each push queues not only a PR
build (which we want) but also the topic branch build (which we don't
care about so much).
2018-01-07 20:33:52 -08:00
Matt Ellis
607b4990f5 Remove stack configuration when deleting a stack
When a stack is removed, we should delete any configuration it had
saved in either the Pulumi.yaml file or the workspace.

Fixes #772
2018-01-07 17:38:40 -08:00
Pat Gavlin
3ca874d3f7
Merge pull request #781 from pulumi/ExportImport
Add the ability to {ex,im}port a stack's deployment.
2018-01-05 17:56:16 -08:00
pat@pulumi.com
7782a83030 Appease the linters. 2018-01-05 17:35:22 -08:00
pat@pulumi.com
b96217341f Add the ability to {ex,im}port a stack's deployment.
These changes add the ability to export a stack's latest deployment or
import a new deployment to a stack via the Pulumi CLI. These
capabilities are exposed by two new verbs under `stack`:
- export, which writes the current stack's latest deployment to stdout
- import, which reads a new deployment from stdin and applies it to the
  current stack.

In the local case, this simply involves reading/writing the stack's
latest checkpoint file. In the cloud case, this involves hitting two new
endpoints on the service to perform the export or import.
2018-01-05 16:22:31 -08:00
Matthew Riley
31585701f1
Merge pull request #778 from pulumi/blocking-stdout
Reset nonblocking state for stdout before running tests
2018-01-05 14:05:03 -08:00
Luke Hoban
42c5e3f17f
Default pulumi logs to 1 hour of logs (#780)
Also inform user of what start time will be used for logs in output.

Also use RFC5424Milli instead of RFC3339Nano

Fixes #779.
2018-01-05 12:10:49 -08:00
Matthew Riley
ebccf19b52 Reset nonblocking state for stdout before running tests
In Travis, Node sees that `stdout` is a pipe and sets it to nonblocking.
Go's standard library isn't prepared for `stdout` to be nonblocking, so
sometimes long print statements can fail.
2018-01-04 22:53:48 -08:00
Chris Smith
decf814278
Enable running integration tests against the service (#775)
This PR updates the `pkg/testing/integration` package to support running integration tests against the Pulumi Service if desired. This is done through adding new options to `ProgramTestOptions`. (Generally adding support for providing values to flags that were previously inaccessible.)

I added an integration test to confirm that it all works if the PULUMI_API environment variable is set. These tests aren't run in Travis, only manually. Since we cannot reliably run tests from `master` against the service because of the delay in rolling out updates to the Pulumi SDK, etc.
2018-01-03 21:26:50 -08:00
Matt Ellis
c052e24370
Merge pull request #771 from pulumi/no-all-for-secrets
Do not allow encrypted global configuration
2018-01-03 15:04:00 -08:00
joeduffy
fcaf2a5145 Add a missing await for dynamic provider deletes 2017-12-28 17:47:10 -08:00
joeduffy
b3ee139b91 Fix error message for stack select failures 2017-12-28 16:51:53 -08:00
Matt Ellis
f510f3c914 Do not allow encrypted global configuration
The cloud backend does not support this because it computes an
encryption key per stack, so we should not support this in the CLI.

Fixes #770
2017-12-27 19:00:55 -08:00
Joe Duffy
d419229301
Add additional linting (#768)
This adds additional linting checks.  Most importantly, it will
check calls to our custom format routines for missing arguments.
2017-12-27 17:10:12 -08:00
joeduffy
5ac81c2818 Add missing Infof argument 2017-12-27 14:54:27 -08:00
joeduffy
acc9147ea1 Lock gRPC to v1.7.2 2017-12-27 06:35:52 -08:00