12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- package libcontainerd
- import (
- "fmt"
- "path/filepath"
- "github.com/containerd/containerd/cio"
- "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, processID string, withStdin, withTerminal bool) *cio.FIFOSet {
- containerID := filepath.Base(bundleDir)
- config := cio.Config{
- Terminal: withTerminal,
- Stdout: pipeName(containerID, processID, "stdout"),
- }
- if withStdin {
- config.Stdin = pipeName(containerID, processID, "stdin")
- }
- if !config.Terminal {
- config.Stderr = pipeName(containerID, processID, "stderr")
- }
- return cio.NewFIFOSet(config, nil)
- }
|