Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[auto/go] Support for remote operations
- Loading branch information
Showing
10 changed files
with
886 additions
and
11 deletions.
There are no files selected for viewing
4 changes: 4 additions & 0 deletions
4
changelog/pending/20221027--auto-go--support-for-remote-operations.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
changes: | ||
- type: feat | ||
scope: auto/go | ||
description: Support for remote operations |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
// Copyright 2016-2022, Pulumi Corporation. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
// Package optremotedestroy contains functional options to be used with remote stack destroy operations | ||
// github.com/sdk/v3/go/auto RemoteStack.Destroy(...optremotedestroy.Option) | ||
package optremotedestroy | ||
|
||
import ( | ||
"io" | ||
|
||
"github.com/pulumi/pulumi/sdk/v3/go/auto/events" | ||
) | ||
|
||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental destroy stdout | ||
func ProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ProgressStreams = writers | ||
}) | ||
} | ||
|
||
// ErrorProgressStreams allows specifying one or more io.Writers to redirect incremental destroy stderr | ||
func ErrorProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ErrorProgressStreams = writers | ||
}) | ||
} | ||
|
||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
func EventStreams(channels ...chan<- events.EngineEvent) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.EventStreams = channels | ||
}) | ||
} | ||
|
||
// Option is a parameter to be applied to a Stack.Destroy() operation | ||
type Option interface { | ||
ApplyOption(*Options) | ||
} | ||
|
||
// ---------------------------------- implementation details ---------------------------------- | ||
|
||
// Options is an implementation detail | ||
type Options struct { | ||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental destroy stdout | ||
ProgressStreams []io.Writer | ||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental destroy stderr | ||
ErrorProgressStreams []io.Writer | ||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
EventStreams []chan<- events.EngineEvent | ||
} | ||
|
||
type optionFunc func(*Options) | ||
|
||
// ApplyOption is an implementation detail | ||
func (o optionFunc) ApplyOption(opts *Options) { | ||
o(opts) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
// Copyright 2016-2022, Pulumi Corporation. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
// Package optremotepreview contains functional options to be used with remote stack preview operations | ||
// github.com/sdk/v3/go/auto RemoteStack.Preview(...optremotepreview.Option) | ||
package optremotepreview | ||
|
||
import ( | ||
"io" | ||
|
||
"github.com/pulumi/pulumi/sdk/v3/go/auto/events" | ||
) | ||
|
||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental preview stdout | ||
func ProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ProgressStreams = writers | ||
}) | ||
} | ||
|
||
// ErrorProgressStreams allows specifying one or more io.Writers to redirect incremental preview stderr | ||
func ErrorProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ErrorProgressStreams = writers | ||
}) | ||
} | ||
|
||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
func EventStreams(channels ...chan<- events.EngineEvent) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.EventStreams = channels | ||
}) | ||
} | ||
|
||
// Option is a parameter to be applied to a Stack.Preview() operation | ||
type Option interface { | ||
ApplyOption(*Options) | ||
} | ||
|
||
// ---------------------------------- implementation details ---------------------------------- | ||
|
||
// Options is an implementation detail | ||
type Options struct { | ||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental preview stdout | ||
ProgressStreams []io.Writer | ||
// ErrorProgressStreams allows specifying one or more io.Writers to redirect incremental preview stderr | ||
ErrorProgressStreams []io.Writer | ||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
EventStreams []chan<- events.EngineEvent | ||
} | ||
|
||
type optionFunc func(*Options) | ||
|
||
// ApplyOption is an implementation detail | ||
func (o optionFunc) ApplyOption(opts *Options) { | ||
o(opts) | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,68 @@ | ||
// Copyright 2016-2022, Pulumi Corporation. | ||
// | ||
// Licensed under the Apache License, Version 2.0 (the "License"); | ||
// you may not use this file except in compliance with the License. | ||
// You may obtain a copy of the License at | ||
// | ||
// http://www.apache.org/licenses/LICENSE-2.0 | ||
// | ||
// Unless required by applicable law or agreed to in writing, software | ||
// distributed under the License is distributed on an "AS IS" BASIS, | ||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
// See the License for the specific language governing permissions and | ||
// limitations under the License. | ||
|
||
// Package optremoterefresh contains functional options to be used with remote stack refresh operations | ||
// github.com/sdk/v3/go/auto RemoteStack.Refresh(...optremoterefresh.Option) | ||
package optremoterefresh | ||
|
||
import ( | ||
"io" | ||
|
||
"github.com/pulumi/pulumi/sdk/v3/go/auto/events" | ||
) | ||
|
||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental refresh stdout | ||
func ProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ProgressStreams = writers | ||
}) | ||
} | ||
|
||
// ErrorProgressStreams allows specifying one or more io.Writers to redirect incremental refresh stderr | ||
func ErrorProgressStreams(writers ...io.Writer) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.ErrorProgressStreams = writers | ||
}) | ||
} | ||
|
||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
func EventStreams(channels ...chan<- events.EngineEvent) Option { | ||
return optionFunc(func(opts *Options) { | ||
opts.EventStreams = channels | ||
}) | ||
} | ||
|
||
// Option is a parameter to be applied to a Stack.Refresh() operation | ||
type Option interface { | ||
ApplyOption(*Options) | ||
} | ||
|
||
// ---------------------------------- implementation details ---------------------------------- | ||
|
||
// Options is an implementation detail | ||
type Options struct { | ||
// ProgressStreams allows specifying one or more io.Writers to redirect incremental refresh stdout | ||
ProgressStreams []io.Writer | ||
// ErrorProgressStreams allows specifying one or more io.Writers to redirect incremental refresh stderr | ||
ErrorProgressStreams []io.Writer | ||
// EventStreams allows specifying one or more channels to receive the Pulumi event stream | ||
EventStreams []chan<- events.EngineEvent | ||
} | ||
|
||
type optionFunc func(*Options) | ||
|
||
// ApplyOption is an implementation detail | ||
func (o optionFunc) ApplyOption(opts *Options) { | ||
o(opts) | ||
} |
Oops, something went wrong.