From 6b59b425e22eb9a162918d348074cd8c6db54a63 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Mon, 1 Jul 2019 13:32:37 -0700 Subject: [PATCH 1/2] 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 From 46af8ccd2d44a26fbad7aa93fd41e88cb122c741 Mon Sep 17 00:00:00 2001 From: Maksym Pavlenko Date: Tue, 2 Jul 2019 09:53:11 -0700 Subject: [PATCH 2/2] Check exec log flags compatibility Signed-off-by: Maksym Pavlenko --- cmd/ctr/commands/tasks/exec.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/cmd/ctr/commands/tasks/exec.go b/cmd/ctr/commands/tasks/exec.go index 2da9ad2e2..887ceee54 100644 --- a/cmd/ctr/commands/tasks/exec.go +++ b/cmd/ctr/commands/tasks/exec.go @@ -98,6 +98,15 @@ var execCommand = cli.Command{ if err != nil { return err } + + if dir := context.String("fifo-dir"); dir != "" { + return errors.New("can't use log-uri with fifo-dir") + } + + if tty { + return errors.New("can't use log-uri with tty") + } + ioCreator = cio.LogURI(uri) } else { cioOpts := []cio.Opt{cio.WithStdio, cio.WithFIFODir(context.String("fifo-dir"))}