Documentation ¶
Overview ¶
Package statefile deals with the file format used to serialize states for persistent storage and then deserialize them into memory again later.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNoState = errors.New("no state")
ErrNoState is returned by ReadState when the state file is empty.
Functions ¶
Types ¶
type File ¶
type File struct { // TerraformVersion is the version of Terraform that wrote this state file. TerraformVersion *version.Version // Serial is incremented on any operation that modifies // the State file. It is used to detect potentially conflicting // updates. Serial uint64 // Lineage is set when a new, blank state file is created and then // never updated. This allows us to determine whether the serials // of two states can be meaningfully compared. // Apart from the guarantee that collisions between two lineages // are very unlikely, this value is opaque and external callers // should only compare lineage strings byte-for-byte for equality. Lineage string // State is the actual state represented by this file. State *states.State }
File is the in-memory representation of a state file. It includes the state itself along with various metadata used to track changing state files for the same configuration over time.
func Read ¶
Read reads a state from the given reader.
Legacy state format versions 1 through 3 are supported, but the result will contain object attributes in the deprecated "flatmap" format and so must be upgraded by the caller before use.
If the state file is empty, the special error value ErrNoState is returned. Otherwise, the returned error might be a wrapper around tfdiags.Diagnostics potentially describing multiple errors.