1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

move configs structs to remove dependency on daemon

- Moved the following config structs to api/types
   - ContainerRmConfig
   - ContainerCommitConfig

Signed-off-by: Morgan Bauer <mbauer@us.ibm.com>
This commit is contained in:
Morgan Bauer 2015-12-04 12:34:43 -08:00
parent a56f258c8a
commit 63fb931a0b
No known key found for this signature in database
GPG key ID: 23F15C502128F348
11 changed files with 49 additions and 34 deletions

View file

@ -38,7 +38,7 @@ type stateBackend interface {
ContainerRename(oldName, newName string) error ContainerRename(oldName, newName string) error
ContainerResize(name string, height, width int) error ContainerResize(name string, height, width int) error
ContainerRestart(name string, seconds int) error ContainerRestart(name string, seconds int) error
ContainerRm(name string, config *daemon.ContainerRmConfig) error ContainerRm(name string, config *types.ContainerRmConfig) error
ContainerStart(name string, hostConfig *runconfig.HostConfig) error ContainerStart(name string, hostConfig *runconfig.HostConfig) error
ContainerStop(name string, seconds int) error ContainerStop(name string, seconds int) error
ContainerUnpause(name string) error ContainerUnpause(name string) error

View file

@ -358,7 +358,7 @@ func (s *containerRouter) deleteContainers(ctx context.Context, w http.ResponseW
} }
name := vars["name"] name := vars["name"]
config := &daemon.ContainerRmConfig{ config := &types.ContainerRmConfig{
ForceRemove: httputils.BoolValue(r, "force"), ForceRemove: httputils.BoolValue(r, "force"),
RemoveVolume: httputils.BoolValue(r, "v"), RemoveVolume: httputils.BoolValue(r, "v"),
RemoveLink: httputils.BoolValue(r, "link"), RemoveLink: httputils.BoolValue(r, "link"),

29
api/types/configs.go Normal file
View file

@ -0,0 +1,29 @@
package types
// configs holds structs used for internal communication between the
// frontend (such as an http server) and the backend (such as the
// docker daemon).
import (
"github.com/docker/docker/runconfig"
)
// ContainerRmConfig holds arguments for the container remove
// operation. This struct is used to tell the backend what operations
// to perform.
type ContainerRmConfig struct {
ForceRemove, RemoveVolume, RemoveLink bool
}
// ContainerCommitConfig contains build configs for commit operation,
// and is used when making a commit with the current state of the container.
type ContainerCommitConfig struct {
Pause bool
Repo string
Tag string
Author string
Comment string
// merge container config into commit config before commit
MergeConfigs bool
Config *runconfig.Config
}

View file

@ -8,9 +8,8 @@ import (
"io" "io"
"os" "os"
// TODO: remove dependency on daemon "github.com/docker/docker/api/types"
"github.com/docker/docker/container" "github.com/docker/docker/container"
"github.com/docker/docker/daemon"
"github.com/docker/docker/image" "github.com/docker/docker/image"
"github.com/docker/docker/runconfig" "github.com/docker/docker/runconfig"
) )
@ -122,9 +121,9 @@ type Docker interface {
// TODO: put warnings in the error // TODO: put warnings in the error
Create(*runconfig.Config, *runconfig.HostConfig) (*container.Container, []string, error) Create(*runconfig.Config, *runconfig.HostConfig) (*container.Container, []string, error)
// Remove removes a container specified by `id`. // Remove removes a container specified by `id`.
Remove(id string, cfg *daemon.ContainerRmConfig) error Remove(id string, cfg *types.ContainerRmConfig) error
// Commit creates a new Docker image from an existing Docker container. // Commit creates a new Docker image from an existing Docker container.
Commit(string, *daemon.ContainerCommitConfig) (string, error) Commit(string, *types.ContainerCommitConfig) (string, error)
// Copy copies/extracts a source FileInfo to a destination path inside a container // Copy copies/extracts a source FileInfo to a destination path inside a container
// specified by a container object. // specified by a container object.
// TODO: make an Extract method instead of passing `decompress` // TODO: make an Extract method instead of passing `decompress`

View file

@ -10,6 +10,7 @@ import (
"sync" "sync"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
"github.com/docker/docker/builder" "github.com/docker/docker/builder"
"github.com/docker/docker/builder/dockerfile/parser" "github.com/docker/docker/builder/dockerfile/parser"
"github.com/docker/docker/daemon" "github.com/docker/docker/daemon"
@ -267,7 +268,7 @@ func Commit(containerName string, d *daemon.Daemon, c *CommitConfig) (string, er
return "", err return "", err
} }
commitCfg := &daemon.ContainerCommitConfig{ commitCfg := &types.ContainerCommitConfig{
Pause: c.Pause, Pause: c.Pause,
Repo: c.Repo, Repo: c.Repo,
Tag: c.Tag, Tag: c.Tag,

View file

@ -20,10 +20,10 @@ import (
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/docker/api" "github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/builder" "github.com/docker/docker/builder"
"github.com/docker/docker/builder/dockerfile/parser" "github.com/docker/docker/builder/dockerfile/parser"
"github.com/docker/docker/container" "github.com/docker/docker/container"
"github.com/docker/docker/daemon"
"github.com/docker/docker/image" "github.com/docker/docker/image"
"github.com/docker/docker/pkg/archive" "github.com/docker/docker/pkg/archive"
"github.com/docker/docker/pkg/httputils" "github.com/docker/docker/pkg/httputils"
@ -77,7 +77,7 @@ func (b *Builder) commit(id string, autoCmd *stringutils.StrSlice, comment strin
autoConfig := *b.runConfig autoConfig := *b.runConfig
autoConfig.Cmd = autoCmd autoConfig.Cmd = autoCmd
commitCfg := &daemon.ContainerCommitConfig{ commitCfg := &types.ContainerCommitConfig{
Author: b.maintainer, Author: b.maintainer,
Pause: true, Pause: true,
Config: &autoConfig, Config: &autoConfig,
@ -586,7 +586,7 @@ func (b *Builder) run(c *container.Container) error {
} }
func (b *Builder) removeContainer(c string) error { func (b *Builder) removeContainer(c string) error {
rmConfig := &daemon.ContainerRmConfig{ rmConfig := &types.ContainerRmConfig{
ForceRemove: true, ForceRemove: true,
RemoveVolume: true, RemoveVolume: true,
} }

View file

@ -8,6 +8,7 @@ import (
"time" "time"
"github.com/docker/distribution/reference" "github.com/docker/distribution/reference"
"github.com/docker/docker/api/types"
"github.com/docker/docker/container" "github.com/docker/docker/container"
"github.com/docker/docker/dockerversion" "github.com/docker/docker/dockerversion"
"github.com/docker/docker/image" "github.com/docker/docker/image"
@ -17,22 +18,9 @@ import (
"github.com/docker/docker/runconfig" "github.com/docker/docker/runconfig"
) )
// ContainerCommitConfig contains build configs for commit operation,
// and is used when making a commit with the current state of the container.
type ContainerCommitConfig struct {
Pause bool
Repo string
Tag string
Author string
Comment string
// merge container config into commit config before commit
MergeConfigs bool
Config *runconfig.Config
}
// Commit creates a new filesystem image from the current state of a container. // Commit creates a new filesystem image from the current state of a container.
// The image can optionally be tagged into a repository. // The image can optionally be tagged into a repository.
func (daemon *Daemon) Commit(name string, c *ContainerCommitConfig) (string, error) { func (daemon *Daemon) Commit(name string, c *types.ContainerCommitConfig) (string, error) {
container, err := daemon.Get(name) container, err := daemon.Get(name)
if err != nil { if err != nil {
return "", err return "", err

View file

@ -74,7 +74,7 @@ func (daemon *Daemon) create(params *ContainerCreateConfig) (retC *container.Con
} }
defer func() { defer func() {
if retErr != nil { if retErr != nil {
if err := daemon.ContainerRm(container.ID, &ContainerRmConfig{ForceRemove: true}); err != nil { if err := daemon.ContainerRm(container.ID, &types.ContainerRmConfig{ForceRemove: true}); err != nil {
logrus.Errorf("Clean up Error! Cannot destroy container %s: %v", container.ID, err) logrus.Errorf("Clean up Error! Cannot destroy container %s: %v", container.ID, err)
} }
} }

View file

@ -11,6 +11,7 @@ import (
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/distribution/reference" "github.com/docker/distribution/reference"
"github.com/docker/docker/api" "github.com/docker/docker/api"
"github.com/docker/docker/api/types"
"github.com/docker/docker/builder" "github.com/docker/docker/builder"
"github.com/docker/docker/cliconfig" "github.com/docker/docker/cliconfig"
"github.com/docker/docker/container" "github.com/docker/docker/container"
@ -105,12 +106,12 @@ func (d Docker) Create(cfg *runconfig.Config, hostCfg *runconfig.HostConfig) (*c
} }
// Remove removes a container specified by `id`. // Remove removes a container specified by `id`.
func (d Docker) Remove(id string, cfg *daemon.ContainerRmConfig) error { func (d Docker) Remove(id string, cfg *types.ContainerRmConfig) error {
return d.Daemon.ContainerRm(id, cfg) return d.Daemon.ContainerRm(id, cfg)
} }
// Commit creates a new Docker image from an existing Docker container. // Commit creates a new Docker image from an existing Docker container.
func (d Docker) Commit(name string, cfg *daemon.ContainerCommitConfig) (string, error) { func (d Docker) Commit(name string, cfg *types.ContainerCommitConfig) (string, error) {
return d.Daemon.Commit(name, cfg) return d.Daemon.Commit(name, cfg)
} }

View file

@ -5,22 +5,18 @@ import (
"path" "path"
"github.com/Sirupsen/logrus" "github.com/Sirupsen/logrus"
"github.com/docker/docker/api/types"
"github.com/docker/docker/container" "github.com/docker/docker/container"
derr "github.com/docker/docker/errors" derr "github.com/docker/docker/errors"
"github.com/docker/docker/layer" "github.com/docker/docker/layer"
volumestore "github.com/docker/docker/volume/store" volumestore "github.com/docker/docker/volume/store"
) )
// ContainerRmConfig is a holder for passing in runtime config.
type ContainerRmConfig struct {
ForceRemove, RemoveVolume, RemoveLink bool
}
// ContainerRm removes the container id from the filesystem. An error // ContainerRm removes the container id from the filesystem. An error
// is returned if the container is not found, or if the remove // is returned if the container is not found, or if the remove
// fails. If the remove succeeds, the container name is released, and // fails. If the remove succeeds, the container name is released, and
// network links are removed. // network links are removed.
func (daemon *Daemon) ContainerRm(name string, config *ContainerRmConfig) error { func (daemon *Daemon) ContainerRm(name string, config *types.ContainerRmConfig) error {
container, err := daemon.Get(name) container, err := daemon.Get(name)
if err != nil { if err != nil {
return err return err

View file

@ -5,6 +5,7 @@ import (
"os" "os"
"testing" "testing"
"github.com/docker/docker/api/types"
"github.com/docker/docker/container" "github.com/docker/docker/container"
"github.com/docker/docker/runconfig" "github.com/docker/docker/runconfig"
) )
@ -37,7 +38,7 @@ func TestContainerDoubleDelete(t *testing.T) {
// Try to remove the container when it's start is removalInProgress. // Try to remove the container when it's start is removalInProgress.
// It should ignore the container and not return an error. // It should ignore the container and not return an error.
if err := daemon.ContainerRm(container.ID, &ContainerRmConfig{ForceRemove: true}); err != nil { if err := daemon.ContainerRm(container.ID, &types.ContainerRmConfig{ForceRemove: true}); err != nil {
t.Fatal(err) t.Fatal(err)
} }
} }