mirror of https://github.com/pulumi/pulumi.git
ebf838e02e
Partially addressing #12710 ### Description This PR extends Go SDK-gen, specifically for output-versioned invokes such that they no longer rely on the plain invokes for their function body. We do this by implementing and using a sdk function `InvokePackageRaw` which is similar to `InvokePackage` except that it doesn't fail on secrets and actually returns a boolean indicating whether the invoke response contained any secrets. This way, the generated output-versioned invokes can immediately wrap the response as a secret if necessary and more importantly, not failing immediately if the response contained secrets. The sdk-gen test `output-funcs` actually do a runtime test for the newly generated function body and it passes. ~~However, I don't think it covers the _if secret then wrap as secret_ path~~ but maybe that's acceptable because it's a simple one liner ```go // <invoke function body ommited here> if secret { return pulumi.ToSecret(output).(FuncResultOutput), nil } ``` Follow-up PRs with less priority: - [x] A proper test for invokes with secrets in their response - [ ] A conformance test - [ ] Doing the same for _generic_ output-versioned invokes to let them maintain secretness ### EDIT Updated the test in output-funcs such that it now returns a response for an invoke containing secrets |
||
---|---|---|
.. | ||
internal | ||
argFunction.go | ||
doc.go | ||
init.go | ||
otherResource.go | ||
provider.go | ||
pulumi-plugin.json | ||
pulumiTypes.go | ||
resource.go |