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 |
||
---|---|---|
.. | ||
gen_program_test | ||
doc.go | ||
doc_test.go | ||
embeddedUtilities.go | ||
gen.go | ||
gen_program.go | ||
gen_program_expression_test.go | ||
gen_program_expressions.go | ||
gen_program_inline_invoke.go | ||
gen_program_json.go | ||
gen_program_optionals.go | ||
gen_program_read_dir.go | ||
gen_program_splat.go | ||
gen_program_ternaries.go | ||
gen_program_test.go | ||
gen_program_utils.go | ||
gen_spill.go | ||
gen_test.go | ||
importer.go | ||
test.go | ||
utilities.go | ||
utilities_test.go |