diff --git a/daemon/execdriver/native/configuration/parse.go b/daemon/execdriver/native/configuration/parse.go index 6abf79ef8a..a923f2a3c8 100644 --- a/daemon/execdriver/native/configuration/parse.go +++ b/daemon/execdriver/native/configuration/parse.go @@ -11,7 +11,7 @@ import ( "github.com/dotcloud/docker/pkg/units" ) -type Action func(*libcontainer.Container, interface{}, string) error +type Action func(*libcontainer.Config, interface{}, string) error var actions = map[string]Action{ "cap.add": addCap, // add a cap @@ -35,7 +35,7 @@ var actions = map[string]Action{ "fs.readonly": readonlyFs, // make the rootfs of the container read only } -func cpusetCpus(container *libcontainer.Container, context interface{}, value string) error { +func cpusetCpus(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set cgroups when they are disabled") } @@ -44,7 +44,7 @@ func cpusetCpus(container *libcontainer.Container, context interface{}, value st return nil } -func systemdSlice(container *libcontainer.Container, context interface{}, value string) error { +func systemdSlice(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set slice when cgroups are disabled") } @@ -53,12 +53,12 @@ func systemdSlice(container *libcontainer.Container, context interface{}, value return nil } -func apparmorProfile(container *libcontainer.Container, context interface{}, value string) error { +func apparmorProfile(container *libcontainer.Config, context interface{}, value string) error { container.Context["apparmor_profile"] = value return nil } -func cpuShares(container *libcontainer.Container, context interface{}, value string) error { +func cpuShares(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set cgroups when they are disabled") } @@ -70,7 +70,7 @@ func cpuShares(container *libcontainer.Container, context interface{}, value str return nil } -func memory(container *libcontainer.Container, context interface{}, value string) error { +func memory(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set cgroups when they are disabled") } @@ -83,7 +83,7 @@ func memory(container *libcontainer.Container, context interface{}, value string return nil } -func memoryReservation(container *libcontainer.Container, context interface{}, value string) error { +func memoryReservation(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set cgroups when they are disabled") } @@ -96,7 +96,7 @@ func memoryReservation(container *libcontainer.Container, context interface{}, v return nil } -func memorySwap(container *libcontainer.Container, context interface{}, value string) error { +func memorySwap(container *libcontainer.Config, context interface{}, value string) error { if container.Cgroups == nil { return fmt.Errorf("cannot set cgroups when they are disabled") } @@ -108,12 +108,12 @@ func memorySwap(container *libcontainer.Container, context interface{}, value st return nil } -func addCap(container *libcontainer.Container, context interface{}, value string) error { +func addCap(container *libcontainer.Config, context interface{}, value string) error { container.Capabilities = append(container.Capabilities, value) return nil } -func dropCap(container *libcontainer.Container, context interface{}, value string) error { +func dropCap(container *libcontainer.Config, context interface{}, value string) error { // If the capability is specified multiple times, remove all instances. for i, capability := range container.Capabilities { if capability == value { @@ -125,17 +125,17 @@ func dropCap(container *libcontainer.Container, context interface{}, value strin return nil } -func addNamespace(container *libcontainer.Container, context interface{}, value string) error { +func addNamespace(container *libcontainer.Config, context interface{}, value string) error { container.Namespaces[value] = true return nil } -func dropNamespace(container *libcontainer.Container, context interface{}, value string) error { +func dropNamespace(container *libcontainer.Config, context interface{}, value string) error { container.Namespaces[value] = false return nil } -func readonlyFs(container *libcontainer.Container, context interface{}, value string) error { +func readonlyFs(container *libcontainer.Config, context interface{}, value string) error { switch value { case "1", "true": container.MountConfig.ReadonlyFs = true @@ -145,7 +145,7 @@ func readonlyFs(container *libcontainer.Container, context interface{}, value st return nil } -func joinNetNamespace(container *libcontainer.Container, context interface{}, value string) error { +func joinNetNamespace(container *libcontainer.Config, context interface{}, value string) error { var ( running = context.(map[string]*exec.Cmd) cmd = running[value] @@ -168,7 +168,7 @@ func joinNetNamespace(container *libcontainer.Container, context interface{}, va // container's default configuration. // // TODO: this can be moved to a general utils or parser in pkg -func ParseConfiguration(container *libcontainer.Container, running map[string]*exec.Cmd, opts []string) error { +func ParseConfiguration(container *libcontainer.Config, running map[string]*exec.Cmd, opts []string) error { for _, opt := range opts { kv := strings.SplitN(opt, "=", 2) if len(kv) < 2 { diff --git a/daemon/execdriver/native/create.go b/daemon/execdriver/native/create.go index bc726aab9a..e577bd2b87 100644 --- a/daemon/execdriver/native/create.go +++ b/daemon/execdriver/native/create.go @@ -18,7 +18,7 @@ import ( // createContainer populates and configures the container type with the // data provided by the execdriver.Command -func (d *driver) createContainer(c *execdriver.Command) (*libcontainer.Container, error) { +func (d *driver) createContainer(c *execdriver.Command) (*libcontainer.Config, error) { container := template.New() container.Hostname = getEnv("HOSTNAME", c.Env) @@ -70,7 +70,7 @@ func (d *driver) createContainer(c *execdriver.Command) (*libcontainer.Container return container, nil } -func (d *driver) createNetwork(container *libcontainer.Container, c *execdriver.Command) error { +func (d *driver) createNetwork(container *libcontainer.Config, c *execdriver.Command) error { if c.Network.HostNetworking { container.Namespaces["NEWNET"] = false return nil @@ -117,7 +117,7 @@ func (d *driver) createNetwork(container *libcontainer.Container, c *execdriver. return nil } -func (d *driver) setPrivileged(container *libcontainer.Container) (err error) { +func (d *driver) setPrivileged(container *libcontainer.Config) (err error) { container.Capabilities = capabilities.GetAllCapabilities() container.Cgroups.AllowAllDevices = true @@ -136,7 +136,7 @@ func (d *driver) setPrivileged(container *libcontainer.Container) (err error) { return nil } -func (d *driver) setupCgroups(container *libcontainer.Container, c *execdriver.Command) error { +func (d *driver) setupCgroups(container *libcontainer.Config, c *execdriver.Command) error { if c.Resources != nil { container.Cgroups.CpuShares = c.Resources.CpuShares container.Cgroups.Memory = c.Resources.Memory @@ -148,7 +148,7 @@ func (d *driver) setupCgroups(container *libcontainer.Container, c *execdriver.C return nil } -func (d *driver) setupMounts(container *libcontainer.Container, c *execdriver.Command) error { +func (d *driver) setupMounts(container *libcontainer.Config, c *execdriver.Command) error { for _, m := range c.Mounts { container.MountConfig.Mounts = append(container.MountConfig.Mounts, mount.Mount{ Type: "bind", @@ -162,7 +162,7 @@ func (d *driver) setupMounts(container *libcontainer.Container, c *execdriver.Co return nil } -func (d *driver) setupLabels(container *libcontainer.Container, c *execdriver.Command) error { +func (d *driver) setupLabels(container *libcontainer.Config, c *execdriver.Command) error { container.Context["process_label"] = c.Config["process_label"][0] container.Context["mount_label"] = c.Config["mount_label"][0] diff --git a/daemon/execdriver/native/driver.go b/daemon/execdriver/native/driver.go index 840d9fbc41..7cbb563ea7 100644 --- a/daemon/execdriver/native/driver.go +++ b/daemon/execdriver/native/driver.go @@ -27,7 +27,7 @@ const ( func init() { execdriver.RegisterInitFunc(DriverName, func(args *execdriver.InitArgs) error { - var container *libcontainer.Container + var container *libcontainer.Config f, err := os.Open(filepath.Join(args.Root, "container.json")) if err != nil { return err @@ -54,7 +54,7 @@ func init() { } type activeContainer struct { - container *libcontainer.Container + container *libcontainer.Config cmd *exec.Cmd } @@ -83,7 +83,7 @@ func NewDriver(root, initPath string) (*driver, error) { } func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallback execdriver.StartCallback) (int, error) { - // take the Command and populate the libcontainer.Container from it + // take the Command and populate the libcontainer.Config from it container, err := d.createContainer(c) if err != nil { return -1, err @@ -110,7 +110,7 @@ func (d *driver) Run(c *execdriver.Command, pipes *execdriver.Pipes, startCallba term := getTerminal(c, pipes) - return namespaces.Exec(container, term, c.Rootfs, dataPath, args, func(container *libcontainer.Container, console, rootfs, dataPath, init string, child *os.File, args []string) *exec.Cmd { + return namespaces.Exec(container, term, c.Rootfs, dataPath, args, func(container *libcontainer.Config, console, rootfs, dataPath, init string, child *os.File, args []string) *exec.Cmd { // we need to join the rootfs because namespaces will setup the rootfs and chroot initPath := filepath.Join(c.Rootfs, c.InitPath) @@ -229,7 +229,7 @@ func (d *driver) GetPidsForContainer(id string) ([]int, error) { return fs.GetPids(c) } -func (d *driver) writeContainerFile(container *libcontainer.Container, id string) error { +func (d *driver) writeContainerFile(container *libcontainer.Config, id string) error { data, err := json.Marshal(container) if err != nil { return err diff --git a/daemon/execdriver/native/template/default_template.go b/daemon/execdriver/native/template/default_template.go index b4d6fcb7c5..5dbcbb5589 100644 --- a/daemon/execdriver/native/template/default_template.go +++ b/daemon/execdriver/native/template/default_template.go @@ -7,8 +7,8 @@ import ( ) // New returns the docker default configuration for libcontainer -func New() *libcontainer.Container { - container := &libcontainer.Container{ +func New() *libcontainer.Config { + container := &libcontainer.Config{ Capabilities: []string{ "CHOWN", "DAC_OVERRIDE",