Do not touch grpc logger from within the packages

Libraries should not make process wide changes unless requested to.

Signed-off-by: Kenfe-Mickael Laventure <mickael.laventure@gmail.com>
This commit is contained in:
Kenfe-Mickael Laventure 2017-08-04 09:45:09 -07:00
parent 7e0063320c
commit 16f6e0944a
No known key found for this signature in database
GPG Key ID: 40CF16616B361216
7 changed files with 20 additions and 20 deletions

View File

@ -4,8 +4,6 @@ import (
"context" "context"
"fmt" "fmt"
"io" "io"
"io/ioutil"
"log"
"net/http" "net/http"
"runtime" "runtime"
"strconv" "strconv"
@ -43,14 +41,10 @@ import (
specs "github.com/opencontainers/runtime-spec/specs-go" specs "github.com/opencontainers/runtime-spec/specs-go"
"github.com/pkg/errors" "github.com/pkg/errors"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/grpclog"
"google.golang.org/grpc/health/grpc_health_v1" "google.golang.org/grpc/health/grpc_health_v1"
) )
func init() { func init() {
// reset the grpc logger so that it does not output in the STDIO of the calling process
grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags))
// register TypeUrls for commonly marshaled external types // register TypeUrls for commonly marshaled external types
major := strconv.Itoa(specs.VersionMajor) major := strconv.Itoa(specs.VersionMajor)
typeurl.Register(&specs.Spec{}, "opencontainers/runtime-spec", major, "Spec") typeurl.Register(&specs.Spec{}, "opencontainers/runtime-spec", major, "Spec")

View File

