Add logger interface and stop relying on Logrus directly
This commit is contained in:
@@ -6,8 +6,8 @@ import (
|
||||
"github.com/coreos/etcd/clientv3"
|
||||
"github.com/coreos/etcd/clientv3/namespace"
|
||||
"github.com/coreos/etcd/pkg/transport"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
)
|
||||
|
||||
@@ -36,11 +36,11 @@ type Etcd struct {
|
||||
}
|
||||
|
||||
// Open creates a new storage implementation backed by Etcd
|
||||
func (p *Etcd) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
func (p *Etcd) Open(logger log.Logger) (storage.Storage, error) {
|
||||
return p.open(logger)
|
||||
}
|
||||
|
||||
func (p *Etcd) open(logger logrus.FieldLogger) (*conn, error) {
|
||||
func (p *Etcd) open(logger log.Logger) (*conn, error) {
|
||||
cfg := clientv3.Config{
|
||||
Endpoints: p.Endpoints,
|
||||
DialTimeout: defaultDialTimeout,
|
||||
|
@@ -8,8 +8,8 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/coreos/etcd/clientv3"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
)
|
||||
|
||||
@@ -29,7 +29,7 @@ const (
|
||||
|
||||
type conn struct {
|
||||
db *clientv3.Client
|
||||
logger logrus.FieldLogger
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
func (c *conn) Close() error {
|
||||
|
@@ -3,6 +3,7 @@ package etcd
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"os"
|
||||
"runtime"
|
||||
"strings"
|
||||
@@ -53,11 +54,11 @@ func cleanDB(c *conn) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
var logger = &logrus.Logger{
|
||||
var logger = log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
|
||||
func TestEtcd(t *testing.T) {
|
||||
testEtcdEnv := "DEX_ETCD_ENDPOINTS"
|
||||
|
@@ -24,9 +24,9 @@ import (
|
||||
|
||||
"github.com/ghodss/yaml"
|
||||
"github.com/gtank/cryptopasta"
|
||||
"github.com/sirupsen/logrus"
|
||||
"golang.org/x/net/http2"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/storage/kubernetes/k8sapi"
|
||||
)
|
||||
@@ -35,7 +35,7 @@ type client struct {
|
||||
client *http.Client
|
||||
baseURL string
|
||||
namespace string
|
||||
logger logrus.FieldLogger
|
||||
logger log.Logger
|
||||
|
||||
// Hash function to map IDs (which could span a large range) to Kubernetes names.
|
||||
// While this is not currently upgradable, it could be in the future.
|
||||
@@ -253,7 +253,7 @@ func (c *client) put(resource, name string, v interface{}) error {
|
||||
return checkHTTPErr(resp, http.StatusOK)
|
||||
}
|
||||
|
||||
func newClient(cluster k8sapi.Cluster, user k8sapi.AuthInfo, namespace string, logger logrus.FieldLogger, useTPR bool) (*client, error) {
|
||||
func newClient(cluster k8sapi.Cluster, user k8sapi.AuthInfo, namespace string, logger log.Logger, useTPR bool) (*client, error) {
|
||||
tlsConfig := cryptopasta.DefaultTLSConfig()
|
||||
data := func(b string, file string) ([]byte, error) {
|
||||
if b != "" {
|
||||
|
@@ -7,8 +7,7 @@ import (
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/storage/kubernetes/k8sapi"
|
||||
)
|
||||
@@ -43,7 +42,7 @@ type Config struct {
|
||||
}
|
||||
|
||||
// Open returns a storage using Kubernetes third party resource.
|
||||
func (c *Config) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
func (c *Config) Open(logger log.Logger) (storage.Storage, error) {
|
||||
cli, err := c.open(logger, false)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -56,7 +55,7 @@ func (c *Config) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
//
|
||||
// waitForResources controls if errors creating the resources cause this method to return
|
||||
// immediately (used during testing), or if the client will asynchronously retry.
|
||||
func (c *Config) open(logger logrus.FieldLogger, waitForResources bool) (*client, error) {
|
||||
func (c *Config) open(logger log.Logger, waitForResources bool) (*client, error) {
|
||||
if c.InCluster && (c.KubeConfigFile != "") {
|
||||
return nil, errors.New("cannot specify both 'inCluster' and 'kubeConfigFile'")
|
||||
}
|
||||
|
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/storage/conformance"
|
||||
)
|
||||
@@ -24,11 +25,11 @@ func loadClient(t *testing.T) *client {
|
||||
if config.KubeConfigFile == "" {
|
||||
t.Skipf("test environment variable %q not set, skipping", testKubeConfigEnv)
|
||||
}
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
s, err := config.open(logger, true)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
|
@@ -6,13 +6,12 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
)
|
||||
|
||||
// New returns an in memory storage.
|
||||
func New(logger logrus.FieldLogger) storage.Storage {
|
||||
func New(logger log.Logger) storage.Storage {
|
||||
return &memStorage{
|
||||
clients: make(map[string]storage.Client),
|
||||
authCodes: make(map[string]storage.AuthCode),
|
||||
@@ -33,7 +32,7 @@ type Config struct {
|
||||
}
|
||||
|
||||
// Open always returns a new in memory storage.
|
||||
func (c *Config) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
func (c *Config) Open(logger log.Logger) (storage.Storage, error) {
|
||||
return New(logger), nil
|
||||
}
|
||||
|
||||
@@ -50,7 +49,7 @@ type memStorage struct {
|
||||
|
||||
keys storage.Keys
|
||||
|
||||
logger logrus.FieldLogger
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
type offlineSessionID struct {
|
||||
|
@@ -6,16 +6,17 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/storage/conformance"
|
||||
)
|
||||
|
||||
func TestStorage(t *testing.T) {
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
|
||||
newStorage := func() storage.Storage {
|
||||
return New(logger)
|
||||
|
@@ -8,15 +8,16 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
)
|
||||
|
||||
func TestStaticClients(t *testing.T) {
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
backing := New(logger)
|
||||
|
||||
c1 := storage.Client{ID: "foo", Secret: "foo_secret"}
|
||||
@@ -99,11 +100,11 @@ func TestStaticClients(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStaticPasswords(t *testing.T) {
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
backing := New(logger)
|
||||
|
||||
p1 := storage.Password{Email: "foo@example.com", Username: "foo_secret"}
|
||||
@@ -211,11 +212,11 @@ func TestStaticPasswords(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestStaticConnectors(t *testing.T) {
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
backing := New(logger)
|
||||
|
||||
config1 := []byte(`{"issuer": "https://accounts.google.com"}`)
|
||||
|
@@ -11,8 +11,8 @@ import (
|
||||
|
||||
"github.com/lib/pq"
|
||||
sqlite3 "github.com/mattn/go-sqlite3"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
)
|
||||
|
||||
@@ -28,7 +28,7 @@ type SQLite3 struct {
|
||||
}
|
||||
|
||||
// Open creates a new storage implementation backed by SQLite3
|
||||
func (s *SQLite3) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
func (s *SQLite3) Open(logger log.Logger) (storage.Storage, error) {
|
||||
conn, err := s.open(logger)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -36,7 +36,7 @@ func (s *SQLite3) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
return conn, nil
|
||||
}
|
||||
|
||||
func (s *SQLite3) open(logger logrus.FieldLogger) (*conn, error) {
|
||||
func (s *SQLite3) open(logger log.Logger) (*conn, error) {
|
||||
db, err := sql.Open("sqlite3", s.File)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -99,7 +99,7 @@ type Postgres struct {
|
||||
}
|
||||
|
||||
// Open creates a new storage implementation backed by Postgres.
|
||||
func (p *Postgres) Open(logger logrus.FieldLogger) (storage.Storage, error) {
|
||||
func (p *Postgres) Open(logger log.Logger) (storage.Storage, error) {
|
||||
conn, err := p.open(logger, p.createDataSourceName())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@@ -179,7 +179,7 @@ func (p *Postgres) createDataSourceName() string {
|
||||
return strings.Join(parameters, " ")
|
||||
}
|
||||
|
||||
func (p *Postgres) open(logger logrus.FieldLogger, dataSourceName string) (*conn, error) {
|
||||
func (p *Postgres) open(logger log.Logger, dataSourceName string) (*conn, error) {
|
||||
db, err := sql.Open("postgres", dataSourceName)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@@ -9,6 +9,7 @@ import (
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"github.com/dexidp/dex/storage"
|
||||
"github.com/dexidp/dex/storage/conformance"
|
||||
)
|
||||
@@ -43,11 +44,11 @@ func cleanDB(c *conn) error {
|
||||
return err
|
||||
}
|
||||
|
||||
var logger = &logrus.Logger{
|
||||
var logger = log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
|
||||
func TestSQLite3(t *testing.T) {
|
||||
newStorage := func() storage.Storage {
|
||||
|
@@ -7,6 +7,8 @@ import (
|
||||
|
||||
sqlite3 "github.com/mattn/go-sqlite3"
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
)
|
||||
|
||||
func TestMigrate(t *testing.T) {
|
||||
@@ -16,11 +18,11 @@ func TestMigrate(t *testing.T) {
|
||||
}
|
||||
defer db.Close()
|
||||
|
||||
logger := &logrus.Logger{
|
||||
logger := log.NewLogrusLogger(&logrus.Logger{
|
||||
Out: os.Stderr,
|
||||
Formatter: &logrus.TextFormatter{DisableColors: true},
|
||||
Level: logrus.DebugLevel,
|
||||
}
|
||||
})
|
||||
|
||||
errCheck := func(err error) bool {
|
||||
sqlErr, ok := err.(sqlite3.Error)
|
||||
|
@@ -3,11 +3,10 @@ package sql
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
"regexp"
|
||||
"time"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
// import third party drivers
|
||||
_ "github.com/lib/pq"
|
||||
_ "github.com/mattn/go-sqlite3"
|
||||
@@ -113,7 +112,7 @@ func (c *conn) translateArgs(args []interface{}) []interface{} {
|
||||
type conn struct {
|
||||
db *sql.DB
|
||||
flavor flavor
|
||||
logger logrus.FieldLogger
|
||||
logger log.Logger
|
||||
alreadyExistsCheck func(err error) bool
|
||||
}
|
||||
|
||||
|
@@ -4,7 +4,7 @@ import (
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
"github.com/dexidp/dex/pkg/log"
|
||||
)
|
||||
|
||||
// Tests for this code are in the "memory" package, since this package doesn't
|
||||
@@ -89,11 +89,11 @@ type staticPasswordsStorage struct {
|
||||
// A map of passwords that is indexed by lower-case email ids
|
||||
passwordsByEmail map[string]Password
|
||||
|
||||
logger logrus.FieldLogger
|
||||
logger log.Logger
|
||||
}
|
||||
|
||||
// WithStaticPasswords returns a storage with a read-only set of passwords.
|
||||
func WithStaticPasswords(s Storage, staticPasswords []Password, logger logrus.FieldLogger) Storage {
|
||||
func WithStaticPasswords(s Storage, staticPasswords []Password, logger log.Logger) Storage {
|
||||
passwordsByEmail := make(map[string]Password, len(staticPasswords))
|
||||
for _, p := range staticPasswords {
|
||||
//Enable case insensitive email comparison.
|
||||
|
Reference in New Issue
Block a user