Use new cio package.

Signed-off-by: Lantao Liu <lantaol@google.com>
This commit is contained in:
Lantao Liu 2018-01-12 22:35:24 +00:00
parent b07017b93e
commit cdb1bf0946
3 changed files with 10 additions and 30 deletions

View File

@ -19,7 +19,6 @@ package io
import (
"errors"
"io"
"os"
"strings"
"sync"
@ -116,12 +115,7 @@ func NewContainerIO(id string, opts ...ContainerIOOpts) (_ *ContainerIO, err err
// Config returns io config.
func (c *ContainerIO) Config() cio.Config {
return cio.Config{
Terminal: c.fifos.Terminal,
Stdin: c.fifos.In,
Stdout: c.fifos.Out,
Stderr: c.fifos.Err,
}
return c.fifos.Config
}
// Pipe creates container fifos and pipe container output
@ -239,7 +233,7 @@ func (c *ContainerIO) Wait() {
func (c *ContainerIO) Close() error {
c.closer.Close()
if c.fifos != nil {
return os.RemoveAll(c.fifos.Dir)
return c.fifos.Close()
}
return nil
}

View File

@ -18,7 +18,6 @@ package io
import (
"io"
"os"
"sync"
"github.com/containerd/containerd/cio"
@ -57,12 +56,7 @@ func NewExecIO(id, root string, tty, stdin bool) (*ExecIO, error) {
// Config returns io config.
func (e *ExecIO) Config() cio.Config {
return cio.Config{
Terminal: e.fifos.Terminal,
Stdin: e.fifos.In,
Stdout: e.fifos.Out,
Stderr: e.fifos.Err,
}
return e.fifos.Config
}
// Attach attaches exec stdio. The logic is similar with container io attach.
@ -146,7 +140,7 @@ func (e *ExecIO) Close() error {
e.closer.Close()
}
if e.fifos != nil {
return os.RemoveAll(e.fifos.Dir)
return e.fifos.Close()
}
return nil
}

View File

@ -18,7 +18,6 @@ package io
import (
"io"
"io/ioutil"
"os"
"path/filepath"
"sync"
@ -80,19 +79,12 @@ func newFifos(root, id string, tty, stdin bool) (*cio.FIFOSet, error) {
if err := os.MkdirAll(root, 0700); err != nil {
return nil, err
}
dir, err := ioutil.TempDir(root, "")
fifos, err := cio.NewFIFOSetInDir(root, id, tty)
if err != nil {
return nil, err
}
fifos := &cio.FIFOSet{
Dir: dir,
In: filepath.Join(dir, id+"-stdin"),
Out: filepath.Join(dir, id+"-stdout"),
Err: filepath.Join(dir, id+"-stderr"),
Terminal: tty,
}
if !stdin {
fifos.In = ""
fifos.Stdin = ""
}
return fifos, nil
}
@ -120,21 +112,21 @@ func newStdioPipes(fifos *cio.FIFOSet) (_ *stdioPipes, _ *wgCloser, err error) {
}
}()
if fifos.In != "" {
if f, err = fifo.OpenFifo(ctx, fifos.In, syscall.O_WRONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
if fifos.Stdin != "" {
if f, err = fifo.OpenFifo(ctx, fifos.Stdin, syscall.O_WRONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
return nil, nil, err
}
p.stdin = f
set = append(set, f)
}
if f, err = fifo.OpenFifo(ctx, fifos.Out, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
if f, err = fifo.OpenFifo(ctx, fifos.Stdout, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
return nil, nil, err
}
p.stdout = f
set = append(set, f)
if f, err = fifo.OpenFifo(ctx, fifos.Err, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
if f, err = fifo.OpenFifo(ctx, fifos.Stderr, syscall.O_RDONLY|syscall.O_CREAT|syscall.O_NONBLOCK, 0700); err != nil {
return nil, nil, err
}
p.stderr = f