package libcontainerd import ( "fmt" "github.com/containerd/containerd" "github.com/containerd/containerd/windows/hcsshimtypes" specs "github.com/opencontainers/runtime-spec/specs-go" "github.com/pkg/errors" ) func summaryFromInterface(i interface{}) (*Summary, error) { switch pd := i.(type) { case *hcsshimtypes.ProcessDetails: return &Summary{ CreateTimestamp: pd.CreatedAt, ImageName: pd.ImageName, KernelTime100ns: pd.KernelTime_100Ns, MemoryCommitBytes: pd.MemoryCommitBytes, MemoryWorkingSetPrivateBytes: pd.MemoryWorkingSetPrivateBytes, MemoryWorkingSetSharedBytes: pd.MemoryWorkingSetSharedBytes, ProcessId: pd.ProcessID, UserTime100ns: pd.UserTime_100Ns, }, nil default: return nil, errors.Errorf("Unknown process details type %T", pd) } } func prepareBundleDir(bundleDir string, ociSpec *specs.Spec) (string, error) { return bundleDir, nil } func pipeName(containerID, processID, name string) string { return fmt.Sprintf(`\\.\pipe\containerd-%s-%s-%s`, containerID, processID, name) } func newFIFOSet(bundleDir, containerID, processID string, withStdin, withTerminal bool) *containerd.FIFOSet { fifos := &containerd.FIFOSet{ Terminal: withTerminal, Out: pipeName(containerID, processID, "stdout"), } if withStdin { fifos.In = pipeName(containerID, processID, "stdin") } if !fifos.Terminal { fifos.Err = pipeName(containerID, processID, "stderr") } return fifos }