Merge pull request #4529 from gongguan/creator

avoid unnecessary NewCreator calls
This commit is contained in:
Phil Estes 2020-09-21 13:33:51 -04:00 committed by GitHub
commit 534be84c5d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -72,7 +72,6 @@ func NewTask(ctx gocontext.Context, client *containerd.Client, container contain
stdinC := &stdinCloser{ stdinC := &stdinCloser{
stdin: os.Stdin, stdin: os.Stdin,
} }
stdio := cio.NewCreator(append([]cio.Opt{cio.WithStreams(stdinC, os.Stdout, os.Stderr)}, ioOpts...)...)
if checkpoint != "" { if checkpoint != "" {
im, err := client.GetImage(ctx, checkpoint) im, err := client.GetImage(ctx, checkpoint)
if err != nil { if err != nil {
@ -80,22 +79,22 @@ func NewTask(ctx gocontext.Context, client *containerd.Client, container contain
} }
opts = append(opts, containerd.WithTaskCheckpoint(im)) opts = append(opts, containerd.WithTaskCheckpoint(im))
} }
ioCreator := stdio var ioCreator cio.Creator
if con != nil { if con != nil {
ioCreator = cio.NewCreator(append([]cio.Opt{cio.WithStreams(con, con, nil), cio.WithTerminal}, ioOpts...)...)
}
if nullIO { if nullIO {
if con != nil {
return nil, errors.New("tty and null-io cannot be used together") return nil, errors.New("tty and null-io cannot be used together")
} }
ioCreator = cio.NewCreator(append([]cio.Opt{cio.WithStreams(con, con, nil), cio.WithTerminal}, ioOpts...)...)
} else if nullIO {
ioCreator = cio.NullIO ioCreator = cio.NullIO
} } else if logURI != "" {
if logURI != "" {
u, err := url.Parse(logURI) u, err := url.Parse(logURI)
if err != nil { if err != nil {
return nil, err return nil, err
} }
ioCreator = cio.LogURI(u) ioCreator = cio.LogURI(u)
} else {
ioCreator = cio.NewCreator(append([]cio.Opt{cio.WithStreams(stdinC, os.Stdout, os.Stderr)}, ioOpts...)...)
} }
t, err := container.NewTask(ctx, ioCreator, opts...) t, err := container.NewTask(ctx, ioCreator, opts...)
if err != nil { if err != nil {