Просмотр исходного кода

* API: Send all tags on History API call

Guillaume J. Charmes 12 лет назад
Родитель
Сommit
808faa6371
4 измененных файлов с 12 добавлено и 11 удалено
  1. 2 2
      api_params.go
  2. 4 1
      commands.go
  3. 1 1
      docs/sources/api/docker_remote_api_v1.2.rst
  4. 5 7
      server.go

+ 2 - 2
api_params.go

@@ -1,8 +1,8 @@
 package docker
 
 type APIHistory struct {
-	ID        string `json:"Id"`
-	Tag       string `json:",omitempty"`
+	ID        string   `json:"Id"`
+	Tags      []string `json:",omitempty"`
 	Created   int64
 	CreatedBy string `json:",omitempty"`
 }

+ 4 - 1
commands.go

@@ -627,7 +627,10 @@ func (cli *DockerCli) CmdHistory(args ...string) error {
 	fmt.Fprintln(w, "ID\tCREATED\tCREATED BY")
 
 	for _, out := range outs {
-		fmt.Fprintf(w, "%s (%s)\t%s ago\t%s\n", out.ID, out.Tag, utils.HumanDuration(time.Now().Sub(time.Unix(out.Created, 0))), out.CreatedBy)
+		if out.Tags != nil {
+			out.ID = out.Tags[0]
+		}
+		fmt.Fprintf(w, "%s \t%s ago\t%s\n", out.ID, utils.HumanDuration(time.Now().Sub(time.Unix(out.Created, 0))), out.CreatedBy)
 	}
 	w.Flush()
 	return nil

+ 1 - 1
docs/sources/api/docker_remote_api_v1.2.rst

@@ -691,7 +691,7 @@ Get the history of an image
 	   [
 		{
 			"Id":"b750fe79269d",
-			"Tag":"base:latest",
+			"Tag":["base:latest"],
 			"Created":1364102658,
 			"CreatedBy":"/bin/bash"
 		},

+ 5 - 7
server.go

@@ -218,16 +218,14 @@ func (srv *Server) ImageHistory(name string) ([]APIHistory, error) {
 		return nil, err
 	}
 
-	lookupMap := make(map[string]string)
+	lookupMap := make(map[string][]string)
 	for name, repository := range srv.runtime.repositories.Repositories {
 		for tag, id := range repository {
 			// If the ID already has a reverse lookup, do not update it unless for "latest"
-			if _, exists := lookupMap[id]; exists {
-				if tag != "latest" {
-					continue
-				}
+			if _, exists := lookupMap[id]; !exists {
+				lookupMap[id] = []string{}
 			}
-			lookupMap[id] = name + ":" + tag
+			lookupMap[id] = append(lookupMap[id], name+":"+tag)
 		}
 	}
 
@@ -237,7 +235,7 @@ func (srv *Server) ImageHistory(name string) ([]APIHistory, error) {
 		out.ID = srv.runtime.repositories.ImageName(img.ShortID())
 		out.Created = img.Created.Unix()
 		out.CreatedBy = strings.Join(img.ContainerConfig.Cmd, " ")
-		out.Tag = lookupMap[img.ID]
+		out.Tags = lookupMap[img.ID]
 		outs = append(outs, out)
 		return nil
 	})