Merge pull request #15798 from calavera/volume_driver_host_config

Move VolumeDriver to HostConfig to make containers portable.
This commit is contained in:
Brian Goff
2015-09-08 22:05:40 -04:00
22 changed files with 181 additions and 78 deletions
-17
View File
@@ -4,7 +4,6 @@ import (
"fmt"
"io"
"net/http"
"runtime"
"strconv"
"strings"
"time"
@@ -20,22 +19,6 @@ import (
"github.com/docker/docker/runconfig"
)
func (s *Server) getContainersByName(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
if version.LessThan("1.20") && runtime.GOOS != "windows" {
return getContainersByNameDownlevel(w, s, vars["name"])
}
containerJSON, err := s.daemon.ContainerInspect(vars["name"])
if err != nil {
return err
}
return writeJSON(w, http.StatusOK, containerJSON)
}
func (s *Server) getContainersJSON(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if err := parseForm(r); err != nil {
return err
+33
View File
@@ -0,0 +1,33 @@
package server
import (
"fmt"
"net/http"
"github.com/docker/docker/pkg/version"
)
// getContainersByName inspects containers configuration and serializes it as json.
func (s *Server) getContainersByName(version version.Version, w http.ResponseWriter, r *http.Request, vars map[string]string) error {
if vars == nil {
return fmt.Errorf("Missing parameter")
}
var json interface{}
var err error
switch {
case version.LessThan("1.20"):
json, err = s.daemon.ContainerInspectPre120(vars["name"])
case version.Equal("1.20"):
json, err = s.daemon.ContainerInspect120(vars["name"])
default:
json, err = s.daemon.ContainerInspect(vars["name"])
}
if err != nil {
return err
}
return writeJSON(w, http.StatusOK, json)
}
-10
View File
@@ -103,16 +103,6 @@ func allocateDaemonPort(addr string) error {
return nil
}
// getContainersByNameDownlevel performs processing for pre 1.20 APIs. This
// is only relevant on non-Windows daemons.
func getContainersByNameDownlevel(w http.ResponseWriter, s *Server, namevar string) error {
containerJSONRaw, err := s.daemon.ContainerInspectPre120(namevar)
if err != nil {
return err
}
return writeJSON(w, http.StatusOK, containerJSONRaw)
}
// listenFD returns the specified socket activated files as a slice of
// net.Listeners or all of the activated files if "*" is given.
func listenFD(addr string) ([]net.Listener, error) {
-6
View File
@@ -56,9 +56,3 @@ func (s *Server) AcceptConnections(d *daemon.Daemon) {
func allocateDaemonPort(addr string) error {
return nil
}
// getContainersByNameDownlevel performs processing for pre 1.20 APIs. This
// is only relevant on non-Windows daemons.
func getContainersByNameDownlevel(w http.ResponseWriter, s *Server, namevar string) error {
return nil
}
+23 -8
View File
@@ -274,24 +274,39 @@ type ContainerJSON struct {
Config *runconfig.Config
}
// ContainerJSONPre120 is a backcompatibility struct along with ContainerConfig.
// ContainerJSON120 is a backcompatibility struct along with ContainerConfig120.
type ContainerJSON120 struct {
*ContainerJSONBase
Mounts []MountPoint
Config *ContainerConfig120
}
// ContainerJSONPre120 is a backcompatibility struct along with ContainerConfigPre120.
// Note this is not used by the Windows daemon.
type ContainerJSONPre120 struct {
*ContainerJSONBase
Volumes map[string]string
VolumesRW map[string]bool
Config *ContainerConfig
Config *ContainerConfigPre120
}
// ContainerConfig is a backcompatibility struct used in ContainerJSONPre120
type ContainerConfig struct {
// ContainerConfigPre120 is a backcompatibility struct used in ContainerJSONPre120
type ContainerConfigPre120 struct {
*runconfig.Config
// backward compatibility, they now live in HostConfig
Memory int64
MemorySwap int64
CPUShares int64 `json:"CpuShares"`
CPUSet string `json:"CpuSet"`
VolumeDriver string
Memory int64
MemorySwap int64
CPUShares int64 `json:"CpuShares"`
CPUSet string `json:"CpuSet"`
}
// ContainerConfig120 is a backcompatibility struct used in ContainerJSON120
type ContainerConfig120 struct {
*runconfig.Config
// backward compatibility, it lives now in HostConfig
VolumeDriver string
}
// MountPoint represents a mount point configuration inside the container.