Commit graph

2854 commits

Author SHA1 Message Date
joeduffy ae50253db5 Add support for archives 2018-07-02 14:24:45 -07:00
joeduffy d89192a9d0 Fix reference to _custom_resource_type 2018-07-02 13:51:12 -07:00
Sean Gillespie 1cbf8bdc40 Partial status for resource providers
This commit adds CLI support for resource providers to provide partial
state upon failure. For resource providers that model resource
operations across multiple API calls, the Provider RPC interface can now
accomodate saving bags of state for resource operations that failed.
This is a common pattern for Terraform-backed providers that try to do
post-creation steps on resource as part of Create or Update resource
operations.
2018-07-02 13:32:23 -07:00
Sean Gillespie 8b9e24cd85 Allow dynamic-provider to send structured errors
A critical part of the partial update protocol is to return a structured
error when a resource is successfully created, but fails to initialize.
This structured error contains the properties of the
partially-initialized resource, and instructs the engine to halt.

Most languages implement this by attaching "details" to the error, i.e.,
an arbitrary proto message attached to the error. The JavaScript
implementation is not mature enough to include all the facilities
required to use this, so here we must add a `Status` message, which
protobuf requires as part of its structure for returning details.
2018-07-02 13:32:23 -07:00
Alex Clemmer 3bd2e6f235 Represent init errors in resource provider proto 2018-07-02 13:32:23 -07:00
Alex Clemmer 08b7b1e76e Make protobuf build more reproducible 2018-07-02 13:31:39 -07:00
Alex Clemmer 2394743c60 Fix the lies in sdk/proto/generate.sh 2018-07-02 13:31:39 -07:00
Matt Ellis 5dd2f10993 Support -s in stack {export, graph, import, output}
Instead of needing you to first select the current stack to use any of
these commands, allow passing `-s <stack-name>` or `--stack
<stack-name>` to say what stack you want to operate on.

These commands still require a `Pulumi.yaml` file to be present, which
is not ideal, but would require a larger refactoring to fix. That
refactoring will happen as part of #1556.

Fixes #1370
2018-07-02 11:42:31 -07:00
joeduffy a5b33c4652 Make a few README tweaks 2018-06-30 11:48:39 -07:00
joeduffy 10300d2098 Add some badges and goodies
This change spiffs up the README a little bit, by adding badges and
other goodies:

* Add a logo image, rather than just text.

* Add some badges

    - Slack
    - NPM version
    - PyPI version
    - GoDoc APIs
    - License

  I'm sure we can add more, but this livens things up a bit.

* Wordsmith the introductory text for SEO and some extra oomph.

* Add a Welcome section with important links to Getting Started,
  Tutorials, Examples, A Tour of Pulumi, Reference Docs, and
  Community Slack.  Pin a nice image of our console to the right.

* Add a Getting Started section which extends the existing "how to
  install" section slightly to cover a bit more ground.  Ultimately,
  pulumi.io is the source of truth here, but having it here seems handy.
