post-processor/manifest: add artifact file size to manifest

Signed-off-by: Vasiliy Tolstov <v.tolstov@selfip.ru>
This commit is contained in:
Vasiliy Tolstov 2016-08-09 16:46:15 +03:00
parent 50330b8e69
commit 4868f5872e
2 changed files with 24 additions and 8 deletions

View File

@ -4,13 +4,18 @@ import "fmt"
const BuilderId = "packer.post-processor.manifest"
type ArtifactFile struct {
Name string `json:"name"`
Size int64 `json:"size"`
}
type Artifact struct {
BuildName string `json:"name"`
BuilderType string `json:"builder_type"`
BuildTime int64 `json:"build_time"`
ArtifactFiles []string `json:"files"`
ArtifactId string `json:"artifact_id"`
PackerRunUUID string `json:"packer_run_uuid"`
BuildName string `json:"name"`
BuilderType string `json:"builder_type"`
BuildTime int64 `json:"build_time"`
ArtifactFiles []ArtifactFile `json:"files"`
ArtifactId string `json:"artifact_id"`
PackerRunUUID string `json:"packer_run_uuid"`
}
func (a *Artifact) BuilderId() string {
@ -18,7 +23,11 @@ func (a *Artifact) BuilderId() string {
}
func (a *Artifact) Files() []string {
return a.ArtifactFiles
var files []string
for _, af := range a.ArtifactFiles {
files = append(files, af.Name)
}
return files
}
func (a *Artifact) Id() string {

View File

@ -54,9 +54,16 @@ func (p *PostProcessor) PostProcess(ui packer.Ui, source packer.Artifact) (packe
artifact := &Artifact{}
var err error
var fi os.FileInfo
// Create the current artifact.
artifact.ArtifactFiles = source.Files()
for _, name := range source.Files() {
if fi, err = os.Stat(name); err == nil {
artifact.ArtifactFiles = append(artifact.ArtifactFiles, ArtifactFile{Name: name, Size: fi.Size()})
} else {
artifact.ArtifactFiles = append(artifact.ArtifactFiles, ArtifactFile{Name: name})
}
}
artifact.ArtifactId = source.Id()
artifact.BuilderType = p.config.PackerBuilderType
artifact.BuildName = p.config.PackerBuildName