These changes add the ability to export a stack's latest deployment or import a new deployment to a stack via the Pulumi CLI. These capabilities are exposed by two new verbs under `stack`: - export, which writes the current stack's latest deployment to stdout - import, which reads a new deployment from stdin and applies it to the current stack. In the local case, this simply involves reading/writing the stack's latest checkpoint file. In the cloud case, this involves hitting two new endpoints on the service to perform the export or import.
50 lines
2.5 KiB
Go
50 lines
2.5 KiB
Go
// Copyright 2016-2017, Pulumi Corporation. All rights reserved.
|
|
|
|
// Package backend encapsulates all extensibility points required to fully implement a new cloud provider.
|
|
package backend
|
|
|
|
import (
|
|
"encoding/json"
|
|
|
|
"github.com/pulumi/pulumi/pkg/engine"
|
|
"github.com/pulumi/pulumi/pkg/operations"
|
|
"github.com/pulumi/pulumi/pkg/resource/config"
|
|
"github.com/pulumi/pulumi/pkg/tokens"
|
|
)
|
|
|
|
// Backend is an interface that represents actions the engine will interact with to manage stacks of cloud resources.
|
|
// It can be implemented any number of ways to provide pluggable backend implementations of the Pulumi Cloud.
|
|
type Backend interface {
|
|
// Name returns a friendly name for this backend.
|
|
Name() string
|
|
|
|
// GetStack returns a stack object tied to this backend with the given name, or nil if it cannot be found.
|
|
GetStack(name tokens.QName) (Stack, error)
|
|
// CreateStack creates a new stack with the given name and options that are specific to the backend provider.
|
|
CreateStack(name tokens.QName, opts interface{}) error
|
|
// RemoveStack removes a stack with the given name. If force is true, the stack will be removed even if it
|
|
// still contains resources. Otherwise, if the stack contains resources, a non-nil error is returned, and the
|
|
// first boolean return value will be set to true.
|
|
RemoveStack(name tokens.QName, force bool) (bool, error)
|
|
// ListStacks returns a list of stack summaries for all known stacks in the target backend.
|
|
ListStacks() ([]Stack, error)
|
|
|
|
// GetStackCrypter returns an encrypter/decrypter for the given stack's secret config values.
|
|
GetStackCrypter(stack tokens.QName) (config.Crypter, error)
|
|
|
|
// Preview initiates a preview of the current workspace's contents.
|
|
Preview(stackName tokens.QName, debug bool, opts engine.PreviewOptions) error
|
|
// Update updates the target stack with the current workspace's contents (config and code).
|
|
Update(stackName tokens.QName, debug bool, opts engine.DeployOptions) error
|
|
// Destroy destroys all of this stack's resources.
|
|
Destroy(stackName tokens.QName, debug bool, opts engine.DestroyOptions) error
|
|
|
|
// GetLogs fetches a list of log entries for the given stack, with optional filtering/querying.
|
|
GetLogs(stackName tokens.QName, query operations.LogQuery) ([]operations.LogEntry, error)
|
|
|
|
// ExportDeployment exports the deployment for the given stack as an opaque JSON message.
|
|
ExportDeployment(stackName tokens.QName) (json.RawMessage, error)
|
|
// ImportDeployment imports the given deployment into the indicated stack.
|
|
ImportDeployment(stackName tokens.QName, deployment json.RawMessage) error
|
|
}
|