2018-06-30 11:37:40 -07:00
joeduffy baef7fc92c Update stale README 2018-06-30 09:55:12 -07:00
Joe Duffy e9ed27792d
Merge pull request #1585 from pulumi/swgillespie/python-throw
Fix an issue where we fail to rethrow exceptions arising from failed …
2018-06-30 08:47:22 -07:00
Sean Gillespie 279282f1e1
Implementation of Assets for Python 2018-06-29 17:07:27 -07:00
Sean Gillespie 1db89a1006
Fix an issue where we fail to rethrow exceptions arising from failed resource operations 2018-06-29 16:32:39 -07:00
Sean Gillespie f0d5d0e4fe
Fix an issue where Unknown does not coerce to a bool correctly on Python
2
2018-06-29 15:51:04 -07:00
Sean Gillespie 5d1a3db4aa
Python Language Host Tests (#1577)
* Test the Python language host end-to-end

This commit introduces an end-to-end language host testing framework for
the Python SDK, similar to what already exists for the Node SDK. The
real language host is used to run Pulumi programs written in Python
while mocking out the resource monitor.

* Add new tests

* Print out better diagnostics when the langhost fails to launch

* Use the in-tree executor for testing

* CR: Place tests and code being tested in the same directory for ease of understanding, add a README

* Turns out I misunderstood the semantics of resource registration - fix two tests so that they pass now and fix a few bugs in the test harness
2018-06-29 14:08:58 -07:00
Matt Ellis 2b471bda70 Add pulumi whoami
It's often helpful to understand the user the CLI thinks you are
logged in as, so let's add a command that does that.

Fixes #1507
2018-06-28 10:33:59 -07:00
Sean Gillespie c2b2f3b117
Initial Python 3 port of the Python SDK (#1563)
* Machine-assisted Python 3 port

* Hack around protoc python imports

* Regenerate gRPC and protobuf

* CR: Bash code cleanup
2018-06-26 11:14:03 -07:00
Matt Ellis cfa58a4b57 Don't require PULUMI_DEBUG_COMMANDS to be set to use local backend
This was an artifact of history. Since we'll be supporting the local
backend, we don't need yet another flag guarding it (you already have
to opt in with -c local:// which is enough of a hoop).
2018-06-25 18:30:26 -07:00
Matt Ellis 45faf10eed Bump windows test timeout
Some of the AppVeyor integration tests are timing out (from time to
time) and I think the deadline of 2 mins is a tad too short. We've
actually done similar bumps for macOS in Travis which was also a
little slow.
2018-06-25 17:31:31 -07:00
Justin Van Patten 2df35f4381
Improve misleading pulumi new summary message (#1571)
Mention running `cd` (if needed) before `pulumi update`.
2018-06-25 16:26:29 -07:00
Sean Gillespie abb0c2769b
Pin to a specific Pipenv version (#1570) 2018-06-25 14:08:56 -07:00
James Nugent 8c22c9da27 build: Update Gopkg.lock with latest dependencies 2018-06-22 11:24:29 -07:00
James Nugent a1e2da3b76 build: Use canonical import path for mobytime
This change fixes the following warning issued by using `go get` with
the Pulumi repository:

package github.com/moby/moby/api/types/time: code in directory
/Users/James/Code/go/src/github.com/moby/moby/api/types/time expects
import "github.com/docker/docker/api/types/time"

Moby defines canonical import paths [1] reflecting the lineage back to
the `docker/docker` repository.

[1]: https://github.com/moby/moby/blob/master/api/types/time/duration_convert.go#L1
2018-06-22 11:24:29 -07:00
James Nugent d6248bb1d5 meta: Ignore IntellJ IDEA project files 2018-06-22 11:24:29 -07:00
Matthew Riley 34be8203dd
Merge pull request #1557 from pulumi/mattdr/build-instructions
Remove instructions using "go get"
2018-06-22 10:48:23 -07:00
Sean Gillespie 89b052fc6d
Use Pipenv to manage Python environments (#1553)
* Use Pipenv to manage Python environments

* Rename PIPENV_ARGS to PIPENV_PYTHON_VERSION to avoid confusion. Also remove two unused variables
2018-06-21 18:01:23 -07:00
Matthew Riley 332937e624 Remove instructions using "go get"
These mostly work, but they don't reflect our dev or CI workflows and are
likely to deviate in frustratingly small ways.
2018-06-21 16:06:11 -07:00
Pat Gavlin 78aaa29cee
Fix httputil.DoWithRetry. (#1555)
If we've hit the maximum number of retry attempts, return `true` for
`done`. As it stands, it is possible for us to return a `nil` error
(e.g. if the request sends successfully but returns a `50x` status) and
`false` for `done`, which `retry.Until` will interpret as "keep
retrying".
2018-06-21 11:06:54 -07:00
CyrusNajmabadi 4cebc381ae
Do a better job preventing serialization of unnecessary objects in closure serialization (#1543) 2018-06-20 12:57:57 -07:00
CyrusNajmabadi 0b0927d257
Fix printing out outputs in a pulumi program. (#1531) 2018-06-18 16:03:26 -07:00
Pat Gavlin 0c8dedec22
Issue an error when attempting to read an invalid Asset. (#1528)
As an alternative we could consider simply returning an empty `Blob`.
I think it's better to fail loudly, though, as this situation can result
from unexpected/invalid archives (which we need to do a better job of
validating).

Fixes #1493.
2018-06-18 11:08:17 -07:00
Matthieu Collé 683f80ded8 docs(readme): fixed typo 2018-06-18 05:29:56 -07:00
joeduffy 4053ce7b86 Remove Private Beta warning 2018-06-18 05:00:38 -07:00
Matt Ellis 1746cc60a2 Fix Windows publishing 2018-06-17 23:16:58 -07:00
Matt Ellis c5b7caa52b
Merge pull request #1506 from pulumi/ellismg/clean-up-build-test-issues
Fix some build and test issues
2018-06-17 23:09:34 -07:00
Matt Ellis 2cfbe81adb Remove dependency on pulumi/home
Stop cloning pulumi/home. This doesn't work in Travis because public
repositories can not have private SSH keys, which we'd need to clone
this repository. All the scripts we consume from there are now in
pulumi/scripts and so we'll just consume them from there.
2018-06-17 22:09:15 -07:00
Sean Gillespie 71f65e65f3
Merge pull request #1522 from pulumi/ellismg/contribute
Add CONTRIBUTING.md
2018-06-17 19:27:03 -07:00
Sean Gillespie e9266a4a07
Add comment about setting GOCACHE to off when using Go 1.10 2018-06-17 17:38:10 -07:00
Matt Ellis 5bd03eade8 Remove extra clause 2018-06-17 16:52:32 -07:00
Matt Ellis 7c5600e955 Add CONTRIBUTING.md 2018-06-17 16:44:26 -07:00
joeduffy 776c538b7f Add a few helpful pointers to the README 2018-06-17 11:15:03 -07:00
joeduffy fcd46c93c5 Settle on just Preview 2018-06-15 13:37:27 -07:00
CyrusNajmabadi 57ee29ebbb
Tweak readme. (#1505) 2018-06-15 13:33:51 -07:00
Matt Ellis 6f80da24d4 Add Apache 2.0 License metadata to Python package 2018-06-15 12:47:51 -07:00
Matt Ellis d0485f11f6 Include Python and Go langhosts in Windows SDK
This change includes the Python and Golang language hosts in the Windows
SDK. As part of this change, I had to adjust how we launched the second
stage of the language host, since we can't depend on the shebang, so now
we invoke `python` passing the executor and then the arguments.

Fixes #1509
2018-06-15 11:12:33 -07:00
Matt Ellis 50c98edd72 Don't set NODE_PATH in dynamic provider
This is a holdover from our old strategy for closure serialization. We
no longer use this module, so we don't need to tell Node where it is
anymore.
2018-06-15 11:12:24 -07:00
Matt Ellis a47babd194 Run export/import rounttrip as part of our lifecycle tests
This allows us to delete the one off export/import test, which is nice
because it failed to run when PULUMI_ACCESS_TOKEN was not set in the
environment (due to an interaction between `pulumi login` and the
bare-bones integration test framework)
2018-06-14 16:01:28 -07:00
Matt Ellis 2669f65b39 Don't dirty work tree when running tests
Because we run our golang integration tests "in tree" (due to
the need to be under $GOPATH and have a vendor folder around), the
"command-output" folder was getting left behind, dirtying the worktree
after building.

This change does two things:

1. On a succecssful run, remove the folder.
2. Ignore the folder via .gitignore (this way if a test fails and you
do `git add .` you don't end up commiting this folder).
2018-06-14 15:58:37 -07:00
Matt Ellis 9ccd07714a Publish SDK builds to get.pulumi.com
Previously, we published builds to rel.pulumi.com and only put actual
released builds (eg. rc's and final builds) on get.pulumi.com. We
should just publish all of the SDK builds to get.pulumi.com.

This also makes a slight tweak to the filename of the package we
upload (we took the switch over to get.pulumi.com to make this change
and now that we are uploading automatically, we need to encode this
change instead of doing it by hand).
2018-06-12 12:23:05 -06:00