From 6b59b425e22eb9a162918d348074cd8c6db54a63 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Mon, 1 Jul 2019 13:32:37 -0700 Subject: [PATCH] Support --log-uri for exec subcommand Signed-off-by: Maksym Pavlenko --- cmd/ctr/commands/tasks/exec.go | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/cmd/ctr/commands/tasks/exec.go b/cmd/ctr/commands/tasks/exec.go index 59f5bdef9..2da9ad2e2 100644 --- a/cmd/ctr/commands/tasks/exec.go +++ b/cmd/ctr/commands/tasks/exec.go @@ -18,6 +18,7 @@ package tasks import ( "errors" + "net/url" "github.com/containerd/console" "github.com/containerd/containerd/cio" @@ -53,6 +54,10 @@ var execCommand = cli.Command{ Name: "fifo-dir", Usage: "directory used for storing IO FIFOs", }, + cli.StringFlag{ + Name: "log-uri", + Usage: "log uri for custom shim logging", + }, }, Action: func(context *cli.Context) error { var ( @@ -86,11 +91,22 @@ var execCommand = cli.Command{ pspec.Terminal = tty pspec.Args = args - cioOpts := []cio.Opt{cio.WithStdio, cio.WithFIFODir(context.String("fifo-dir"))} - if tty { - cioOpts = append(cioOpts, cio.WithTerminal) + var ioCreator cio.Creator + + if logURI := context.String("log-uri"); logURI != "" { + uri, err := url.Parse(logURI) + if err != nil { + return err + } + ioCreator = cio.LogURI(uri) + } else { + cioOpts := []cio.Opt{cio.WithStdio, cio.WithFIFODir(context.String("fifo-dir"))} + if tty { + cioOpts = append(cioOpts, cio.WithTerminal) + } + ioCreator = cio.NewCreator(cioOpts...) } - ioCreator := cio.NewCreator(cioOpts...) + process, err := task.Exec(ctx, context.String("exec-id"), pspec, ioCreator) if err != nil { return err