Commit graph

2839 commits

Author SHA1 Message Date
Paul Stack
1f16423ede
Change nodejs codegen to use coalescing operator when when default values are present (#6496) 2021-03-10 21:16:18 +00:00
Justin Van Patten
572c74826c
Add schema & codegen support for plain properties (#6481)
This change adds schema and codegen support for plain properties which
are emitted typed as the plain type rather than wrapped as an `Input`.
Plain properties require a prompt value and do not accept a value that
is `Output`.
2021-03-10 07:08:08 -08:00
Paul Stack
0241fb282c
Upgrading to go-cloud v0.22.0 (#6473) 2021-03-09 18:59:01 +00:00
Paul Stack
0d5b3d375d
Ensuring dotnet package sources are correct for local packages (#6476)
When passing a package source as part of a `dotnet add package` in
our acceptance testing framework, dotnet was then trying to use that
package source for the restoration of other packages in the csproj
file.

We have removed passing the source to dotnet add package add
and replaced it with adding a machine level package source via
dotnet nuget add source command

this is the more correct way to work and will allow us to be able
to search multiple locations as part of the dotnet restore command
2021-03-09 14:57:24 +00:00
Mikhail Shilkov
3ddf121b79 Respect provider aliases while diffing resources 2021-03-02 22:48:31 +01:00
Mikhail Shilkov
d1bd1a6cef Add missing provider title lookup 2021-03-02 15:59:41 +01:00
Komal
8616390418
[codegen/python] - Fix python .get() codegen (#6433) 2021-03-01 09:54:25 -08:00
Vivek Lakshmanan
48aff05ff3
Merge pull request #6428 from pulumi/vl/EnumContainerTypes
Adding enum container types support for go codegen
2021-02-26 09:42:31 -08:00
Vivek Lakshmanan
8d022e39e8 Fix tests 2021-02-25 22:26:54 -08:00
Vivek Lakshmanan
92571f8f12 Adding enum container types support for go codegen 2021-02-25 22:26:37 -08:00
Komal
ebb6575185
Add triple quotes around deprecation warnings. (#6429) 2021-02-25 21:22:04 -08:00
Mikhail Shilkov
9a837db992 Fix a lint error 2021-02-23 11:17:02 +01:00
Mikhail Shilkov
5b2ebc738b
Merge pull request #6250 from pulumi/mikhailshilkov/stack-overflow-programgen
Avoid stack overflow in Azure NextGen program examples
2021-02-23 09:45:50 +01:00
Luke Hoban
8fc6f910b4
Fix mustWrite for Input/Output PropertyMaps (#6396) 2021-02-23 09:04:57 +11:00
Justin Van Patten
277dee6cc1
[codegen/dotnet] Fixes to version.txt (#6398)
We currently include `version.txt` in the package via `<Content Include="version.txt">`. This places the file in the NuGet package in two locations: the `content` directory and `contentFiles`.

We want the file to be in `content` because this is where the Pulumi .NET Language host looks for the file when determining a program's required plugins.

However, having the file in `contentFiles` is problematic. For packages that reference other Pulumi resource packages (e.g. for multi-lang components), referenced `contentFiles` are included in the package by default. This means another package's `version.txt` will be included and used over the current project's `version.txt`. For example, if a multi-lang component package `Pulumi.Xyz` references `Pulumi.Aws`, the `version.txt` from `Pulumi.Aws` will be used in `Pulumi.Xyz` package rather than the intended `version.txt` for `Pulumi.Xyz`.

To address this, stop including `version.txt` in `contentFiles`. We do this by changing the `<Content Include="version.txt" />` to `<None Include="version.txt" Pack="True" PackagePath="content" />` in the project file. This  ensures the file will still be included in the package in the `content` dir (where the Pulumi .NET language host expects to find it), but doesn't include the file in `contentFiles` which would cause it to be used in other packages that reference the package.

Further, when generating `<PackageReference>`s for packages that start with "Pulumi.", include an additional `ExcludeAssets="contentFiles"` attribute to prevent the package's `contentFiles` from being included.
2021-02-22 08:33:16 -08:00
Komal
4882c9fec5
[CLI] - Add commands for config set-all and rm-all (#6373) 2021-02-19 21:55:58 -08:00
Paul Stack
1731053b18
[cli] Disable permalinks to the update details page when using elf-managed backends (S3, Azure, GCS) (#6251)
Fixes: #4029
Fixes: #3537

Should the user want to get permalinks when using a self-managed backend, they can pass a flag:
```
$ pulumi up --suppress-permalink false
```

Permalinks for these self-managed backends will be suppressed on `update`, `preview`, `destroy`,
`import` and `refresh` operations.
2021-02-19 23:55:35 +00:00
Paul Stack
47a43dc862
Allow http cloudurls on pulumi login (#6393) 2021-02-19 22:56:49 +00:00
Justin Van Patten
fac20ddf6b
[codegen/python] Emit pulumiplugin.json in the correct dir (#6385)
This new optional file can be used to include additional metadata about the provider plugin (such as version and custom server URL), which the Python language host will use when determining a program's required plugins.

This change fixes the codegen to emit the file in the correct location (inside the package dir). Note: Providers need to opt-in to emitting this file via a schema option (because it requires some Makefile changes to insert the version in the file) and we haven't done that with any of our providers yet.
2021-02-18 13:36:36 -08:00
Komal
f4f5aaf500
[codegen/docs] - More doc title fixes (#6357) 2021-02-17 09:08:19 -08:00
Komal
ae91a277df
[codegen/docs] - Standardize function and resource titles. (#6325) 2021-02-16 20:03:06 -08:00
Paul Stack
6479653f77
Fixing build of test TestResourceNestedPropertyPythonCasing inpkg/codegen (#6336) 2021-02-15 23:56:09 +00:00
Levi Blackstone
a1fc0d2095
[codegen/docs] Add environment variable info to Provider inputs (#6330)
The schema specifies supported environment variables
for Provider inputs, but these are not currently reflected
in the generated docs. This change adds any supported
environment variables to the input property comment
field on Provider resources.

Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2021-02-12 17:11:56 -07:00
Justin Van Patten
bdc309bb4a
[codegen/python] Fix issues related to referencing external resources/types (#6328)
- Fix bugs referencing external resources/types
- Fix circular import issue
- Avoid panic when referencing external nested types
2021-02-12 15:54:19 -08:00
Luke Hoban
f4b0fa86fe
Don't mutate the opts argument in resource constructors in Node.js (#6321) 2021-02-13 05:10:59 +11:00
Justin Van Patten
d02c0b1152
Default to UseAutomaticVirtualEnv in integration tests (#6318)
This way, the tests use the built-in virtual environment support by
default, which is what most customers will be using. A new `UsePipenv`
option is available to go back to using pipenv for tests.
2021-02-11 18:16:07 -08:00
Justin Van Patten
f111a53337
Look for python binary first on Windows (#6317)
We previously looked for `python3` and fallback to `python` on all systems. However, our Windows CI images include a `python3.exe` symlink to `python.exe` which does not work with `venv`. So on Windows, just look for `python` first, falling back to `python3`. (The default python.org Windows installation only includes `python.exe`).
2021-02-11 11:34:07 -08:00
Justin Van Patten
066507cd00
Do not specify a specific version of Python on Windows (#6316)
We install the version of Python we need in the CI environment (e.g. 3.9.x).
2021-02-11 08:22:04 -08:00
Evan Boyle
8e58f5d682
Add pagination to pulumi stack history (#6292)
replaces the unreleased `--limit` flag with `--page` and `--page-size` to support full pagination
2021-02-09 16:20:01 -08:00
Christian Nunciato
e2b48d2f20
Fix up resource-docs links (#6279)
Co-authored-by: Praneet Loke <1466314+praneetloke@users.noreply.github.com>
2021-02-09 09:04:02 -08:00
Evan Boyle
808483218e
fix linting errors in pkg (#6281) 2021-02-08 13:13:55 -08:00
Evan Boyle
eefc104c2b
Add --limit flag to pulumi stack history and consume from automation api (#6257)
Adds a `--limit` flag to `pulumi stack history. This allows limiting to the last few entries rather than fetching the entirety of a stack's update history (which can be quite slow for stacks with lots of updates). Example: `pulumi stack history --limit 1` fetches the last history entry only. 

`stack.up` and related operations in the Automation API have been updated to consume this change, drastically reducing overhead.
2021-02-08 10:49:57 -08:00
Christian Nunciato
40ce511a2b
Remove language SDK blocks from resource templates (#6270) 2021-02-07 19:31:05 +00:00
Mikhail Shilkov
c007f1f2f8 Avoid stack overflow in Azure NextGen program examples 2021-02-04 15:44:20 +01:00
Chris Smith
b29f440f0e
Add comments (#6234) 2021-02-01 16:00:46 -08:00
Justin Van Patten
e86a69bedd
[codegen/nodejs] Emit externally referenced resources/types (#6225) 2021-01-29 16:52:00 -08:00
Vivek Lakshmanan
1452709e97 Fix test 2021-01-29 10:14:24 -08:00
Vivek Lakshmanan
7cba9df480 Handle arrays/maps of external refs as pointers 2021-01-29 10:12:17 -08:00
Justin Van Patten
b3d11e1c32
Enable resource references by default (#6202) 2021-01-27 13:25:26 -08:00
Paul Stack
d72b788011
Ensure Old Secrets Provider Details Removed when Changing to Passphrase (#6210)
Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2021-01-27 20:07:25 +00:00
Vivek Lakshmanan
82020af298 Various fixes go codegen to fix SDK compilation problems 2021-01-26 23:16:42 -08:00
Justin Van Patten
d7dc6bf404
[codegen/dotnet]: Fix bugs referencing external resources/types (#6182)
- Avoids problematic `using` statements.
- Fixes fully qualified names of external resources.
- Avoids emitting directories with README.md files for external modules.
2021-01-26 11:02:34 -08:00
Vivek Lakshmanan
54582e7c68
Merge pull request #6179 from pulumi/vl/FixEnum
[codegen/go] Fix default value handling for enums
2021-01-22 19:28:01 -08:00
Vivek Lakshmanan
b8e0d53b9b Fix tests for other languages for updated enum test schema 2021-01-22 17:30:44 -08:00
Vivek Lakshmanan
fd3bbca5aa Fix default value handling for enums 2021-01-22 17:30:44 -08:00
Levi Blackstone
f5dab03846
[codegen/go] Handle hyphenated package names 2021-01-22 15:42:11 -07:00
Mikhail Shilkov
4335a44bfb
Relax the diff path check to avoid panic (#6159) 2021-01-22 12:00:44 +01:00
Vivek Lakshmanan
88d54c0c64 Cleanup 2021-01-21 16:09:08 -08:00
Vivek Lakshmanan
f5c76031ae Cleanup test go.mod
Follow up from https://github.com/pulumi/pulumi/pull/6124
2021-01-21 16:00:10 -08:00
Levi Blackstone
f6ec691544
Fix malformed resource value bug (#6164)
* Fix resource-ref-as-ID marshaling. (#6125)

This reapplies 2f0dba23ab.

* Fix malformed resource value bug

PR #6125 introduced a bug by marshaling resource
ids as PropertyValues, but not handling that case on
the unmarshaling side. The previous code assumed
that the id was a simple string value. This bug prevents
any stack update operations (preview, update, destroy,
refresh). Since this change was already
released, we must now handle both cases in the
unmarshaling code.

* Add resource ref unit tests for the Go SDK. (#6142)

This reapplies 3d505912b8.

Co-authored-by: Pat Gavlin <pat@pulumi.com>
2021-01-21 16:40:27 -07:00
Paul Stack
9322072146
Revert "Fix resource-ref-as-ID marshaling. (#6125)" (#6167) 2021-01-21 20:37:40 +00:00
Vivek Lakshmanan
6566b9058e Fix base import path handling in go programgen 2021-01-20 16:04:33 -08:00
Vivek Lakshmanan
4da8a45eb2 Option to generate container types resources now specified in GoPackageInfo 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
38ac84038c Make resource container-type generation optional 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
3aa566d286 Fix tests 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
3d6701732a PR comments 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
68b655bba6 Test fixes for other languages due to change in schema. 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
8f2901df01 Test data to cover types generated for external references 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
22896074f3 Expand testing to cover all generated files 2021-01-20 11:29:01 -08:00
Vivek Lakshmanan
842e4aa052 Support for external resource references and imports/aliases 2021-01-20 11:29:01 -08:00
Levi Blackstone
2dfec71a5c
[codegen/go] Register resource modules/packages (#6121) 2021-01-19 16:59:51 -07:00
Paul Stack
3b8c3f7e61
Add an option to be able to stack export showing secrets for use in ExtraRuntimeValidation (#6094)
Fixes: #2993

```
func TestAccMyExample(t *testing.T) {
	test := getBaseOptions().
		With(integration.ProgramTestOptions{
			Dir: filepath.Join(getCwd(t), "test-dir"),
			DecryptSecretsInOutput: true,
			ExtraRuntimeValidation: func(t *testing.T, stackInfo integration.RuntimeValidationStackInfo) {
			  // manipulate the output of the stack here
			}),
		})

	integration.ProgramTest(t, &test)
}
```
2021-01-19 19:18:45 +00:00
Pat Gavlin
2f0dba23ab
Fix resource-ref-as-ID marshaling. (#6125)
When marshaling a resource reference as its ID (i.e. when
opts.KeepResources is false, as it will be in the case of downlevel SDKs
and resource providers), we must take care to marshal/unmarshal an empty
ID as the unknown property value.

This includes the following changes to the resource ref APIs:

- Bifurcate resource reference creation into two methods: one for
  creating references to custom resources and one for creating
  references to component resources.
- Store the ID in a resource reference as a PropertyValue s.t. it can be
  computed.
- Add a helper method for retrieving the ID as a string + an indicator of
  whether or not the reference has an ID.

Fixes #5939.
2021-01-15 16:06:57 -08:00
Paul Stack
655418bbbf
Updating the description for the pulumi logs cli command (#6122)
Fixes: #6118
2021-01-15 18:23:52 +00:00
Levi Blackstone
aec642e8c9
[codegen/go] Add utility function to get current package version (#6117)
This function uses reflection to determine the current package
path and then extracts the version from that path string.
2021-01-15 10:03:57 -07:00
Paul Stack
61ae57da0c
Add support for pulumi logout --all (#6101) 2021-01-15 13:38:58 +00:00
Vivek Lakshmanan
6259bc0e8d Remove unnecessary local copy of stringSet 2021-01-12 14:28:50 -08:00
Vivek Lakshmanan
7980f047fb Add test to validate impact of setting PULUMI_BACKEND_URL 2021-01-11 16:27:54 -08:00
Vivek Lakshmanan
0d4f886525
Merge pull request #6069 from pulumi/vl/OptionalStrictEnum
Allow optional strict enum types to be omitted
2021-01-11 11:35:26 -08:00
Levi Blackstone
709fcbad51
Document Go packages (#6009)
Co-authored-by: Pat Gavlin <pat@pulumi.com>
2021-01-11 11:07:59 -07:00
Vivek Lakshmanan
15f9fb395f Address review comments 2021-01-11 10:00:13 -08:00
Vivek Lakshmanan
81b6a1b83d Linting 2021-01-11 09:58:32 -08:00
Vivek Lakshmanan
b70c89eeec Allow optional strict enum types to be omitted
Fixes https://github.com/pulumi/pulumi/issues/6068
2021-01-11 09:58:32 -08:00
Pulumi Bot
42f355b497
[CLI] Add Version to the output of pulumi stack history (#6063)
fixes: #4328

Allows events to be tracked back to those of the Pulumi SaaS

Co-authored-by: stack72 <public@paulstack.co.uk>
2021-01-07 19:44:15 +00:00
Pat Gavlin
e1ac01a9f2
Respect the version option for provider resources. (#6055)
Although raw provider resources accept an input that allows a user to
specifiy a provider version to use, this input is not reflected in
current SDK code generation. Furthermore, we already have a method to
specify the provider version that should be used for a resource: the
"version" resource option. These changes update the code that handles
provider resource registrations to autmoatically populate the version
input from the "version" resource option if the option is present.

Fixes https://github.com/pulumi/pulumi-azure/issues/803.
2021-01-05 15:57:11 -08:00
Mikhail Shilkov
061950dbc2
[codegen/dotnet] Stop generating nested unions (#6047) 2021-01-05 11:13:40 +01:00
Paul Stack
21de78291f
[CLI] Add a confirmation prompt when deleting a policy pack (#6034)
Fixes: #4292
2021-01-04 22:37:46 +00:00
stack72
c5e2d24e92 [CLI] document that pulumi-new can accept template urls
Fixes: #2086

```
pulumi new --help
Create a new Pulumi project and stack from a template.
...

To create a project from a user defined template location in source control, pass the url as follows e.g.
* pulumi new https://gitlab.com/<user>/<repo>
* pulumi new https://bitbucket.org/<user>/<repo>
* pulumi new https://github.com/<user>/<repo>

To create the project from a branch of the user defined source control location, pass the url to the branch, e.g.
* pulumi new https://gitlab.com/<user>/<repo>/tree/<branch>
* pulumi new https://bitbucket.org/<user>/<repo>/tree/<branch>
* pulumi new https://github.com/<user>/<repo>/tree/<branch>
```
2021-01-04 10:36:19 +00:00
Paul Stack
a7cabc2519
[CLI] Allow pulumi console to accept a stack name (#6031)
Fixes: #5854

If a stackname is not passed as an argument then it will use the
currently selected stack
2020-12-31 00:45:32 +00:00
Mikhail Shilkov
0f9273fc7b
[codegen] Add support for default values in enum properties (#6017) 2020-12-30 12:46:01 +01:00
Paul Stack
02b83f3203
Adding Splunk and Equinix Metal providers (#6007) 2020-12-23 23:27:09 +00:00
Pat Gavlin
c6d22a25e5
gRPC bridge: fix unknowns in Update previews (#6006)
These changes are a combination of three commits, each of which
contributes to the testing and/or fixing of a problem with marshaling
unknowns in `plugin.provider.Update` when `preview` is true.

## deploytest: add support for gRPC adapters. 

These changes add support for communicating with providers using the
gRPC adapters to the deploytest pacakage. This makes it easier to test
the gRPC adapters across typical lifecycle patterns.

Supporting these changes are two additions to the `resource/plugin`
package:

1. A type that bridges between the `plugin.Provider` interface and the
  `pulumirpc.ResourceProviderServer`
2. A function to create a `plugin.Provider` given a
  `pulumirpc.ResourceProviderClient`

The deploytest package uses these to wrap an in-process
`plugin.Provider` in a gRPC interface and connect to it without using
the default plugin host, respectively.

## pulumi_test: test provider preview over gRPC.

Add a test that runs the provider preview lifecycle, but using a
provider that communicates over gRPC.

## gRPC bridge: fix unknowns in `Update` previews

Set the `KeepUnknowns` and `RejectUnknowns` bits in the `MarshalOptions`
used when unmarshaling update results to preserve unknowns during a
preview and reject them otherwise.

These changes also set the `RejectUnknowns` bit in the `MarshalOptions`
used by `Create` if `preview` is false, and fix a bug in the array
unmarshaler that could cause out-of-bounds accesses.

Fixes https://github.com/pulumi/pulumi/issues/6004.
2020-12-23 13:25:48 -08:00
Levi Blackstone
795a11c44e
Fix a panic due to unsafe concurrent map access (#5995)
State tracking for goals was implemented using a raw map,
but this was not safe for concurrent read/write access from
multiple goroutines. Switched to using a sync.Map, which
is threadsafe.
2020-12-22 12:04:49 -07:00
Pat Gavlin
eeff5257c3
Do not read TGZs into memory. (#5983)
* Do not read TGZs into memory.

This runs a serious risk of exhausting the memory on lower-end machines
(e.g. certain CI VMs), especially given the potential size of some
plugins.

* CHANGELOG

* fixes
2020-12-20 12:54:11 -08:00
Levi Blackstone
8a9b381767
Fix panic related to update with refresh (#5980)
The step generator was incorrectly tracking goal states for
old resources, which could lead to a panic if the resource
was removed in the update. This fix only generates goal
states for resources that exist in the updated program.
2020-12-18 23:03:40 -08:00
Lee Zen
518ec3a8a5
Assume no terminal if the display width/height is 0 (#5959) 2020-12-18 15:38:15 -08:00
Levi Blackstone
1c87d58b4a
Fix bug with ComponentResource resource refs (#5949)
Now that resources are serialized as refs, ComponentResources
may try to unmarshal local resource refs before they are
initialized during the RegisterResource step.

This change avoids that issue by skipping Output marshaling
for local ComponentResources during the RegisterResource step.
These Outputs will be handled instead during the
RegisterResourceOutputs step.

Co-authored-by: Pat Gavlin <pat@pulumi.com>
2020-12-18 14:45:52 -07:00
Pat Gavlin
860ea4dc84
Add ignoreChanges preprocessing in ImportStep. (#5976)
The step generator applies `ignoreChanges` pre-processing for all
resources by copying old input values to the new goal for any properties
mentioned in the `ignoreChanges` list. However, this pre-processing
depends on the existence of prior inputs, which by definition does not
exist for a resource being imported prior to the issuance of the
`ImportStep`. These changes add this processing to the implementation of
`ImportStep`, using the inputs read from the provider as the prior
inputs.
2020-12-17 14:46:50 -08:00
Komal
b0756cb703
Improve meta tags on documentation (#5968) 2020-12-17 10:44:57 -08:00
Komal
31cd0934bd
Fix linting. (#5967) 2020-12-16 16:00:59 -08:00
Lee Briggs
de87d3cd88
make import command help a little clearer (#5965) 2020-12-16 12:45:11 -08:00
Pat Gavlin
9b6a7a4397
Improve resource ref unit tests. (#5960)
- Add component ref coverage to the existing test
- Add coverage for a downlevel SDK communicating with an engine that
  supports resource refs
- Add coverage for a downlevel engine communicating with an SDK that
  supports resource refs

As part of improving coverage, these changes add a knob to explicitly
disable resource refs in the engine without the use of the environment
variable. The environment variable is now only read by the CLI, and has
been restored to its prior polarity (i.e. `PULUMI_ENABLE_RESOURCE_REFERENCES`).
2020-12-16 12:38:20 -08:00
Komal
9b33dd84d5
[codegen/*] - Fix enum names that start with an underscore. (#5950) 2020-12-16 09:22:44 -08:00
Komal
807e7a051e
[codegen/dotnet] - Fix enum naming for k8s (#5956) 2020-12-16 08:58:42 -08:00
Komal
a75f63edb5
Fix linting. (#5954) 2020-12-15 17:56:42 -08:00
Pat Gavlin
20743f7be3
Split engine unit tests into individual files. (#5951)
Each file covers a particular feature. These changes are intended to
make the tests easier to navigate.
2020-12-15 14:24:46 -08:00
Komal
cae129c7fa
[codegen/*] - Align makeValidIdentifier between languages (#5944) 2020-12-15 12:41:27 -08:00
Komal
791ccc58d4
[codegen/docs] - Remove primitive type links (#5911) 2020-12-14 19:56:45 -08:00
Komal
95c09d88c8
[codegen/docs] - Add enums to docs (#5912) 2020-12-14 14:40:14 -08:00
Levi Blackstone
54d6703fee
Temporarily disable resource ref support (#5932)
Disable resource ref support until https://github.com/pulumi/pulumi-kubernetes/issues/1405
is fixed. This bug currently affects Python users with recent versions of the pulumi SDK
who are using the pulumi-kubernetes provider.
2020-12-12 12:02:45 -08:00
Komal
fed47e7334
[codegen/docs] - Fix html for property types (#5929) 2020-12-11 12:01:50 -08:00
Levi Blackstone
d3c75afce1
[codegen/go] Fix Input/Output methods for Go resources (#5916) 2020-12-11 11:49:08 -07:00
Pat Gavlin
43c2507058
Allow display output to be explicitly redirected. (#5887)
This is intended to make it easier to write tests for components (e.g.
the backends) that consume these packages.
2020-12-10 11:39:01 -08:00
Levi Blackstone
4d48ee0517
Enable resource reference feature by default (#5905)
* Enable resource reference feature by default

Unless the PULUMI_DISABLE_RESOURCE_REFERENCES flag
is explicitly set to a truthy value, the resource reference feature is now
enabled by default.

* Set AcceptResources in the language SDKs

This can be disabled by setting the `PULUMI_DISABLE_RESOURCE_REFERENCES` environment variable to a truthy value.

Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2020-12-10 11:21:05 -07:00
Paul Stack
3994fa8c22
Prevent panic when using pulumi import with local backend (#5906)
Fixes: #5876
2020-12-10 13:31:45 +00:00
Komal
cba68b0874
Fix union types in resource docs (#5909) 2020-12-09 18:18:34 -08:00
Mikhail Shilkov
cab39dcfa0
[dotnet] Resource package registration in .NET (attributes) (#5875)
* Resource package registration in .NET
* Refactor to attribute-based discovery
* Refactor to derived attributes
2020-12-09 23:28:58 +01:00
Komal
193b1f7d3b
Remove optional identifier before splitting type string. (#5907) 2020-12-09 12:20:11 -08:00
Pat Gavlin
a193836682
Fix new resource recording. (#5897)
Record new resources after their operations have been run rather than
before in order to ensure that all state is available and appropriately
marked as secret.

Fixes #5803.
2020-12-08 19:21:58 -08:00
Komal
999c6fbd33
[codegen/docs] - Improve resource doc titles (#5894) 2020-12-08 15:04:36 -08:00
stack72
4c4a4733e8 Fixing up the go deps as this was breaking the publish step 2020-12-08 14:30:21 +00:00
Paul Stack
4f5b3c8522
Ensure we have an import error before using in import path (#5884)
Without this, we can panic
2020-12-08 00:43:35 +00:00
Vivek Lakshmanan
77f2e0fa3f go mod 2020-12-07 14:17:45 -08:00
Vivek Lakshmanan
ed0d427958 Add a python shim script to work around https://github.com/golang/go/issues/42919 2020-12-07 14:17:45 -08:00
Paul Stack
12dd0767ac
Ensure we can rotate pulumi passphrase secrets providers (#5865)
Fixes: #5452

When the user is requesting to change the secrets provider to a
passphrase provider, we now calculate that has been requested.

This means, we will prompt for a new passphrase for use in encrypting
the stack.

```
pulumi stack change-secrets-provider passphrase
Enter your passphrase to unlock config/secrets
    (set PULUMI_CONFIG_PASSPHRASE or PULUMI_CONFIG_PASSPHRASE_FILE to remember):
Enter your new passphrase to protect config/secrets:
Re-enter your new passphrase to confirm:
Migrating old configuration and state to new secrets provider
Enter your passphrase to unlock config/secrets
    (set PULUMI_CONFIG_PASSPHRASE or PULUMI_CONFIG_PASSPHRASE_FILE to remember):
```
2020-12-04 15:21:51 +00:00
Justin Van Patten
5ab051cd97
Implement GetRequiredPlugins for Python (#5787)
Implement GetRequiredPlugins for Python, which determines the plugins
required by the program.

Also, if the `virtualenv` runtime option is set, and the specified
virtual directory is missing or empty, automatically create it and
install dependencies into it.
2020-12-03 19:22:16 -08:00
Justin Van Patten
260620430c
[codegen/(nodejs|python)] package/module registration with version info (#5839)
Generate ResourcePackage and ResourceModule implementations and
registrations. A ResourcePackage is generated for any module that
includes a provider resource (which should be the root module only), and
a ResourceModule is generated for any module that includes a resource.

And add version info to Python registrations.
2020-12-02 13:45:25 -08:00
Justin Van Patten
ea1b962999
Revert "Enable resource reference feature by default" (#5850)
To de-risk the Pulumi v2.15.0 release, temporarily revert 679d40950f. Use of resource references will require `PULUMI_EXPERIMENTAL_RESOURCE_REFERENCES=1` to be set until the feature has been enabled by default.
2020-12-02 08:39:21 -08:00
Joe Duffy
01d0d64e84
Correctly rename stack files during a rename (#5812)
* Correctly rename stack files during a rename

This fixes pulumi/pulumi#4463, by renaming a stack's configuration
file based on its stack-part, and ignoring the owner-part. Our
workspace system doesn't recognize configuration files with fully
qualified names. That, by the way, causes problems if we have
multiple stacks in different organizations that share a stack-part.

The fix here is simple: propagate the new StackReference from the
Rename operation and rely on the backend's normalization to a
simple name, and then use that the same way we are using a
StackReference to determine the path for the origin stack.

An alternative fix is to recognize fully qualified config files,
however, there's a fair bit of cleanup we will be doing as part of
https://github.com/pulumi/pulumi/issues/2522 and
https://github.com/pulumi/pulumi/issues/4605, so figured it is best
to make this work the way the system expects first, and revisit it
as part of those overall workstreams. I also suspect we may want to
consider changing the default behavior here as part of
https://github.com/pulumi/pulumi/issues/5731.

Tests TBD; need some advice on how best to test this since it
only happens with our HTTP state backend -- all integration tests
appear to use the local filestate backend at the moment.

* Add a changelog entry for bug fix

* Add some stack rename tests

* Fix a typo

* Address CR feedback

* Make some logic clearer

Use "parsedName" instead of "qn", add a comment explaining why
we're doing this, and also explicitly ignore the error rather
than implicitly doing so with _.
2020-12-01 16:55:48 -08:00
Levi Blackstone
679d40950f
Enable resource reference feature by default (#5848)
Unless the PULUMI_DISABLE_RESOURCE_REFERENCES flag
is explicitly set to a truthy value, the resource reference feature is now
enabled by default.
2020-12-01 16:58:49 -07:00
Levi Blackstone
948a9cc27d
[codegen/docs] Exclude eks package API links (#5843) 2020-12-01 12:03:08 -07:00
Paul Stack
eee053cb4c
Ensure EncryptionKey is regenerated when changing secrets provider (#5842)
Fixes: #5835

when rotating a key in the Azure KeyVault secrets provider, we had
the following error:

```
error: secrets (code=InvalidArgument): keyvault.BaseClient#Decrypt: Failure responding to request: StatusCode=400 -- Original Error: autorest/azure: Service returned an error. Status=400 Code="BadParameter" Message="The parameter is incorrect.\r\n"
```

This was because we were not regenerating the EncrytpionKey when
we were changing the secrets provider. Therefore, we now ensure
that this key is regenerated and we can successfully change the secrets provider

```
▶ pulumi stack init dev --secrets-provider="azurekeyvault://stack72kv10.vault.azure.net/keys/pulumi-secret"
Created stack 'dev'

▶ pulumi config set MyDBRootPassword Password1234! --secret

▶ pulumi config --show-secrets
KEY               VALUE
MyDBRootPassword  Password1234!

▶ pulumi stack change-secrets-provider "azurekeyvault://stack72kv20.vault.azure.net/keys/pulumi-secret"

▶ pulumi config --show-secrets
KEY               VALUE
MyDBRootPassword  Password1234!
```
2020-12-01 15:26:23 +00:00
Justin Van Patten
06da84a752
Turn on support for resourceReferences behind feature flag (#5830) 2020-11-25 10:43:46 -08:00
Komal
600e296ee2
[codegen/python] - Enums (#5553) 2020-11-24 23:43:32 -06:00
Komal
995d3b9b6c
Remove UsesIOClasses check. (#5827) 2020-11-24 19:15:37 -06:00
Pat Gavlin
4b90205f3f
[codegen/python/sdk]: package/module registration (#5806)
Generate ResourcePackage and ResourceModule implementations and
registrations. A ResourcePackage is generated for any module that
includes a provider resource (which should be the root module only), and
a ResourceModule is generated for any module that includes a resource.

Note that version information is currently omitted. We should fix this
up before enabling resource reference deserialization end-to-end.
2020-11-24 12:43:23 -08:00
Paul Stack
b0580ab998
Ensure we don't panic or write import helper text on import errors (#5825)
Fixes: #5688
Fixes: #5737
2020-11-24 17:14:09 +00:00
Mikhail Shilkov
6138ee1cc7
Populate package for doc args types (#5822) 2020-11-24 11:20:25 +01:00
Paul Stack
d64c58c731
Ensure the correct qualified code is emitted for Python ResourceOptions (#5824) 2020-11-24 02:21:25 +00:00
Justin Van Patten
a9d213107b
[codegen/(dotnet|python)]: Emit refs to provider resources (#5810) 2020-11-23 12:28:00 -08:00
Pat Gavlin
807b09d6a6
Fix a few issues with resource references. (#5804)
- Differentiate between resource references that have no ID (i.e. because
  the referenced resource is not a CustomResource) and resource references
  that have IDs that are not known. This is necessary for proper
  backwards-compatible serialization of resource references.
- Fix the key that stores a resource reference's package version in the
  .NET, NodeJS, and Python SDKs.
- Ensure that the resource monitor's marshalling/unmarshalling  of inputs
  and outputs to/from calls to `Construct` retain resource references as
  appropriate.
- Fix serialization behavior for resources -> resource references in the
  Go SDK: if a resource's ID is unknown, it should still be serialized
  as a resource reference, albeit a reference with an unknown ID.
2020-11-23 11:15:10 -08:00
Komal
505d53421e
[codegen/python] - Include inputs import in provider.py (#5818) 2020-11-23 10:39:42 -06:00
Justin Van Patten
9a707c4e03
Improve the output when installing plugins (#5808)
Two improvements:

1. Don't display "[resource plugin <foo>] installing" if the plugin is already installed.

2. Close the plugin download progress bar before displaying any subsequent output, and only show output of `npm install` when there is an error.
2020-11-21 08:02:05 -08:00
Pat Gavlin
20f7720869
Add support for getResource to the Python SDK. (#5694)
Just what it says on the tin.

The SDK code generator will be updated to use the new `urn`
resource option inside of each module's implementation of
`ResourceModule.construct`.

Part of #2430.

Co-authored-by: Justin Van Patten <jvp@justinvp.com>
2020-11-20 13:13:23 -08:00
Mikhail Shilkov
a056daafd7
[codegen/dotnet] Handle external resource refs (#5791) 2020-11-20 21:09:34 +01:00
Pat Gavlin
f527e06b21
Allow schemas to reference to provider types. (#5788)
These changes extend the type reference parser in the schema package to
accept references of the form "(package/version/schema.json)?#/provider".
These references refer to the package's provider type, which is
otherwise not referenceable, as it is not present in the "resources"
array.
2020-11-20 09:16:45 -08:00
Levi Blackstone
3586ab5d85
[codegen/python] Handle external schema refs (#5684) 2020-11-19 13:56:28 -07:00
Vivek Lakshmanan
2b435bb1a7
Merge pull request #5670 from pulumi/vl/GoEnumsCodegen
Adding support for go enum generation
2020-11-18 11:54:30 -08:00
Pat Gavlin
f0951ce650
Rename engine.plan to engine.deployment. (#5777)
This name better suits the semantics of the type, and aligns with the
rename of deploy.Plan to deploy.Deployment. These changes also refactor
the `update` method s.t. previews and updates are more consistent in
their behavior (e.g. duration and resource changes are now reported for
both, incl. on error paths).
2020-11-18 11:16:30 -08:00
Vivek Lakshmanan
1cfbe5bdd5 Linting fixes 2020-11-18 10:57:01 -08:00
Vivek Lakshmanan
1ba418ee7b
Merge pull request #5751 from pulumi/vl/VerboseBuild
Reduce verbosity on tests
2020-11-18 10:38:06 -08:00
Pat Gavlin
0981df6a7a
Rename deploy.Plan to deploy.Deployment. (#5774)
Rename deploy.Plan to deploy.Deployment.

There are two benefits to this change:

1. The name "Deployment" more accurately reflects the behavior of the
   type, which is responsible for previewing or executing a deployment.
2. Renaming this type frees up the name "Plan" for use when addressing
   #2318.
2020-11-18 09:47:52 -08:00
Vivek Lakshmanan
d1caee26d3 Update makeSafeEnum semantics to match other languages 2020-11-18 09:44:30 -08:00
Vivek Lakshmanan
221105a072 Ensure stderr is updated on error even if verbose is not set 2020-11-18 00:56:26 -08:00
Vivek Lakshmanan
da5c01f9ca Fix build/tests 2020-11-18 00:13:41 -08:00
Vivek Lakshmanan
6e466e4ec0 Apply suggestions from code review
Co-authored-by: Komal <komal@pulumi.com>

Address PR comments
2020-11-18 00:08:09 -08:00
Vivek Lakshmanan
c818098733 Address PR comment 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
65e027062d Add an underscore if enum values have underscores 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
41fff5dc08 Add type as prefix for enum values 2020-11-18 00:07:42 -08:00
Vivek Lakshmanan
169fb47154 Consolidate tests 2020-11-18 00:07:42 -08:00