Skip to content

Commit 0b51bf9

Browse files
committed
Move logging code to logging package
This is intended to allow use of the logging package from other sub-packages that currently can't use it because it would introduce import loops. Applications don't need to be changed inmendiately because there are aliases in the main package for the relevant types and functions. Signed-off-by: Juan Hernandez <[email protected]>
1 parent 7045aeb commit 0b51bf9

37 files changed

+232
-56
lines changed

authentication/handler.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -38,14 +38,14 @@ import (
3838
"github.com/dgrijalva/jwt-go"
3939
"github.com/ghodss/yaml"
4040

41-
sdk "github.com/openshift-online/ocm-sdk-go"
4241
"github.com/openshift-online/ocm-sdk-go/errors"
42+
"github.com/openshift-online/ocm-sdk-go/logging"
4343
)
4444

4545
// HandlerBuilder contains the data and logic needed to create a new authentication handler. Don't
4646
// create objects of this type directly, use the NewHandler function instead.
4747
type HandlerBuilder struct {
48-
logger sdk.Logger
48+
logger logging.Logger
4949
publicPaths []string
5050
keysFiles []string
5151
keysURLs []string
@@ -58,7 +58,7 @@ type HandlerBuilder struct {
5858
// Handler is an HTTP handler that checks authentication using the JWT tokens from the authorization
5959
// header.
6060
type Handler struct {
61-
logger sdk.Logger
61+
logger logging.Logger
6262
publicPaths []*regexp.Regexp
6363
tokenParser *jwt.Parser
6464
keysFiles []string
@@ -78,7 +78,7 @@ func NewHandler() *HandlerBuilder {
7878

7979
// Logger sets the logger that the middleware will use to send messages to the log. This is
8080
// mandatory.
81-
func (b *HandlerBuilder) Logger(value sdk.Logger) *HandlerBuilder {
81+
func (b *HandlerBuilder) Logger(value logging.Logger) *HandlerBuilder {
8282
b.logger = value
8383
return b
8484
}

authentication/main_test.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,13 @@ import (
2727
"testing"
2828
"time"
2929

30-
. "github.com/onsi/ginkgo"
31-
. "github.com/onsi/gomega"
32-
"github.com/onsi/gomega/ghttp"
33-
3430
"github.com/dgrijalva/jwt-go"
3531

36-
sdk "github.com/openshift-online/ocm-sdk-go"
32+
"github.com/openshift-online/ocm-sdk-go/logging"
33+
34+
. "github.com/onsi/ginkgo" // nolint
35+
. "github.com/onsi/gomega" // nolint
36+
"github.com/onsi/gomega/ghttp"
3737
)
3838

3939
func TestAuthentication(t *testing.T) {
@@ -46,7 +46,7 @@ var publicKey *rsa.PublicKey
4646
var privateKey *rsa.PrivateKey
4747

4848
// Logger used for tests:
49-
var logger sdk.Logger
49+
var logger logging.Logger
5050

5151
// JSON web key set used for tests:
5252
var keysBytes []byte
@@ -86,7 +86,7 @@ var _ = BeforeSuite(func() {
8686
keysFile = keysFD.Name()
8787

8888
// Create the logger that will be used by all the tests:
89-
logger, err = sdk.NewStdLoggerBuilder().
89+
logger, err = logging.NewStdLoggerBuilder().
9090
Streams(GinkgoWriter, GinkgoWriter).
9191
Debug(true).
9292
Build()

connection.go

+7-6
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import (
3939
"github.com/openshift-online/ocm-sdk-go/authorizations"
4040
"github.com/openshift-online/ocm-sdk-go/clustersmgmt"
4141
"github.com/openshift-online/ocm-sdk-go/configuration"
42+
"github.com/openshift-online/ocm-sdk-go/logging"
4243
"github.com/openshift-online/ocm-sdk-go/servicelogs"
4344
)
4445

@@ -62,7 +63,7 @@ var DefaultScopes = []string{
6263
// function instead.
6364
type ConnectionBuilder struct {
6465
// Basic attributes:
65-
logger Logger
66+
logger logging.Logger
6667
trustedCASources []interface{}
6768
trustedCAPool *x509.CertPool
6869
insecure bool
@@ -97,7 +98,7 @@ type TransportWrapper func(http.RoundTripper) http.RoundTripper
9798
type Connection struct {
9899
// Basic attributes:
99100
closed bool
100-
logger Logger
101+
logger logging.Logger
101102
trustedCAs *x509.CertPool
102103
insecure bool
103104
disableKeepAlives bool
@@ -163,7 +164,7 @@ func NewConnectionBuilder() *ConnectionBuilder {
163164
// can create a logger and pass it to this method. For example:
164165
//
165166
// // Create a logger with the debug level enabled:
166-
// logger, err := client.NewGoLoggerBuilder().
167+
// logger, err := logging.NewGoLoggerBuilder().
167168
// Debug(true).
168169
// Build()
169170
// if err != nil {
@@ -179,7 +180,7 @@ func NewConnectionBuilder() *ConnectionBuilder {
179180
// }
180181
//
181182
// You can also build your own logger, implementing the Logger interface.
182-
func (b *ConnectionBuilder) Logger(logger Logger) *ConnectionBuilder {
183+
func (b *ConnectionBuilder) Logger(logger logging.Logger) *ConnectionBuilder {
183184
if b.err != nil {
184185
return b
185186
}
@@ -668,7 +669,7 @@ func (b *ConnectionBuilder) BuildContext(ctx context.Context) (connection *Conne
668669

669670
// Create the default logger, if needed:
670671
if b.logger == nil {
671-
b.logger, err = NewGoLoggerBuilder().
672+
b.logger, err = logging.NewGoLoggerBuilder().
672673
Debug(false).
673674
Info(true).
674675
Warn(true).
@@ -944,7 +945,7 @@ func (b *ConnectionBuilder) createTransport() (
944945
}
945946

946947
// Logger returns the logger that is used by the connection.
947-
func (c *Connection) Logger() Logger {
948+
func (c *Connection) Logger() logging.Logger {
948949
return c.logger
949950
}
950951

deprecated_logger.go

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
Copyright (c) 2020 Red Hat, Inc.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
// This file contains aliases for the types and functions that have been moved to the logging
18+
// package.
19+
20+
package sdk
21+
22+
import (
23+
"github.com/openshift-online/ocm-sdk-go/logging"
24+
)
25+
26+
// Logger has been moved to the logging package.
27+
type Logger = logging.Logger
28+
29+
// GlogLoggerBuilder has been moved to the logging package.
30+
type GlogLoggerBuilder = logging.GlogLoggerBuilder
31+
32+
// GlogLogger has been moved to the logging package.
33+
type GlogLogger = logging.GlogLogger
34+
35+
// NewGlogLoggerBuilder has been moved to the logging package.
36+
func NewGlogLoggerBuilder() *GlogLoggerBuilder {
37+
return logging.NewGlogLoggerBuilder()
38+
}
39+
40+
// GoLoggerBuilder has been moved to the logging package.
41+
type GoLoggerBuilder = logging.GoLoggerBuilder
42+
43+
// GoLogger has been moved to the logging package.
44+
type GoLogger = logging.GoLogger
45+
46+
// NewGoLoggerBuilder has been moved to the logging package.
47+
func NewGoLoggerBuilder() *GoLoggerBuilder {
48+
return logging.NewGoLoggerBuilder()
49+
}
50+
51+
// StdLoggerBuilder has been moved to the logging package.
52+
type StdLoggerBuilder = logging.StdLoggerBuilder
53+
54+
// StdLogger has been moved to the logging package.
55+
type StdLogger = logging.StdLogger
56+
57+
// NewStdLoggerBuilder has been moved to the logging package.
58+
func NewStdLoggerBuilder() *StdLoggerBuilder {
59+
return logging.NewStdLoggerBuilder()
60+
}

deprecated_logger_test.go

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
/*
2+
Copyright (c) 2020 Red Hat, Inc.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
// This file contains tests for the aliases of the types and functoins that have been
18+
// moved to the logging package.
19+
20+
package sdk
21+
22+
import (
23+
"time"
24+
25+
// Never import the logging package here, as that will defeat the purpuse of
26+
// these tests.
27+
28+
. "github.com/onsi/ginkgo" // nolint
29+
. "github.com/onsi/gomega" // nolint
30+
)
31+
32+
var _ = Describe("Deprecated logging", func() {
33+
Describe("Interface", func() {
34+
It("Can be declared", func() {
35+
var logger Logger
36+
Expect(logger).To(BeNil())
37+
})
38+
})
39+
40+
Describe("Go implementation", func() {
41+
It("Can be created", func() {
42+
var logger Logger
43+
logger, err := NewGoLoggerBuilder().Build()
44+
Expect(err).ToNot(HaveOccurred())
45+
Expect(logger).ToNot(BeNil())
46+
})
47+
})
48+
49+
Describe("Std implementation", func() {
50+
It("Can be created", func() {
51+
var logger Logger
52+
logger, err := NewStdLoggerBuilder().Build()
53+
Expect(err).ToNot(HaveOccurred())
54+
Expect(logger).ToNot(BeNil())
55+
})
56+
})
57+
58+
Describe("Glog implementation", func() {
59+
It("Can be created", func() {
60+
var logger Logger
61+
logger, err := NewGlogLoggerBuilder().Build()
62+
Expect(err).ToNot(HaveOccurred())
63+
Expect(logger).ToNot(BeNil())
64+
})
65+
})
66+
67+
Describe("Connection", func() {
68+
It("Can be created with deprecated logger", func() {
69+
// Create the logger:
70+
var logger Logger
71+
logger, err := NewGoLoggerBuilder().Build()
72+
Expect(err).ToNot(HaveOccurred())
73+
Expect(logger).ToNot(BeNil())
74+
75+
// Create the connection:
76+
token := DefaultToken("Bearer", 5*time.Minute)
77+
connection, err := NewConnectionBuilder().
78+
Logger(logger).
79+
Tokens(token).
80+
Build()
81+
Expect(err).ToNot(HaveOccurred())
82+
defer func() {
83+
err = connection.Close()
84+
Expect(err).ToNot(HaveOccurred())
85+
}()
86+
Expect(connection).ToNot(BeNil())
87+
})
88+
})
89+
})

dump.go

+3-1
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,14 @@ import (
3131
"strings"
3232

3333
"gitlab.com/c0b/go-ordered-json"
34+
35+
"github.com/openshift-online/ocm-sdk-go/logging"
3436
)
3537

3638
// dumpRoundTripper is a round tripper that dumps the details of the requests and the responses to
3739
// the log.
3840
type dumpRoundTripper struct {
39-
logger Logger
41+
logger logging.Logger
4042
next http.RoundTripper
4143
}
4244

examples/client_credentials_grant.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,15 @@ import (
2626

2727
sdk "github.com/openshift-online/ocm-sdk-go"
2828
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
29+
"github.com/openshift-online/ocm-sdk-go/logging"
2930
)
3031

3132
func main() {
3233
// Create a context:
3334
ctx := context.Background()
3435

3536
// Create a logger that has the debug level enabled:
36-
logger, err := sdk.NewGoLoggerBuilder().
37+
logger, err := logging.NewGoLoggerBuilder().
3738
Debug(true).
3839
Build()
3940
if err != nil {

examples/create_cluster.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ import (
2323

2424
sdk "github.com/openshift-online/ocm-sdk-go"
2525
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
26+
"github.com/openshift-online/ocm-sdk-go/logging"
2627
)
2728

2829
func main() {
2930
// Create a context:
3031
ctx := context.Background()
3132

3233
// Create a logger that has the debug level enabled:
33-
logger, err := sdk.NewGoLoggerBuilder().
34+
logger, err := logging.NewGoLoggerBuilder().
3435
Debug(true).
3536
Build()
3637
if err != nil {

examples/create_syncset.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626

2727
sdk "github.com/openshift-online/ocm-sdk-go"
2828
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
29+
"github.com/openshift-online/ocm-sdk-go/logging"
2930
corev1 "k8s.io/api/core/v1"
3031
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
3132
)
@@ -35,7 +36,7 @@ func main() {
3536
ctx := context.Background()
3637

3738
// Create a logger that has the debug level enabled:
38-
logger, err := sdk.NewGoLoggerBuilder().
39+
logger, err := logging.NewGoLoggerBuilder().
3940
Debug(true).
4041
Build()
4142
if err != nil {

examples/delete_cluster.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ import (
2424
"os"
2525

2626
sdk "github.com/openshift-online/ocm-sdk-go"
27+
"github.com/openshift-online/ocm-sdk-go/logging"
2728
)
2829

2930
func main() {
3031
// Create a context:
3132
ctx := context.Background()
3233

3334
// Create a logger that has the debug level enabled:
34-
logger, err := sdk.NewGoLoggerBuilder().
35+
logger, err := logging.NewGoLoggerBuilder().
3536
Debug(true).
3637
Build()
3738
if err != nil {

examples/delete_subscription.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ import (
2424
"os"
2525

2626
sdk "github.com/openshift-online/ocm-sdk-go"
27+
"github.com/openshift-online/ocm-sdk-go/logging"
2728
)
2829

2930
func main() {
3031
// Create a context:
3132
ctx := context.Background()
3233

3334
// Create a logger that has the debug level enabled:
34-
logger, err := sdk.NewGoLoggerBuilder().
35+
logger, err := logging.NewGoLoggerBuilder().
3536
Debug(true).
3637
Build()
3738
if err != nil {

0 commit comments

Comments
 (0)