From 574263662b9b8659a78cb9a9d6991007ad0e206b Mon Sep 17 00:00:00 2001 From: Fabio Falci Date: Thu, 3 Jul 2014 10:58:13 +0100 Subject: [PATCH 1/2] Fix getImagesJSON output for api less than 1.7 Tag can be a number, like centos:6.4, and so must be handled like a string otherwise will lose quotation marks when converting to json and the client (API < 1.7) will try to convert to int, failing because the type is string. Additionally using ParseRepositoryTag to parse repository names to split the tag because an URL can have : and so more than one occurrence of : can be found on repository names. Docker-DCO-1.1-Signed-off-by: Fabio Falci (github: fabiofalci) Upstream-commit: 103ae23504b9fdc52e4f7d4a50798553af09bfe5 Component: engine --- components/engine/api/server/server.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/engine/api/server/server.go b/components/engine/api/server/server.go index 9f88d1ad79..9e1d9f5842 100644 --- a/components/engine/api/server/server.go +++ b/components/engine/api/server/server.go @@ -238,10 +238,10 @@ func getImagesJSON(eng *engine.Engine, version version.Version, w http.ResponseW outsLegacy := engine.NewTable("Created", 0) for _, out := range outs.Data { for _, repoTag := range out.GetList("RepoTags") { - parts := strings.Split(repoTag, ":") + repo, tag := utils.ParseRepositoryTag(repoTag) outLegacy := &engine.Env{} - outLegacy.Set("Repository", parts[0]) - outLegacy.Set("Tag", parts[1]) + outLegacy.Set("Repository", repo) + outLegacy.SetJson("Tag", tag) outLegacy.Set("Id", out.Get("Id")) outLegacy.SetInt64("Created", out.GetInt64("Created")) outLegacy.SetInt64("Size", out.GetInt64("Size")) From 76040cafd810e93caf72a5b526265636cb10f6ee Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Thu, 31 Jul 2014 18:19:30 -0700 Subject: [PATCH 2/2] Update package for repo and tag parser Docker-DCO-1.1-Signed-off-by: Michael Crosby (github: crosbymichael) Upstream-commit: 63a4ba229cd3da6ce7bc52e6b9f78d9cd631398d Component: engine --- components/engine/api/server/server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/engine/api/server/server.go b/components/engine/api/server/server.go index 9e1d9f5842..d2fd9a77ed 100644 --- a/components/engine/api/server/server.go +++ b/components/engine/api/server/server.go @@ -238,7 +238,7 @@ func getImagesJSON(eng *engine.Engine, version version.Version, w http.ResponseW outsLegacy := engine.NewTable("Created", 0) for _, out := range outs.Data { for _, repoTag := range out.GetList("RepoTags") { - repo, tag := utils.ParseRepositoryTag(repoTag) + repo, tag := parsers.ParseRepositoryTag(repoTag) outLegacy := &engine.Env{} outLegacy.Set("Repository", repo) outLegacy.SetJson("Tag", tag)