Преглед изворни кода

Windows: Split ContainerExecCreate

Signed-off-by: John Howard <jhoward@microsoft.com>
jhowardmsft пре 10 година
родитељ
комит
e35b025aa6
3 измењених фајлова са 30 додато и 3 уклоњено
  1. 3 3
      daemon/exec.go
  2. 18 0
      daemon/exec_linux.go
  3. 9 0
      daemon/exec_windows.go

+ 3 - 3
daemon/exec.go

@@ -9,7 +9,6 @@ import (
 
 
 	"github.com/Sirupsen/logrus"
 	"github.com/Sirupsen/logrus"
 	"github.com/docker/docker/daemon/execdriver"
 	"github.com/docker/docker/daemon/execdriver"
-	"github.com/docker/docker/daemon/execdriver/lxc"
 	"github.com/docker/docker/pkg/broadcastwriter"
 	"github.com/docker/docker/pkg/broadcastwriter"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/ioutils"
 	"github.com/docker/docker/pkg/stringid"
 	"github.com/docker/docker/pkg/stringid"
@@ -111,8 +110,9 @@ func (d *Daemon) getActiveContainer(name string) (*Container, error) {
 
 
 func (d *Daemon) ContainerExecCreate(config *runconfig.ExecConfig) (string, error) {
 func (d *Daemon) ContainerExecCreate(config *runconfig.ExecConfig) (string, error) {
 
 
-	if strings.HasPrefix(d.execDriver.Name(), lxc.DriverName) {
-		return "", lxc.ErrExec
+	// Not all drivers support Exec (LXC for example)
+	if err := checkExecSupport(d.execDriver.Name()); err != nil {
+		return "", err
 	}
 	}
 
 
 	container, err := d.getActiveContainer(config.Container)
 	container, err := d.getActiveContainer(config.Container)

+ 18 - 0
daemon/exec_linux.go

@@ -0,0 +1,18 @@
+// +build linux
+
+package daemon
+
+import (
+	"strings"
+
+	"github.com/docker/docker/daemon/execdriver/lxc"
+)
+
+// checkExecSupport returns an error if the exec driver does not support exec,
+// or nil if it is supported.
+func checkExecSupport(drivername string) error {
+	if strings.HasPrefix(drivername, lxc.DriverName) {
+		return lxc.ErrExec
+	}
+	return nil
+}

+ 9 - 0
daemon/exec_windows.go

@@ -0,0 +1,9 @@
+// +build windows
+
+package daemon
+
+// checkExecSupport returns an error if the exec driver does not support exec,
+// or nil if it is supported.
+func checkExecSupport(DriverName string) error {
+	return nil
+}