Signed-off-by: Ahmet Alp Balkan <ahmetalpbalkan@gmail.com>
| ... | ... |
@@ -35,6 +35,7 @@ import ( |
| 35 | 35 |
"github.com/docker/docker/pkg/streamformatter" |
| 36 | 36 |
"github.com/docker/docker/pkg/version" |
| 37 | 37 |
"github.com/docker/docker/runconfig" |
| 38 |
+ "github.com/docker/docker/utils" |
|
| 38 | 39 |
) |
| 39 | 40 |
|
| 40 | 41 |
type ServerConfig struct {
|
| ... | ... |
@@ -701,9 +702,11 @@ func (s *Server) postImagesTag(version version.Version, w http.ResponseWriter, r |
| 701 | 701 |
repo := r.Form.Get("repo")
|
| 702 | 702 |
tag := r.Form.Get("tag")
|
| 703 | 703 |
force := boolValue(r, "force") |
| 704 |
- if err := s.daemon.Repositories().Tag(repo, tag, vars["name"], force); err != nil {
|
|
| 704 |
+ name := vars["name"] |
|
| 705 |
+ if err := s.daemon.Repositories().Tag(repo, tag, name, force); err != nil {
|
|
| 705 | 706 |
return err |
| 706 | 707 |
} |
| 708 |
+ s.daemon.EventsService.Log("tag", utils.ImageReference(repo, tag), "")
|
|
| 707 | 709 |
w.WriteHeader(http.StatusCreated) |
| 708 | 710 |
return nil |
| 709 | 711 |
} |
| ... | ... |
@@ -38,8 +38,8 @@ func (s *DockerSuite) TestEventsTimestampFormats(c *check.C) {
|
| 38 | 38 |
c.Fatalf("docker events cmd failed: %v\nout=%s", err, out)
|
| 39 | 39 |
} |
| 40 | 40 |
events := strings.Split(strings.TrimSpace(out), "\n") |
| 41 |
- if len(events) != 1 {
|
|
| 42 |
- c.Fatalf("unexpected events, was expecting only 1 (since=%s, until=%s) out=%s", since, until, out)
|
|
| 41 |
+ if len(events) != 2 {
|
|
| 42 |
+ c.Fatalf("unexpected events, was expecting only 2 events tag/untag (since=%s, until=%s) out=%s", since, until, out)
|
|
| 43 | 43 |
} |
| 44 | 44 |
if !strings.Contains(out, "untag") {
|
| 45 | 45 |
c.Fatalf("expected 'untag' event not found (since=%s, until=%s) out=%s", since, until, out)
|
| ... | ... |
@@ -230,6 +230,31 @@ func (s *DockerSuite) TestEventsImageUntagDelete(c *check.C) {
|
| 230 | 230 |
} |
| 231 | 231 |
} |
| 232 | 232 |
|
| 233 |
+func (s *DockerSuite) TestEventsImageTag(c *check.C) {
|
|
| 234 |
+ time.Sleep(time.Second * 2) // because API has seconds granularity |
|
| 235 |
+ since := daemonTime(c).Unix() |
|
| 236 |
+ image := "testimageevents:tag" |
|
| 237 |
+ dockerCmd(c, "tag", "busybox", image) |
|
| 238 |
+ |
|
| 239 |
+ eventsCmd := exec.Command(dockerBinary, "events", |
|
| 240 |
+ fmt.Sprintf("--since=%d", since),
|
|
| 241 |
+ fmt.Sprintf("--until=%d", daemonTime(c).Unix()))
|
|
| 242 |
+ out, _, err := runCommandWithOutput(eventsCmd) |
|
| 243 |
+ c.Assert(err, check.IsNil) |
|
| 244 |
+ |
|
| 245 |
+ events := strings.Split(strings.TrimSpace(out), "\n") |
|
| 246 |
+ if len(events) != 1 {
|
|
| 247 |
+ c.Fatalf("was expecting 1 event. out=%s", out)
|
|
| 248 |
+ } |
|
| 249 |
+ event := strings.TrimSpace(events[0]) |
|
| 250 |
+ expectedStr := image + ": tag" |
|
| 251 |
+ |
|
| 252 |
+ if !strings.HasSuffix(event, expectedStr) {
|
|
| 253 |
+ c.Fatalf("wrong event format. expected='%s' got=%s", expectedStr, event)
|
|
| 254 |
+ } |
|
| 255 |
+ |
|
| 256 |
+} |
|
| 257 |
+ |
|
| 233 | 258 |
func (s *DockerSuite) TestEventsImagePull(c *check.C) {
|
| 234 | 259 |
since := daemonTime(c).Unix() |
| 235 | 260 |
testRequires(c, Network) |