Browse code

Move "copy" to daemon/copy.go

This is part of an effort to break apart the deprecated server/ package

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)

Solomon Hykes authored on 2014/08/01 06:15:28
Showing 4 changed files
1 1
new file mode 100644
... ...
@@ -0,0 +1,33 @@
0
+package daemon
1
+
2
+import (
3
+	"io"
4
+
5
+	"github.com/docker/docker/engine"
6
+)
7
+
8
+func (daemon *Daemon) ContainerCopy(job *engine.Job) engine.Status {
9
+	if len(job.Args) != 2 {
10
+		return job.Errorf("Usage: %s CONTAINER RESOURCE\n", job.Name)
11
+	}
12
+
13
+	var (
14
+		name     = job.Args[0]
15
+		resource = job.Args[1]
16
+	)
17
+
18
+	if container := daemon.Get(name); container != nil {
19
+
20
+		data, err := container.Copy(resource)
21
+		if err != nil {
22
+			return job.Error(err)
23
+		}
24
+		defer data.Close()
25
+
26
+		if _, err := io.Copy(job.Stdout, data); err != nil {
27
+			return job.Error(err)
28
+		}
29
+		return engine.StatusOK
30
+	}
31
+	return job.Errorf("No such container: %s", name)
32
+}
... ...
@@ -152,6 +152,9 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
152 152
 	if err := eng.Register("delete", daemon.ContainerDestroy); err != nil {
153 153
 		return err
154 154
 	}
155
+	if err := eng.Register("container_copy", daemon.ContainerCopy); err != nil {
156
+		return err
157
+	}
155 158
 	return nil
156 159
 }
157 160
 
... ...
@@ -7,7 +7,6 @@ package server
7 7
 import (
8 8
 	"errors"
9 9
 	"fmt"
10
-	"io"
11 10
 	"os/exec"
12 11
 	"strconv"
13 12
 	"strings"
... ...
@@ -218,29 +217,3 @@ func (srv *Server) Containers(job *engine.Job) engine.Status {
218 218
 	}
219 219
 	return engine.StatusOK
220 220
 }
221
-
222
-func (srv *Server) ContainerCopy(job *engine.Job) engine.Status {
223
-	if len(job.Args) != 2 {
224
-		return job.Errorf("Usage: %s CONTAINER RESOURCE\n", job.Name)
225
-	}
226
-
227
-	var (
228
-		name     = job.Args[0]
229
-		resource = job.Args[1]
230
-	)
231
-
232
-	if container := srv.daemon.Get(name); container != nil {
233
-
234
-		data, err := container.Copy(resource)
235
-		if err != nil {
236
-			return job.Error(err)
237
-		}
238
-		defer data.Close()
239
-
240
-		if _, err := io.Copy(job.Stdout, data); err != nil {
241
-			return job.Error(err)
242
-		}
243
-		return engine.StatusOK
244
-	}
245
-	return job.Errorf("No such container: %s", name)
246
-}
... ...
@@ -86,24 +86,23 @@ func InitServer(job *engine.Job) engine.Status {
86 86
 	job.Eng.Hack_SetGlobalVar("httpapi.daemon", srv.daemon)
87 87
 
88 88
 	for name, handler := range map[string]engine.Handler{
89
-		"tag":            srv.ImageTag, // FIXME merge with "image_tag"
90
-		"info":           srv.DockerInfo,
91
-		"image_export":   srv.ImageExport,
92
-		"images":         srv.Images,
93
-		"history":        srv.ImageHistory,
94
-		"viz":            srv.ImagesViz,
95
-		"container_copy": srv.ContainerCopy,
96
-		"log":            srv.Log,
97
-		"changes":        srv.ContainerChanges,
98
-		"top":            srv.ContainerTop,
99
-		"load":           srv.ImageLoad,
100
-		"build":          srv.Build,
101
-		"pull":           srv.ImagePull,
102
-		"import":         srv.ImageImport,
103
-		"image_delete":   srv.ImageDelete,
104
-		"events":         srv.Events,
105
-		"push":           srv.ImagePush,
106
-		"containers":     srv.Containers,
89
+		"tag":          srv.ImageTag, // FIXME merge with "image_tag"
90
+		"info":         srv.DockerInfo,
91
+		"image_export": srv.ImageExport,
92
+		"images":       srv.Images,
93
+		"history":      srv.ImageHistory,
94
+		"viz":          srv.ImagesViz,
95
+		"log":          srv.Log,
96
+		"changes":      srv.ContainerChanges,
97
+		"top":          srv.ContainerTop,
98
+		"load":         srv.ImageLoad,
99
+		"build":        srv.Build,
100
+		"pull":         srv.ImagePull,
101
+		"import":       srv.ImageImport,
102
+		"image_delete": srv.ImageDelete,
103
+		"events":       srv.Events,
104
+		"push":         srv.ImagePush,
105
+		"containers":   srv.Containers,
107 106
 	} {
108 107
 		if err := job.Eng.Register(name, srv.handlerWrap(handler)); err != nil {
109 108
 			return job.Error(err)