90a57c411f
In order that something consuming an artifact can have access to extra builder specific data add the State method which allows the caller to ask for arbitary values by name.
37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
package packer
|
|
|
|
// An Artifact is the result of a build, and is the metadata that documents
|
|
// what a builder actually created. The exact meaning of the contents is
|
|
// specific to each builder, but this interface is used to communicate back
|
|
// to the user the result of a build.
|
|
type Artifact interface {
|
|
// Returns the ID of the builder that was used to create this artifact.
|
|
// This is the internal ID of the builder and should be unique to every
|
|
// builder. This can be used to identify what the contents of the
|
|
// artifact actually are.
|
|
BuilderId() string
|
|
|
|
// Returns the set of files that comprise this artifact. If an
|
|
// artifact is not made up of files, then this will be empty.
|
|
Files() []string
|
|
|
|
// The ID for the artifact, if it has one. This is not guaranteed to
|
|
// be unique every run (like a GUID), but simply provide an identifier
|
|
// for the artifact that may be meaningful in some way. For example,
|
|
// for Amazon EC2, this value might be the AMI ID.
|
|
Id() string
|
|
|
|
// Returns human-readable output that describes the artifact created.
|
|
// This is used for UI output. It can be multiple lines.
|
|
String() string
|
|
|
|
// State allows the caller to ask for builder specific state information
|
|
// relating to the artifact instance.
|
|
State(name string) interface{}
|
|
|
|
// Destroy deletes the artifact. Packer calls this for various reasons,
|
|
// such as if a post-processor has processed this artifact and it is
|
|
// no longer needed.
|
|
Destroy() error
|
|
}
|