From 7fbe8453efe32d2b2c0bf95c39b511394cfc13f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Budai?= Date: Thu, 28 Nov 2019 08:28:19 +0100 Subject: [PATCH] api: support wildcard /compose/status --- internal/weldr/api.go | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/internal/weldr/api.go b/internal/weldr/api.go index 1a9b84865..81894d62b 100644 --- a/internal/weldr/api.go +++ b/internal/weldr/api.go @@ -1228,6 +1228,7 @@ func (api *API) composeQueueHandler(writer http.ResponseWriter, request *http.Re } func (api *API) composeStatusHandler(writer http.ResponseWriter, request *http.Request, params httprouter.Params) { + // TODO: lorax has some params: /api/v0/compose/status/[?blueprint=&status=&type=] if !verifyRequestVersion(writer, params, 0) { // TODO: version 1 API return } @@ -1236,19 +1237,25 @@ func (api *API) composeStatusHandler(writer http.ResponseWriter, request *http.R UUIDs []*store.ComposeEntry `json:"uuids"` } - uuidStrings := strings.Split(params.ByName("uuids"), ",") - uuids := make([]uuid.UUID, len(uuidStrings)) - for _, uuidString := range uuidStrings { - id, err := uuid.Parse(uuidString) - if err != nil { - errors := responseError{ - ID: "UnknownUUID", - Msg: fmt.Sprintf("%s is not a valid build uuid", uuidString), + uuidsParam := params.ByName("uuids") + + var uuids []uuid.UUID + + if uuidsParam != "*" { + uuidStrings := strings.Split(uuidsParam, ",") + uuids = make([]uuid.UUID, len(uuidStrings)) + for _, uuidString := range uuidStrings { + id, err := uuid.Parse(uuidString) + if err != nil { + errors := responseError{ + ID: "UnknownUUID", + Msg: fmt.Sprintf("%s is not a valid build uuid", uuidString), + } + statusResponseError(writer, http.StatusBadRequest, errors) + return } - statusResponseError(writer, http.StatusBadRequest, errors) - return + uuids = append(uuids, id) } - uuids = append(uuids, id) } reply.UUIDs = api.store.ListQueue(uuids)