diff --git a/builtins/builtins.go b/builtins/builtins.go index ba3f41b1ca..eb4a0be874 100644 --- a/builtins/builtins.go +++ b/builtins/builtins.go @@ -3,9 +3,9 @@ package builtins import ( "github.com/dotcloud/docker/engine" - "github.com/dotcloud/docker" "github.com/dotcloud/docker/api" "github.com/dotcloud/docker/networkdriver/lxc" + "github.com/dotcloud/docker/server" ) func Register(eng *engine.Engine) { @@ -34,6 +34,6 @@ func remote(eng *engine.Engine) { // These components should be broken off into plugins of their own. // func daemon(eng *engine.Engine) { - eng.Register("initserver", docker.InitServer) + eng.Register("initserver", server.InitServer) eng.Register("init_networkdriver", lxc.InitDriver) } diff --git a/integration/buildfile_test.go b/integration/buildfile_test.go index f4ed61aaff..7f6e69ece3 100644 --- a/integration/buildfile_test.go +++ b/integration/buildfile_test.go @@ -2,11 +2,11 @@ package docker import ( "fmt" - "github.com/dotcloud/docker" "github.com/dotcloud/docker/archive" "github.com/dotcloud/docker/engine" "github.com/dotcloud/docker/image" "github.com/dotcloud/docker/nat" + "github.com/dotcloud/docker/server" "github.com/dotcloud/docker/utils" "io/ioutil" "net" @@ -384,7 +384,7 @@ func buildImage(context testContextTemplate, t *testing.T, eng *engine.Engine, u } dockerfile := constructDockerfile(context.dockerfile, ip, port) - buildfile := docker.NewBuildFile(srv, ioutil.Discard, ioutil.Discard, false, useCache, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) + buildfile := server.NewBuildFile(srv, ioutil.Discard, ioutil.Discard, false, useCache, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) id, err := buildfile.Build(context.Archive(dockerfile, t)) if err != nil { return nil, err @@ -799,7 +799,7 @@ func TestForbiddenContextPath(t *testing.T) { } dockerfile := constructDockerfile(context.dockerfile, ip, port) - buildfile := docker.NewBuildFile(srv, ioutil.Discard, ioutil.Discard, false, true, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) + buildfile := server.NewBuildFile(srv, ioutil.Discard, ioutil.Discard, false, true, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) _, err = buildfile.Build(context.Archive(dockerfile, t)) if err == nil { @@ -845,7 +845,7 @@ func TestBuildADDFileNotFound(t *testing.T) { } dockerfile := constructDockerfile(context.dockerfile, ip, port) - buildfile := docker.NewBuildFile(mkServerFromEngine(eng, t), ioutil.Discard, ioutil.Discard, false, true, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) + buildfile := server.NewBuildFile(mkServerFromEngine(eng, t), ioutil.Discard, ioutil.Discard, false, true, false, ioutil.Discard, utils.NewStreamFormatter(false), nil, nil) _, err = buildfile.Build(context.Archive(dockerfile, t)) if err == nil { @@ -917,8 +917,8 @@ func TestBuildFails(t *testing.T) { func TestBuildFailsDockerfileEmpty(t *testing.T) { _, err := buildImage(testContextTemplate{``, nil, nil}, t, nil, true) - if err != docker.ErrDockerfileEmpty { - t.Fatal("Expected: %v, got: %v", docker.ErrDockerfileEmpty, err) + if err != server.ErrDockerfileEmpty { + t.Fatal("Expected: %v, got: %v", server.ErrDockerfileEmpty, err) } } diff --git a/integration/server_test.go b/integration/server_test.go index 54ee9a77a9..49bd15e36f 100644 --- a/integration/server_test.go +++ b/integration/server_test.go @@ -1,9 +1,9 @@ package docker import ( - "github.com/dotcloud/docker" "github.com/dotcloud/docker/engine" "github.com/dotcloud/docker/runconfig" + "github.com/dotcloud/docker/server" "strings" "testing" "time" @@ -739,7 +739,7 @@ func TestListContainers(t *testing.T) { } } -func assertContainerList(srv *docker.Server, all bool, limit int, since, before string, expected []string) bool { +func assertContainerList(srv *server.Server, all bool, limit int, since, before string, expected []string) bool { job := srv.Eng.Job("containers") job.SetenvBool("all", all) job.SetenvInt("limit", limit) diff --git a/integration/utils_test.go b/integration/utils_test.go index 53b4674df7..8ad6ccb123 100644 --- a/integration/utils_test.go +++ b/integration/utils_test.go @@ -14,11 +14,11 @@ import ( "testing" "time" - "github.com/dotcloud/docker" "github.com/dotcloud/docker/builtins" "github.com/dotcloud/docker/engine" "github.com/dotcloud/docker/runconfig" "github.com/dotcloud/docker/runtime" + "github.com/dotcloud/docker/server" "github.com/dotcloud/docker/utils" ) @@ -149,14 +149,14 @@ func getContainer(eng *engine.Engine, id string, t utils.Fataler) *runtime.Conta return c } -func mkServerFromEngine(eng *engine.Engine, t utils.Fataler) *docker.Server { +func mkServerFromEngine(eng *engine.Engine, t utils.Fataler) *server.Server { iSrv := eng.Hack_GetGlobalVar("httpapi.server") if iSrv == nil { panic("Legacy server field not set in engine") } - srv, ok := iSrv.(*docker.Server) + srv, ok := iSrv.(*server.Server) if !ok { - panic("Legacy server field in engine does not cast to *docker.Server") + panic("Legacy server field in engine does not cast to *server.Server") } return srv } diff --git a/buildfile.go b/server/buildfile.go similarity index 96% rename from buildfile.go rename to server/buildfile.go index da72be60fb..af6702cc1d 100644 --- a/buildfile.go +++ b/server/buildfile.go @@ -1,4 +1,4 @@ -package docker +package server import ( "crypto/sha256" @@ -591,34 +591,6 @@ func (b *buildFile) CmdAdd(args string) error { return nil } -type StdoutFormater struct { - io.Writer - *utils.StreamFormatter -} - -func (sf *StdoutFormater) Write(buf []byte) (int, error) { - formattedBuf := sf.StreamFormatter.FormatStream(string(buf)) - n, err := sf.Writer.Write(formattedBuf) - if n != len(formattedBuf) { - return n, io.ErrShortWrite - } - return len(buf), err -} - -type StderrFormater struct { - io.Writer - *utils.StreamFormatter -} - -func (sf *StderrFormater) Write(buf []byte) (int, error) { - formattedBuf := sf.StreamFormatter.FormatStream("\033[91m" + string(buf) + "\033[0m") - n, err := sf.Writer.Write(formattedBuf) - if n != len(formattedBuf) { - return n, io.ErrShortWrite - } - return len(buf), err -} - func (b *buildFile) create() (*runtime.Container, error) { if b.image == "" { return nil, fmt.Errorf("Please provide a source image with `from` prior to run") diff --git a/server.go b/server/server.go similarity index 99% rename from server.go rename to server/server.go index 75fa633e8f..eb9a3a396b 100644 --- a/server.go +++ b/server/server.go @@ -1,4 +1,4 @@ -package docker +package server import ( "encoding/json" @@ -456,11 +456,11 @@ func (srv *Server) Build(job *engine.Job) engine.Status { sf := utils.NewStreamFormatter(job.GetenvBool("json")) b := NewBuildFile(srv, - &StdoutFormater{ + &utils.StdoutFormater{ Writer: job.Stdout, StreamFormatter: sf, }, - &StderrFormater{ + &utils.StderrFormater{ Writer: job.Stdout, StreamFormatter: sf, }, diff --git a/server_unit_test.go b/server/server_unit_test.go similarity index 99% rename from server_unit_test.go rename to server/server_unit_test.go index 6a90ca5892..b471c5c581 100644 --- a/server_unit_test.go +++ b/server/server_unit_test.go @@ -1,4 +1,4 @@ -package docker +package server import ( "github.com/dotcloud/docker/utils" diff --git a/utils/streamformatter.go b/utils/streamformatter.go index 8876fa5cb7..d2758d3ca6 100644 --- a/utils/streamformatter.go +++ b/utils/streamformatter.go @@ -3,6 +3,7 @@ package utils import ( "encoding/json" "fmt" + "io" ) type StreamFormatter struct { @@ -90,3 +91,31 @@ func (sf *StreamFormatter) Used() bool { func (sf *StreamFormatter) Json() bool { return sf.json } + +type StdoutFormater struct { + io.Writer + *StreamFormatter +} + +func (sf *StdoutFormater) Write(buf []byte) (int, error) { + formattedBuf := sf.StreamFormatter.FormatStream(string(buf)) + n, err := sf.Writer.Write(formattedBuf) + if n != len(formattedBuf) { + return n, io.ErrShortWrite + } + return len(buf), err +} + +type StderrFormater struct { + io.Writer + *StreamFormatter +} + +func (sf *StderrFormater) Write(buf []byte) (int, error) { + formattedBuf := sf.StreamFormatter.FormatStream("\033[91m" + string(buf) + "\033[0m") + n, err := sf.Writer.Write(formattedBuf) + if n != len(formattedBuf) { + return n, io.ErrShortWrite + } + return len(buf), err +}