From 0718766fbcb94c7f96574f3ce799db9f66b122f9 Mon Sep 17 00:00:00 2001 From: Lars Karlitski Date: Sat, 7 Dec 2019 13:20:26 +0100 Subject: [PATCH] weldr: fix reply on compose/info route composer-cli requires `dependencies.packages` to exist. We can still leave it empty for now, because it doesn't look at the contents. --- internal/weldr/api.go | 10 ++++++++-- internal/weldr/api_test.go | 4 ++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/weldr/api.go b/internal/weldr/api.go index 7a63df8de..79d341279 100644 --- a/internal/weldr/api.go +++ b/internal/weldr/api.go @@ -1415,12 +1415,16 @@ func (api *API) composeInfoHandler(writer http.ResponseWriter, request *http.Req return } + type Dependencies struct { + Packages []map[string]interface{} `json:"packages"` + } + var reply struct { ID uuid.UUID `json:"id"` Config string `json:"config"` // anaconda config, let's ignore this field Blueprint *blueprint.Blueprint `json:"blueprint"` // blueprint not frozen! Commit string `json:"commit"` // empty for now - Deps []string `json:"deps"` // empty for now + Deps Dependencies `json:"deps"` // empty for now ComposeType string `json:"compose_type"` QueueStatus string `json:"queue_status"` ImageSize int64 `json:"image_size"` @@ -1429,7 +1433,9 @@ func (api *API) composeInfoHandler(writer http.ResponseWriter, request *http.Req reply.ID = id reply.Blueprint = compose.Blueprint - reply.Deps = []string{} + reply.Deps = Dependencies{ + Packages: make([]map[string]interface{}, 0), + } reply.ComposeType = compose.OutputType reply.QueueStatus = compose.QueueStatus if compose.Image != nil { diff --git a/internal/weldr/api_test.go b/internal/weldr/api_test.go index 2f51e5cce..7ea01aab3 100644 --- a/internal/weldr/api_test.go +++ b/internal/weldr/api_test.go @@ -418,8 +418,8 @@ func TestComposeInfo(t *testing.T) { ExpectedStatus int ExpectedJSON string }{ - {rpmmd_mock.BaseFixture, "GET", "/api/v0/compose/info/30000000-0000-0000-0000-000000000000", ``, http.StatusOK, `{"id":"30000000-0000-0000-0000-000000000000","config":"","blueprint":{"name":"test","description":"","version":"0.0.0","packages":[],"modules":[],"groups":[]},"commit":"","deps":[],"compose_type":"tar","queue_status":"WAITING","image_size":0}`}, - {rpmmd_mock.BaseFixture, "GET", "/api/v1/compose/info/30000000-0000-0000-0000-000000000000", ``, http.StatusOK, `{"id":"30000000-0000-0000-0000-000000000000","config":"","blueprint":{"name":"test","description":"","version":"0.0.0","packages":[],"modules":[],"groups":[]},"commit":"","deps":[],"compose_type":"tar","queue_status":"WAITING","image_size":0,"uploads":[{"uuid":"10000000-0000-0000-0000-000000000000","status":"WAITING","provider_name":"aws","image_name":"awsimage","creation_time":1574857140,"settings":{"region":"frankfurt","accessKeyID":"accesskey","secretAccessKey":"secretkey","bucket":"clay","key":"imagekey"}}]}`}, + {rpmmd_mock.BaseFixture, "GET", "/api/v0/compose/info/30000000-0000-0000-0000-000000000000", ``, http.StatusOK, `{"id":"30000000-0000-0000-0000-000000000000","config":"","blueprint":{"name":"test","description":"","version":"0.0.0","packages":[],"modules":[],"groups":[]},"commit":"","deps":{"packages":[]},"compose_type":"tar","queue_status":"WAITING","image_size":0}`}, + {rpmmd_mock.BaseFixture, "GET", "/api/v1/compose/info/30000000-0000-0000-0000-000000000000", ``, http.StatusOK, `{"id":"30000000-0000-0000-0000-000000000000","config":"","blueprint":{"name":"test","description":"","version":"0.0.0","packages":[],"modules":[],"groups":[]},"commit":"","deps":{"packages":[]},"compose_type":"tar","queue_status":"WAITING","image_size":0,"uploads":[{"uuid":"10000000-0000-0000-0000-000000000000","status":"WAITING","provider_name":"aws","image_name":"awsimage","creation_time":1574857140,"settings":{"region":"frankfurt","accessKeyID":"accesskey","secretAccessKey":"secretkey","bucket":"clay","key":"imagekey"}}]}`}, {rpmmd_mock.BaseFixture, "GET", "/api/v1/compose/info/30000000-0000-0000-0000", ``, http.StatusBadRequest, `{"status":false,"errors":[{"id":"UnknownUUID","msg":"30000000-0000-0000-0000 is not a valid build uuid"}]}`}, {rpmmd_mock.BaseFixture, "GET", "/api/v1/compose/info/42000000-0000-0000-0000-000000000000", ``, http.StatusBadRequest, `{"status":false,"errors":[{"id":"UnknownUUID","msg":"42000000-0000-0000-0000-000000000000 is not a valid build uuid"}]}`}, }