github.com/alexandrev/docker@v1.9.0/daemon/inspect_unix.go (about)

     1  // +build !windows
     2  
     3  package daemon
     4  
     5  import (
     6  	"github.com/docker/docker/api/types"
     7  	"github.com/docker/docker/api/types/versions/v1p19"
     8  )
     9  
    10  // This sets platform-specific fields
    11  func setPlatformSpecificContainerFields(container *Container, contJSONBase *types.ContainerJSONBase) *types.ContainerJSONBase {
    12  	contJSONBase.AppArmorProfile = container.AppArmorProfile
    13  	contJSONBase.ResolvConfPath = container.ResolvConfPath
    14  	contJSONBase.HostnamePath = container.HostnamePath
    15  	contJSONBase.HostsPath = container.HostsPath
    16  
    17  	return contJSONBase
    18  }
    19  
    20  // ContainerInspectPre120 gets containers for pre 1.20 APIs.
    21  func (daemon *Daemon) ContainerInspectPre120(name string) (*v1p19.ContainerJSON, error) {
    22  	container, err := daemon.Get(name)
    23  	if err != nil {
    24  		return nil, err
    25  	}
    26  
    27  	container.Lock()
    28  	defer container.Unlock()
    29  
    30  	base, err := daemon.getInspectData(container, false)
    31  	if err != nil {
    32  		return nil, err
    33  	}
    34  
    35  	volumes := make(map[string]string)
    36  	volumesRW := make(map[string]bool)
    37  	for _, m := range container.MountPoints {
    38  		volumes[m.Destination] = m.Path()
    39  		volumesRW[m.Destination] = m.RW
    40  	}
    41  
    42  	config := &v1p19.ContainerConfig{
    43  		container.Config,
    44  		container.Config.MacAddress,
    45  		container.Config.NetworkDisabled,
    46  		container.Config.ExposedPorts,
    47  		container.hostConfig.VolumeDriver,
    48  		container.hostConfig.Memory,
    49  		container.hostConfig.MemorySwap,
    50  		container.hostConfig.CPUShares,
    51  		container.hostConfig.CpusetCpus,
    52  	}
    53  	networkSettings := daemon.getBackwardsCompatibleNetworkSettings(container.NetworkSettings)
    54  
    55  	return &v1p19.ContainerJSON{base, volumes, volumesRW, config, networkSettings}, nil
    56  }
    57  
    58  func addMountPoints(container *Container) []types.MountPoint {
    59  	mountPoints := make([]types.MountPoint, 0, len(container.MountPoints))
    60  	for _, m := range container.MountPoints {
    61  		mountPoints = append(mountPoints, types.MountPoint{
    62  			Name:        m.Name,
    63  			Source:      m.Path(),
    64  			Destination: m.Destination,
    65  			Driver:      m.Driver,
    66  			Mode:        m.Mode,
    67  			RW:          m.RW,
    68  		})
    69  	}
    70  	return mountPoints
    71  }