From e30f40873da014d1d0f72bdda214f8d95fbd1aeb Mon Sep 17 00:00:00 2001 From: Jacob Kozol Date: Tue, 28 Jan 2020 14:48:58 +0100 Subject: [PATCH] store: add image size to compose When a use defines the image size for a compose this size is stored in the compose struct so that the virtual image size can be returned by the api instead of the file size of the image. --- internal/store/store.go | 2 ++ internal/weldr/api.go | 4 ++-- internal/weldr/compose.go | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/store/store.go b/internal/store/store.go index 296ca41ac..b36721de9 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -59,6 +59,7 @@ type Compose struct { JobStarted time.Time `json:"job_started"` JobFinished time.Time `json:"job_finished"` Image *Image `json:"image"` + Size uint64 `json:"size"` } // A Job contains the information about a compose a worker needs to process it. @@ -495,6 +496,7 @@ func (s *Store) PushCompose(composeID uuid.UUID, bp *blueprint.Blueprint, checks OutputType: composeType, Targets: targets, JobCreated: time.Now(), + Size: size, } return nil }) diff --git a/internal/weldr/api.go b/internal/weldr/api.go index 259008c58..09967ba31 100644 --- a/internal/weldr/api.go +++ b/internal/weldr/api.go @@ -1481,7 +1481,7 @@ func (api *API) composeInfoHandler(writer http.ResponseWriter, request *http.Req Deps Dependencies `json:"deps"` // empty for now ComposeType string `json:"compose_type"` QueueStatus string `json:"queue_status"` - ImageSize int64 `json:"image_size"` + ImageSize uint64 `json:"image_size"` Uploads []UploadResponse `json:"uploads,omitempty"` } @@ -1493,7 +1493,7 @@ func (api *API) composeInfoHandler(writer http.ResponseWriter, request *http.Req reply.ComposeType = compose.OutputType reply.QueueStatus = compose.QueueStatus if compose.Image != nil { - reply.ImageSize = compose.Image.Size + reply.ImageSize = compose.Size } if isRequestVersionAtLeast(params, 1) { diff --git a/internal/weldr/compose.go b/internal/weldr/compose.go index 705188f34..a4355bab3 100644 --- a/internal/weldr/compose.go +++ b/internal/weldr/compose.go @@ -12,7 +12,7 @@ type ComposeEntry struct { Blueprint string `json:"blueprint"` Version string `json:"version"` ComposeType string `json:"compose_type"` - ImageSize int64 `json:"image_size"` + ImageSize uint64 `json:"image_size"` QueueStatus string `json:"queue_status"` JobCreated float64 `json:"job_created"` JobStarted float64 `json:"job_started,omitempty"` @@ -43,7 +43,7 @@ func composeToComposeEntry(id uuid.UUID, compose store.Compose, includeUploads b case "FINISHED": if compose.Image != nil { - composeEntry.ImageSize = compose.Image.Size + composeEntry.ImageSize = compose.Size } else { log.Printf("finished compose with id %s has nil image\n", id.String()) composeEntry.ImageSize = 0