@ -5,6 +5,8 @@ import (
"context" "context"
"flag" "flag"
"fmt" "fmt"
"io/ioutil"
golog "log"
"os" "os"
"os/exec" "os/exec"
"runtime" "runtime"
@ -12,6 +14,8 @@ import (
"testing" "testing"
"time" "time"
"google.golang.org/grpc/grpclog"
"github.com/containerd/containerd/log" "github.com/containerd/containerd/log"
"github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/namespaces"
"github.com/containerd/containerd/testutil" "github.com/containerd/containerd/testutil"
@ -26,6 +30,9 @@ var (
) )
func init() { func init() {
// Discard grpc logs so that they don't mess with our stdio
grpclog.SetLogger(golog.New(ioutil.Discard, "", golog.LstdFlags))
flag.StringVar(&address, "address", defaultAddress, "The address to the containerd socket for use in the tests") flag.StringVar(&address, "address", defaultAddress, "The address to the containerd socket for use in the tests")
flag.BoolVar(&noDaemon, "no-daemon", false, "Do not start a dedicated daemon for the tests") flag.BoolVar(&noDaemon, "no-daemon", false, "Do not start a dedicated daemon for the tests")
flag.BoolVar(&noCriu, "no-criu", false, "Do not run the checkpoint tests") flag.BoolVar(&noCriu, "no-criu", false, "Do not run the checkpoint tests")

View File

@ -3,12 +3,16 @@ package main
import ( import (
"context" "context"
"fmt" "fmt"
"io/ioutil"
golog "log"
"net" "net"
"os" "os"
"os/signal" "os/signal"
"runtime" "runtime"
"time" "time"
"google.golang.org/grpc/grpclog"
gocontext "golang.org/x/net/context" gocontext "golang.org/x/net/context"
"github.com/containerd/containerd/log" "github.com/containerd/containerd/log"
@ -31,6 +35,9 @@ high performance container runtime
` `
func init() { func init() {
// Discard grpc logs so that they don't mess with our stdio
grpclog.SetLogger(golog.New(ioutil.Discard, "", golog.LstdFlags))
cli.VersionPrinter = func(c *cli.Context) { cli.VersionPrinter = func(c *cli.Context) {
fmt.Println(c.App.Name, version.Package, c.App.Version) fmt.Println(c.App.Name, version.Package, c.App.Version)
} }

View File

@ -2,6 +2,8 @@ package main
import ( import (
"fmt" "fmt"
"io/ioutil"
"log"
"os" "os"
"github.com/containerd/containerd/namespaces" "github.com/containerd/containerd/namespaces"
@ -9,11 +11,15 @@ import (
"github.com/containerd/containerd/version" "github.com/containerd/containerd/version"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/urfave/cli" "github.com/urfave/cli"
"google.golang.org/grpc/grpclog"
) )
var extraCmds = []cli.Command{} var extraCmds = []cli.Command{}
func init() { func init() {
// Discard grpc logs so that they don't mess with our stdio
grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags))
cli.VersionPrinter = func(c *cli.Context) { cli.VersionPrinter = func(c *cli.Context) {
fmt.Println(c.App.Name, version.Package, c.App.Version) fmt.Println(c.App.Name, version.Package, c.App.Version)
} }

View File

@ -7,7 +7,6 @@ import (
"encoding/json" "encoding/json"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"log"
"net" "net"
"os" "os"
"time" "time"
@ -15,7 +14,6 @@ import (
gocontext "context" gocontext "context"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/grpclog"
"github.com/containerd/console" "github.com/containerd/console"
shim "github.com/containerd/containerd/linux/shim/v1" shim "github.com/containerd/containerd/linux/shim/v1"
@ -305,8 +303,6 @@ func getShimService(context *cli.Context) (shim.ShimClient, error) {
return nil, errors.New("socket path must be specified") return nil, errors.New("socket path must be specified")
} }
// reset the logger for grpc to log to dev/null so that it does not mess with our stdio
grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags))
dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)}
dialOpts = append(dialOpts, dialOpts = append(dialOpts,
grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {

View File

@ -6,8 +6,6 @@ import (
gocontext "context" gocontext "context"
"fmt" "fmt"
"io" "io"
"io/ioutil"
"log"
"net" "net"
"os" "os"
"sync" "sync"
@ -18,7 +16,6 @@ import (
"github.com/pkg/errors" "github.com/pkg/errors"
"github.com/urfave/cli" "github.com/urfave/cli"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/grpclog"
) )
func prepareStdio(stdin, stdout, stderr string, console bool) (wg *sync.WaitGroup, err error) { func prepareStdio(stdin, stdout, stderr string, console bool) (wg *sync.WaitGroup, err error) {
@ -82,8 +79,6 @@ func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) {
} }
bindSocket := context.GlobalString("address") bindSocket := context.GlobalString("address")
// reset the logger for grpc to log to dev/null so that it does not mess with our stdio
grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags))
dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)}
dialOpts = append(dialOpts, dialOpts = append(dialOpts,
grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {

View File

@ -2,8 +2,6 @@ package main
import ( import (
"io" "io"
"io/ioutil"
"log"
"net" "net"
"os" "os"
"sync" "sync"
@ -16,7 +14,6 @@ import (
"github.com/urfave/cli" "github.com/urfave/cli"
"golang.org/x/sys/windows" "golang.org/x/sys/windows"
"google.golang.org/grpc" "google.golang.org/grpc"
"google.golang.org/grpc/grpclog"
) )
func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) { func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) {
@ -25,8 +22,6 @@ func getGRPCConnection(context *cli.Context) (*grpc.ClientConn, error) {
} }
bindAddress := context.GlobalString("address") bindAddress := context.GlobalString("address")
// reset the logger for grpc to log to dev/null so that it does not mess with our stdio
grpclog.SetLogger(log.New(ioutil.Discard, "", log.LstdFlags))
dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)} dialOpts := []grpc.DialOption{grpc.WithInsecure(), grpc.WithTimeout(100 * time.Second)}
dialOpts = append(dialOpts, dialOpts = append(dialOpts,
grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) { grpc.WithDialer(func(addr string, timeout time.Duration) (net.Conn, error) {