package openstack import ( "fmt" "log" "github.com/gophercloud/gophercloud" "github.com/gophercloud/gophercloud/openstack/imageservice/v2/images" ) // Artifact is an artifact implementation that contains built images. type Artifact struct { // ImageId of built image ImageId string // BuilderId is the unique ID for the builder that created this image BuilderIdValue string // OpenStack connection for performing API stuff. Client *gophercloud.ServiceClient // StateData should store data such as GeneratedData // to be shared with post-processors StateData map[string]interface{} } func (a *Artifact) BuilderId() string { return a.BuilderIdValue } func (*Artifact) Files() []string { // We have no files return nil } func (a *Artifact) Id() string { return a.ImageId } func (a *Artifact) String() string { return fmt.Sprintf("An image was created: %v", a.ImageId) } func (a *Artifact) State(name string) interface{} { return a.StateData[name] } func (a *Artifact) Destroy() error { log.Printf("Destroying image: %s", a.ImageId) return images.Delete(a.Client, a.ImageId).ExtractErr() }