Browse code

move tag to job

Victor Vieux authored on 2013/12/12 10:52:41
Showing 5 changed files
... ...
@@ -356,18 +356,13 @@ func postImagesTag(srv *Server, version float64, w http.ResponseWriter, r *http.
356 356
 	if err := parseForm(r); err != nil {
357 357
 		return err
358 358
 	}
359
-	repo := r.Form.Get("repo")
360
-	tag := r.Form.Get("tag")
361 359
 	if vars == nil {
362 360
 		return fmt.Errorf("Missing parameter")
363 361
 	}
364
-	name := vars["name"]
365
-	force, err := getBoolParam(r.Form.Get("force"))
366
-	if err != nil {
367
-		return err
368
-	}
369 362
 
370
-	if err := srv.ContainerTag(name, repo, tag, force); err != nil {
363
+	job := srv.Eng.Job("tag", vars["name"], r.Form.Get("repo"), r.Form.Get("tag"))
364
+	job.Setenv("force", r.Form.Get("force"))
365
+	if err := job.Run(); err != nil {
371 366
 		return err
372 367
 	}
373 368
 	w.WriteHeader(http.StatusCreated)
... ...
@@ -1120,7 +1120,7 @@ func TestDeleteImages(t *testing.T) {
1120 1120
 		t.Fatal(err)
1121 1121
 	}
1122 1122
 
1123
-	if err := srv.ContainerTag(unitTestImageName, "test", "test", false); err != nil {
1123
+	if err := eng.Job("tag", unitTestImageName, "test", "test").Run(); err != nil {
1124 1124
 		t.Fatal(err)
1125 1125
 	}
1126 1126
 	images, err := srv.Images(false, "")
... ...
@@ -910,8 +910,7 @@ run    [ "$(ls -d /var/run/sshd)" = "/var/run/sshd" ]
910 910
 		t.Fatal(err)
911 911
 	}
912 912
 
913
-	err = mkServerFromEngine(eng, t).ContainerTag(image.ID, "test", "latest", false)
914
-	if err != nil {
913
+	if err := eng.Job("tag", image.ID, "test").Run(); err != nil {
915 914
 		t.Fatal(err)
916 915
 	}
917 916
 
... ...
@@ -8,7 +8,7 @@ import (
8 8
 	"testing"
9 9
 )
10 10
 
11
-func TestContainerTagImageDelete(t *testing.T) {
11
+func TestImageTagImageDelete(t *testing.T) {
12 12
 	eng := NewTestEngine(t)
13 13
 	defer mkRuntimeFromEngine(eng, t).Nuke()
14 14
 
... ...
@@ -18,14 +18,15 @@ func TestContainerTagImageDelete(t *testing.T) {
18 18
 	if err != nil {
19 19
 		t.Fatal(err)
20 20
 	}
21
-	if err := srv.ContainerTag(unitTestImageName, "utest", "tag1", false); err != nil {
21
+	if err := eng.Job("tag", unitTestImageName, "utest", "tag1").Run(); err != nil {
22 22
 		t.Fatal(err)
23 23
 	}
24 24
 
25
-	if err := srv.ContainerTag(unitTestImageName, "utest/docker", "tag2", false); err != nil {
25
+	if err := eng.Job("tag", unitTestImageName, "utest/docker", "tag2").Run(); err != nil {
26 26
 		t.Fatal(err)
27 27
 	}
28
-	if err := srv.ContainerTag(unitTestImageName, "utest:5000/docker", "tag3", false); err != nil {
28
+
29
+	if err := eng.Job("tag", unitTestImageName, "utest:5000/docker", "tag3").Run(); err != nil {
29 30
 		t.Fatal(err)
30 31
 	}
31 32
 
... ...
@@ -265,8 +266,7 @@ func TestRmi(t *testing.T) {
265 265
 		t.Fatal(err)
266 266
 	}
267 267
 
268
-	err = srv.ContainerTag(imageID, "test", "0.1", false)
269
-	if err != nil {
268
+	if err := eng.Job("tag", imageID, "test", "0.1").Run(); err != nil {
270 269
 		t.Fatal(err)
271 270
 	}
272 271
 
... ...
@@ -329,14 +329,15 @@ func TestImagesFilter(t *testing.T) {
329 329
 
330 330
 	srv := mkServerFromEngine(eng, t)
331 331
 
332
-	if err := srv.ContainerTag(unitTestImageName, "utest", "tag1", false); err != nil {
332
+	if err := eng.Job("tag", unitTestImageName, "utest", "tag1").Run(); err != nil {
333 333
 		t.Fatal(err)
334 334
 	}
335 335
 
336
-	if err := srv.ContainerTag(unitTestImageName, "utest/docker", "tag2", false); err != nil {
336
+	if err := eng.Job("tag", unitTestImageName, "utest/docker", "tag2").Run(); err != nil {
337 337
 		t.Fatal(err)
338 338
 	}
339
-	if err := srv.ContainerTag(unitTestImageName, "utest:5000/docker", "tag3", false); err != nil {
339
+
340
+	if err := eng.Job("tag", unitTestImageName, "utest:5000/docker", "tag3").Run(); err != nil {
340 341
 		t.Fatal(err)
341 342
 	}
342 343
 
... ...
@@ -95,6 +95,10 @@ func jobInitApi(job *engine.Job) engine.Status {
95 95
 		job.Error(err)
96 96
 		return engine.StatusErr
97 97
 	}
98
+	if err := job.Eng.Register("tag", srv.ImageTag); err != nil {
99
+		job.Error(err)
100
+		return engine.StatusErr
101
+	}
98 102
 	return engine.StatusOK
99 103
 }
100 104
 
... ...
@@ -769,12 +773,20 @@ func (srv *Server) ContainerCommit(name, repo, tag, author, comment string, conf
769 769
 	return img.ID, err
770 770
 }
771 771
 
772
-// FIXME: this should be called ImageTag
773
-func (srv *Server) ContainerTag(name, repo, tag string, force bool) error {
774
-	if err := srv.runtime.repositories.Set(repo, tag, name, force); err != nil {
775
-		return err
772
+func (srv *Server) ImageTag(job *engine.Job) engine.Status {
773
+	if len(job.Args) != 2 && len(job.Args) != 3 {
774
+		job.Errorf("Usage: %s IMAGE REPOSITORY [TAG]\n", job.Name)
775
+		return engine.StatusErr
776 776
 	}
777
-	return nil
777
+	var tag string
778
+	if len(job.Args) == 3 {
779
+		tag = job.Args[2]
780
+	}
781
+	if err := srv.runtime.repositories.Set(job.Args[1], tag, job.Args[0], job.GetenvBool("force")); err != nil {
782
+		job.Error(err)
783
+		return engine.StatusErr
784
+	}
785
+	return engine.StatusOK
778 786
 }
779 787
 
780 788
 func (srv *Server) pullImage(r *registry.Registry, out io.Writer, imgID, endpoint string, token []string, sf *utils.StreamFormatter) error {