From 6a6596913a1c28a465dcc49f0ee9f367b6a85935 Mon Sep 17 00:00:00 2001 From: Solomon Hykes Date: Thu, 1 May 2014 23:31:06 -0700 Subject: [PATCH] First skeleton of a simulator --- backends/backends.go | 1 + backends/simulator.go | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 backends/simulator.go diff --git a/backends/backends.go b/backends/backends.go index 04c66f3477..10047d1b17 100644 --- a/backends/backends.go +++ b/backends/backends.go @@ -15,5 +15,6 @@ func New() *engine.Engine { back.Logging = false // Register all backends here Debug().Install(back) + Simulator().Install(back) return back } diff --git a/backends/simulator.go b/backends/simulator.go new file mode 100644 index 0000000000..99a4b72620 --- /dev/null +++ b/backends/simulator.go @@ -0,0 +1,32 @@ +package backends + +import ( + "github.com/dotcloud/docker/engine" +) + +func Simulator() engine.Installer { + return &simulator{} +} + +type simulator struct { + containers []string +} + +func (s *simulator) Install(eng *engine.Engine) error { + eng.Register("simulator", func(job *engine.Job) engine.Status { + s.containers = job.Args + job.Eng.Register("containers", func(job *engine.Job) engine.Status { + t := engine.NewTable("Id", len(s.containers)) + for _, c := range s.containers { + e := &engine.Env{} + e.Set("Id", c) + e.Set("Image", "foobar") + t.Add(e) + } + t.WriteListTo(job.Stdout) + return engine.StatusOK + }) + return engine.StatusOK + }) + return nil +}