Browse code

Totally remove insert feature Docker-DCO-1.1-Signed-off-by: Michael Crosby <michael@crosbymichael.com> (github: crosbymichael)

Michael Crosby authored on 2014/05/06 07:44:16
Showing 6 changed files
... ...
@@ -534,32 +534,6 @@ func getImagesSearch(eng *engine.Engine, version version.Version, w http.Respons
534 534
 	return job.Run()
535 535
 }
536 536
 
537
-// FIXME: 'insert' is deprecated as of 0.10, and should be removed in a future version.
538
-func postImagesInsert(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
539
-	if err := parseForm(r); err != nil {
540
-		return err
541
-	}
542
-	if vars == nil {
543
-		return fmt.Errorf("Missing parameter")
544
-	}
545
-	job := eng.Job("insert", vars["name"], r.Form.Get("url"), r.Form.Get("path"))
546
-	if version.GreaterThan("1.0") {
547
-		job.SetenvBool("json", true)
548
-		streamJSON(job, w, false)
549
-	} else {
550
-		job.Stdout.Add(w)
551
-	}
552
-	if err := job.Run(); err != nil {
553
-		if !job.Stdout.Used() {
554
-			return err
555
-		}
556
-		sf := utils.NewStreamFormatter(version.GreaterThan("1.0"))
557
-		w.Write(sf.FormatError(err))
558
-	}
559
-
560
-	return nil
561
-}
562
-
563 537
 func postImagesPush(eng *engine.Engine, version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
564 538
 	if vars == nil {
565 539
 		return fmt.Errorf("Missing parameter")
... ...
@@ -1111,7 +1085,6 @@ func createRouter(eng *engine.Engine, logging, enableCors bool, dockerVersion st
1111 1111
 			"/commit":                       postCommit,
1112 1112
 			"/build":                        postBuild,
1113 1113
 			"/images/create":                postImagesCreate,
1114
-			"/images/{name:.*}/insert":      postImagesInsert,
1115 1114
 			"/images/load":                  postImagesLoad,
1116 1115
 			"/images/{name:.*}/push":        postImagesPush,
1117 1116
 			"/images/{name:.*}/tag":         postImagesTag,
... ...
@@ -84,42 +84,6 @@ type Container struct {
84 84
 	activeLinks map[string]*links.Link
85 85
 }
86 86
 
87
-// Inject the io.Reader at the given path. Note: do not close the reader
88
-func (container *Container) Inject(file io.Reader, pth string) error {
89
-	if err := container.Mount(); err != nil {
90
-		return fmt.Errorf("inject: error mounting container %s: %s", container.ID, err)
91
-	}
92
-	defer container.Unmount()
93
-
94
-	// Return error if path exists
95
-	destPath := container.getResourcePath(pth)
96
-	if _, err := os.Stat(destPath); err == nil {
97
-		// Since err is nil, the path could be stat'd and it exists
98
-		return fmt.Errorf("%s exists", pth)
99
-	} else if !os.IsNotExist(err) {
100
-		// Expect err might be that the file doesn't exist, so
101
-		// if it's some other error, return that.
102
-
103
-		return err
104
-	}
105
-
106
-	// Make sure the directory exists
107
-	if err := os.MkdirAll(container.getResourcePath(path.Dir(pth)), 0755); err != nil {
108
-		return err
109
-	}
110
-
111
-	dest, err := os.Create(destPath)
112
-	if err != nil {
113
-		return err
114
-	}
115
-	defer dest.Close()
116
-
117
-	if _, err := io.Copy(dest, file); err != nil {
118
-		return err
119
-	}
120
-	return nil
121
-}
122
-
123 87
 func (container *Container) FromDisk() error {
124 88
 	data, err := ioutil.ReadFile(container.jsonPath())
125 89
 	if err != nil {
... ...
@@ -63,6 +63,9 @@ Trusted builds are now Automated Builds - `is_trusted` is now `is_automated`.
63 63
 **New!**
64 64
 You can now ping the server via the `_ping` endpoint.
65 65
 
66
+**Removed Insert Endpoint**
67
+The insert endpoint has been removed.
68
+
66 69
 `GET /events`
67 70
 
68 71
 **New!**
... ...
@@ -756,31 +756,6 @@ Create an image, either by pull it from the registry or by importing it
756 756
     -   **200** – no error
757 757
     -   **500** – server error
758 758
 
759
-### Insert a file in an image
760
-
761
-`POST /images/(name)/insert`
762
-
763
-Insert a file from `url` in the image `name` at `path`
764
-
765
-    **Example request**:
766
-
767
-        POST /images/test/insert?path=/usr&url=myurl HTTP/1.1
768
-
769
-    **Example response**:
770
-
771
-        HTTP/1.1 200 OK
772
-        Content-Type: application/json
773
-
774
-        {"status":"Inserting..."}
775
-        {"status":"Inserting", "progress":"1/? (n/a)", "progressDetail":{"current":1}}
776
-        {"error":"Invalid..."}
777
-        ...
778
-
779
-    Status Codes:
780
-
781
-    -   **200** – no error
782
-    -   **500** – server error
783
-
784 759
 ### Inspect an image
785 760
 
786 761
 `GET /images/(name)/json`
... ...
@@ -398,28 +398,6 @@ func TestImagesFilter(t *testing.T) {
398 398
 	}
399 399
 }
400 400
 
401
-// FIXE: 'insert' is deprecated and should be removed in a future version.
402
-func TestImageInsert(t *testing.T) {
403
-	eng := NewTestEngine(t)
404
-	defer mkDaemonFromEngine(eng, t).Nuke()
405
-	srv := mkServerFromEngine(eng, t)
406
-
407
-	// bad image name fails
408
-	if err := srv.Eng.Job("insert", "foo", "https://www.docker.io/static/img/docker-top-logo.png", "/foo").Run(); err == nil {
409
-		t.Fatal("expected an error and got none")
410
-	}
411
-
412
-	// bad url fails
413
-	if err := srv.Eng.Job("insert", unitTestImageID, "http://bad_host_name_that_will_totally_fail.com/", "/foo").Run(); err == nil {
414
-		t.Fatal("expected an error and got none")
415
-	}
416
-
417
-	// success returns nil
418
-	if err := srv.Eng.Job("insert", unitTestImageID, "https://www.docker.io/static/img/docker-top-logo.png", "/foo").Run(); err != nil {
419
-		t.Fatalf("expected no error, but got %v", err)
420
-	}
421
-}
422
-
423 401
 func TestListContainers(t *testing.T) {
424 402
 	eng := NewTestEngine(t)
425 403
 	srv := mkServerFromEngine(eng, t)
... ...
@@ -138,7 +138,6 @@ func InitServer(job *engine.Job) engine.Status {
138 138
 		"history":          srv.ImageHistory,
139 139
 		"viz":              srv.ImagesViz,
140 140
 		"container_copy":   srv.ContainerCopy,
141
-		"insert":           srv.ImageInsert,
142 141
 		"attach":           srv.ContainerAttach,
143 142
 		"logs":             srv.ContainerLogs,
144 143
 		"changes":          srv.ContainerChanges,
... ...
@@ -645,56 +644,6 @@ func (srv *Server) recursiveLoad(eng *engine.Engine, address, tmpImageDir string
645 645
 	return nil
646 646
 }
647 647
 
648
-// FIXME: 'insert' is deprecated and should be removed in a future version.
649
-func (srv *Server) ImageInsert(job *engine.Job) engine.Status {
650
-	fmt.Fprintf(job.Stderr, "Warning: '%s' is deprecated and will be removed in a future version. Please use 'build' and 'ADD' instead.\n", job.Name)
651
-	if len(job.Args) != 3 {
652
-		return job.Errorf("Usage: %s IMAGE URL PATH\n", job.Name)
653
-	}
654
-
655
-	var (
656
-		name = job.Args[0]
657
-		url  = job.Args[1]
658
-		path = job.Args[2]
659
-	)
660
-
661
-	sf := utils.NewStreamFormatter(job.GetenvBool("json"))
662
-
663
-	out := utils.NewWriteFlusher(job.Stdout)
664
-	img, err := srv.daemon.Repositories().LookupImage(name)
665
-	if err != nil {
666
-		return job.Error(err)
667
-	}
668
-
669
-	file, err := utils.Download(url)
670
-	if err != nil {
671
-		return job.Error(err)
672
-	}
673
-	defer file.Body.Close()
674
-
675
-	config, _, _, err := runconfig.Parse([]string{img.ID, "echo", "insert", url, path}, srv.daemon.SystemConfig())
676
-	if err != nil {
677
-		return job.Error(err)
678
-	}
679
-
680
-	c, _, err := srv.daemon.Create(config, "")
681
-	if err != nil {
682
-		return job.Error(err)
683
-	}
684
-
685
-	if err := c.Inject(utils.ProgressReader(file.Body, int(file.ContentLength), out, sf, false, utils.TruncateID(img.ID), "Downloading"), path); err != nil {
686
-		return job.Error(err)
687
-	}
688
-	// FIXME: Handle custom repo, tag comment, author
689
-	img, err = srv.daemon.Commit(c, "", "", img.Comment, img.Author, nil)
690
-	if err != nil {
691
-		out.Write(sf.FormatError(err))
692
-		return engine.StatusErr
693
-	}
694
-	out.Write(sf.FormatStatus("", img.ID))
695
-	return engine.StatusOK
696
-}
697
-
698 648
 func (srv *Server) ImagesViz(job *engine.Job) engine.Status {
699 649
 	images, _ := srv.daemon.Graph().Map()
700 650
 	if images == nil {