Browse code

Adds LinuxMetadata support by default on Windows

1. Sets the LinuxMetadata flag by default on Windows LCOW v1
MappedDirectories.

Signed-off-by: Justin Terry (VM) <juterry@microsoft.com>

Justin Terry (VM) authored on 2018/07/24 01:11:13
Showing 3 changed files
... ...
@@ -494,6 +494,10 @@ func (c *client) createLinux(id string, spec *specs.Spec, runtimeOptions interfa
494 494
 				CreateInUtilityVM: true,
495 495
 				ReadOnly:          readonly,
496 496
 			}
497
+			// If we are 1803/RS4+ enable LinuxMetadata support by default
498
+			if system.GetOSVersion().Build >= 17134 {
499
+				md.LinuxMetadata = true
500
+			}
497 501
 			mds = append(mds, md)
498 502
 			specMount.Source = path.Join(uvmPath, mount.Destination)
499 503
 		}
... ...
@@ -1,6 +1,6 @@
1 1
 # the following lines are in sorted order, FYI
2 2
 github.com/Azure/go-ansiterm d6e3b3328b783f23731bc4d058875b0371ff8109
3
-github.com/Microsoft/hcsshim v0.6.11
3
+github.com/Microsoft/hcsshim v0.6.12
4 4
 github.com/Microsoft/go-winio v0.4.8
5 5
 github.com/docker/libtrust 9cbd2a1374f46905c68a4eb3694a130610adc62a
6 6
 github.com/go-check/check 4ed411733c5785b40214c70bce814c3a3a689609 https://github.com/cpuguy83/check.git
... ...
@@ -36,6 +36,8 @@ type MappedDir struct {
36 36
 	BandwidthMaximum  uint64
37 37
 	IOPSMaximum       uint64
38 38
 	CreateInUtilityVM bool
39
+	// LinuxMetadata - Support added in 1803/RS4+.
40
+	LinuxMetadata bool `json:",omitempty"`
39 41
 }
40 42
 
41 43
 type MappedPipe struct {
... ...
@@ -62,6 +64,14 @@ type MappedVirtualDisk struct {
62 62
 	AttachOnly        bool   `json:",omitempty:`
63 63
 }
64 64
 
65
+// AssignedDevice represents a device that has been directly assigned to a container
66
+//
67
+// NOTE: Support added in RS5
68
+type AssignedDevice struct {
69
+	//  InterfaceClassGUID of the device to assign to container.
70
+	InterfaceClassGUID string `json:"InterfaceClassGuid,omitempty"`
71
+}
72
+
65 73
 // ContainerConfig is used as both the input of CreateContainer
66 74
 // and to convert the parameters to JSON for passing onto the HCS
67 75
 type ContainerConfig struct {
... ...
@@ -93,6 +103,7 @@ type ContainerConfig struct {
93 93
 	ContainerType               string              `json:",omitempty"` // "Linux" for Linux containers on Windows. Omitted otherwise.
94 94
 	TerminateOnLastHandleClosed bool                `json:",omitempty"` // Should HCS terminate the container once all handles have been closed
95 95
 	MappedVirtualDisks          []MappedVirtualDisk `json:",omitempty"` // Array of virtual disks to mount at start
96
+	AssignedDevices             []AssignedDevice    `json:",omitempty"` // Array of devices to assign. NOTE: Support added in RS5
96 97
 }
97 98
 
98 99
 type ComputeSystemQuery struct {