Move "containers" to daemon/list.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)
This commit is contained in:
parent
aa49632fef
commit
d037007658
|
@ -161,14 +161,12 @@ func (daemon *Daemon) Install(eng *engine.Engine) error {
|
||||||
if err := eng.Register("top", daemon.ContainerTop); err != nil {
|
if err := eng.Register("top", daemon.ContainerTop); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := eng.Register("containers", daemon.Containers); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// List returns an array of all containers registered in the daemon.
|
|
||||||
func (daemon *Daemon) List() []*Container {
|
|
||||||
return daemon.containers.List()
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get looks for a container by the specified ID or name, and returns it.
|
// Get looks for a container by the specified ID or name, and returns it.
|
||||||
// If the container is not found, or if an error occurs, nil is returned.
|
// If the container is not found, or if an error occurs, nil is returned.
|
||||||
func (daemon *Daemon) Get(name string) *Container {
|
func (daemon *Daemon) Get(name string) *Container {
|
||||||
|
|
|
@ -1,20 +1,21 @@
|
||||||
// DEPRECATION NOTICE. PLEASE DO NOT ADD ANYTHING TO THIS FILE.
|
package daemon
|
||||||
//
|
|
||||||
// For additional commments see server/server.go
|
|
||||||
//
|
|
||||||
package server
|
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/docker/docker/daemon"
|
|
||||||
"github.com/docker/docker/engine"
|
|
||||||
"github.com/docker/docker/pkg/graphdb"
|
"github.com/docker/docker/pkg/graphdb"
|
||||||
|
|
||||||
|
"github.com/docker/docker/engine"
|
||||||
)
|
)
|
||||||
|
|
||||||
func (srv *Server) Containers(job *engine.Job) engine.Status {
|
// List returns an array of all containers registered in the daemon.
|
||||||
|
func (daemon *Daemon) List() []*Container {
|
||||||
|
return daemon.containers.List()
|
||||||
|
}
|
||||||
|
|
||||||
|
func (daemon *Daemon) Containers(job *engine.Job) engine.Status {
|
||||||
var (
|
var (
|
||||||
foundBefore bool
|
foundBefore bool
|
||||||
displayed int
|
displayed int
|
||||||
|
@ -27,28 +28,28 @@ func (srv *Server) Containers(job *engine.Job) engine.Status {
|
||||||
outs := engine.NewTable("Created", 0)
|
outs := engine.NewTable("Created", 0)
|
||||||
|
|
||||||
names := map[string][]string{}
|
names := map[string][]string{}
|
||||||
srv.daemon.ContainerGraph().Walk("/", func(p string, e *graphdb.Entity) error {
|
daemon.ContainerGraph().Walk("/", func(p string, e *graphdb.Entity) error {
|
||||||
names[e.ID()] = append(names[e.ID()], p)
|
names[e.ID()] = append(names[e.ID()], p)
|
||||||
return nil
|
return nil
|
||||||
}, -1)
|
}, -1)
|
||||||
|
|
||||||
var beforeCont, sinceCont *daemon.Container
|
var beforeCont, sinceCont *Container
|
||||||
if before != "" {
|
if before != "" {
|
||||||
beforeCont = srv.daemon.Get(before)
|
beforeCont = daemon.Get(before)
|
||||||
if beforeCont == nil {
|
if beforeCont == nil {
|
||||||
return job.Error(fmt.Errorf("Could not find container with name or id %s", before))
|
return job.Error(fmt.Errorf("Could not find container with name or id %s", before))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if since != "" {
|
if since != "" {
|
||||||
sinceCont = srv.daemon.Get(since)
|
sinceCont = daemon.Get(since)
|
||||||
if sinceCont == nil {
|
if sinceCont == nil {
|
||||||
return job.Error(fmt.Errorf("Could not find container with name or id %s", since))
|
return job.Error(fmt.Errorf("Could not find container with name or id %s", since))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
errLast := errors.New("last container")
|
errLast := errors.New("last container")
|
||||||
writeCont := func(container *daemon.Container) error {
|
writeCont := func(container *Container) error {
|
||||||
container.Lock()
|
container.Lock()
|
||||||
defer container.Unlock()
|
defer container.Unlock()
|
||||||
if !container.State.IsRunning() && !all && n <= 0 && since == "" && before == "" {
|
if !container.State.IsRunning() && !all && n <= 0 && since == "" && before == "" {
|
||||||
|
@ -72,7 +73,7 @@ func (srv *Server) Containers(job *engine.Job) engine.Status {
|
||||||
out := &engine.Env{}
|
out := &engine.Env{}
|
||||||
out.Set("Id", container.ID)
|
out.Set("Id", container.ID)
|
||||||
out.SetList("Names", names[container.ID])
|
out.SetList("Names", names[container.ID])
|
||||||
out.Set("Image", srv.daemon.Repositories().ImageName(container.Image))
|
out.Set("Image", daemon.Repositories().ImageName(container.Image))
|
||||||
if len(container.Args) > 0 {
|
if len(container.Args) > 0 {
|
||||||
args := []string{}
|
args := []string{}
|
||||||
for _, arg := range container.Args {
|
for _, arg := range container.Args {
|
||||||
|
@ -104,7 +105,7 @@ func (srv *Server) Containers(job *engine.Job) engine.Status {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, container := range srv.daemon.List() {
|
for _, container := range daemon.List() {
|
||||||
if err := writeCont(container); err != nil {
|
if err := writeCont(container); err != nil {
|
||||||
if err != errLast {
|
if err != errLast {
|
||||||
return job.Error(err)
|
return job.Error(err)
|
|
@ -100,7 +100,6 @@ func InitServer(job *engine.Job) engine.Status {
|
||||||
"image_delete": srv.ImageDelete,
|
"image_delete": srv.ImageDelete,
|
||||||
"events": srv.Events,
|
"events": srv.Events,
|
||||||
"push": srv.ImagePush,
|
"push": srv.ImagePush,
|
||||||
"containers": srv.Containers,
|
|
||||||
} {
|
} {
|
||||||
if err := job.Eng.Register(name, srv.handlerWrap(handler)); err != nil {
|
if err := job.Eng.Register(name, srv.handlerWrap(handler)); err != nil {
|
||||||
return job.Error(err)
|
return job.Error(err)
|
||||||
|
|
Loading…
Reference in New Issue