Skip to content

Commit 86b0ca6

Browse files
committed
fixed linter
On-behalf-of: @SAP [email protected] Signed-off-by: Artem Shcherbatiuk <[email protected]>
1 parent 4020b02 commit 86b0ca6

24 files changed

+122
-100
lines changed

cmd/gateway.go

Lines changed: 1 addition & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@ import (
1414
"github.com/spf13/cobra"
1515
ctrl "sigs.k8s.io/controller-runtime"
1616

17-
"github.com/openmfp/golang-commons/logger"
18-
1917
"github.com/openmfp/kubernetes-graphql-gateway/gateway/manager"
2018
)
2119

@@ -24,12 +22,7 @@ var gatewayCmd = &cobra.Command{
2422
Short: "Run the GQL Gateway",
2523
Example: "go run main.go gateway",
2624
RunE: func(_ *cobra.Command, _ []string) error {
27-
log, err := setupLogger(defaultCfg.Log.Level)
28-
if err != nil {
29-
return fmt.Errorf("failed to setup logger: %w", err)
30-
}
31-
32-
log.Info().Str("LogLevel", log.GetLevel().String()).Msg("Starting server...")
25+
log.Info().Str("LogLevel", log.GetLevel().String()).Msg("Starting the Gateway...")
3326

3427
ctx, _, shutdown := openmfpcontext.StartContext(log, appCfg, 1*time.Second)
3528
defer shutdown()
@@ -127,11 +120,3 @@ var gatewayCmd = &cobra.Command{
127120
return nil
128121
},
129122
}
130-
131-
// setupLogger initializes the logger with the given log level
132-
func setupLogger(logLevel string) (*logger.Logger, error) {
133-
loggerCfg := logger.DefaultConfig()
134-
loggerCfg.Name = "crdGateway"
135-
loggerCfg.Level = logLevel
136-
return logger.New(loggerCfg)
137-
}

cmd/listener.go

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ import (
2121
"sigs.k8s.io/controller-runtime/pkg/webhook"
2222

2323
gatewayv1alpha1 "github.com/openmfp/kubernetes-graphql-gateway/common/apis/v1alpha1"
24+
"github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema"
25+
"github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/workspacefile"
2426
"github.com/openmfp/kubernetes-graphql-gateway/listener/reconciler"
2527
"github.com/openmfp/kubernetes-graphql-gateway/listener/reconciler/clusteraccess"
2628
"github.com/openmfp/kubernetes-graphql-gateway/listener/reconciler/kcp"
@@ -74,6 +76,8 @@ var listenCmd = &cobra.Command{
7476
}
7577
},
7678
Run: func(cmd *cobra.Command, args []string) {
79+
log.Info().Str("LogLevel", log.GetLevel().String()).Msg("Starting the Listener...")
80+
7781
ctx := ctrl.SetupSignalHandler()
7882
restCfg := ctrl.GetConfigOrDie()
7983

@@ -105,7 +109,7 @@ var listenCmd = &cobra.Command{
105109
// Create the appropriate reconciler based on configuration
106110
var reconcilerInstance reconciler.CustomReconciler
107111
if appCfg.EnableKcp {
108-
kcpReconciler, err := kcp.NewKCPReconciler(appCfg, reconcilerOpts, *log)
112+
kcpReconciler, err := kcp.NewKCPReconciler(appCfg, reconcilerOpts, log)
109113
if err != nil {
110114
log.Error().Err(err).Msg("unable to create KCP reconciler")
111115
os.Exit(1)
@@ -123,7 +127,13 @@ var listenCmd = &cobra.Command{
123127

124128
reconcilerInstance = kcpReconciler
125129
} else {
126-
reconcilerInstance, err = clusteraccess.NewClusterAccessReconciler(ctx, appCfg, reconcilerOpts, nil, nil, *log)
130+
ioHandler, err := workspacefile.NewIOHandler(appCfg.OpenApiDefinitionsPath)
131+
if err != nil {
132+
log.Error().Err(err).Msg("unable to create IO handler")
133+
os.Exit(1)
134+
}
135+
136+
reconcilerInstance, err = clusteraccess.NewClusterAccessReconciler(ctx, appCfg, reconcilerOpts, ioHandler, apischema.NewResolver(log), log)
127137
if err != nil {
128138
log.Error().Err(err).Msg("unable to create cluster access reconciler")
129139
os.Exit(1)

cmd/root.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,14 @@ func initConfig() {
8181
v.SetDefault("gateway-url-graphql-suffix", "graphql")
8282
}
8383

84+
// setupLogger initializes the logger with the given log level
85+
func setupLogger(logLevel string) (*logger.Logger, error) {
86+
loggerCfg := logger.DefaultConfig()
87+
loggerCfg.Name = "crdGateway"
88+
loggerCfg.Level = logLevel
89+
return logger.New(loggerCfg)
90+
}
91+
8492
func Execute() {
8593
cobra.CheckErr(rootCmd.Execute())
8694
}

listener/pkg/apischema/builder.go

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,16 +35,10 @@ var (
3535
type SchemaBuilder struct {
3636
schemas map[string]*spec.Schema
3737
err *multierror.Error
38-
log logger.Logger
38+
log *logger.Logger
3939
}
4040

41-
func NewSchemaBuilder(oc openapi.Client, preferredApiGroups []string) *SchemaBuilder {
42-
// Create a default logger if none provided
43-
defaultLogPtr, _ := logger.New(logger.DefaultConfig())
44-
return NewSchemaBuilderWithLogger(oc, preferredApiGroups, *defaultLogPtr)
45-
}
46-
47-
func NewSchemaBuilderWithLogger(oc openapi.Client, preferredApiGroups []string, log logger.Logger) *SchemaBuilder {
41+
func NewSchemaBuilder(oc openapi.Client, preferredApiGroups []string, log *logger.Logger) *SchemaBuilder {
4842
b := &SchemaBuilder{
4943
schemas: make(map[string]*spec.Schema),
5044
log: log,

listener/pkg/apischema/builder_test.go

Lines changed: 18 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ import (
44
"errors"
55
"testing"
66

7+
"github.com/openmfp/golang-commons/logger"
78
"github.com/openmfp/kubernetes-graphql-gateway/common"
89
apischema "github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema"
910
apischemaMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema/mocks"
1011
"github.com/stretchr/testify/assert"
12+
"github.com/stretchr/testify/require"
1113
apiextensionsv1 "k8s.io/apiextensions-apiserver/pkg/apis/apiextensions/v1"
1214
"k8s.io/apimachinery/pkg/api/meta"
1315
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
@@ -134,7 +136,10 @@ func TestNewSchemaBuilder(t *testing.T) {
134136

135137
for _, tc := range tests {
136138
t.Run(tc.name, func(t *testing.T) {
137-
b := apischema.NewSchemaBuilder(tc.client, []string{"v1"})
139+
log, err := logger.New(logger.DefaultConfig())
140+
require.NoError(t, err)
141+
142+
b := apischema.NewSchemaBuilder(tc.client, []string{"v1"}, log)
138143
if tc.wantErr != nil {
139144
assert.NotNil(t, b.GetError(), "expected error, got nil")
140145
assert.Equal(t, 0, len(b.GetSchemas()), "expected 0 schemas on error")
@@ -191,9 +196,12 @@ func TestWithCRDCategories(t *testing.T) {
191196
}
192197
for _, tc := range tests {
193198
t.Run(tc.name, func(t *testing.T) {
199+
log, err := logger.New(logger.DefaultConfig())
200+
require.NoError(t, err)
201+
194202
mock := apischemaMocks.NewMockClient(t)
195203
mock.EXPECT().Paths().Return(map[string]openapi.GroupVersion{}, nil)
196-
b := apischema.NewSchemaBuilder(mock, nil)
204+
b := apischema.NewSchemaBuilder(mock, nil, log)
197205
b.SetSchemas(map[string]*spec.Schema{
198206
tc.key: {VendorExtensible: spec.VendorExtensible{Extensions: map[string]interface{}{}}},
199207
})
@@ -243,9 +251,12 @@ func TestWithApiResourceCategories(t *testing.T) {
243251
}
244252
for _, tc := range tests {
245253
t.Run(tc.name, func(t *testing.T) {
254+
log, err := logger.New(logger.DefaultConfig())
255+
require.NoError(t, err)
256+
246257
mock := apischemaMocks.NewMockClient(t)
247258
mock.EXPECT().Paths().Return(map[string]openapi.GroupVersion{}, nil)
248-
b := apischema.NewSchemaBuilder(mock, nil)
259+
b := apischema.NewSchemaBuilder(mock, nil, log)
249260
b.SetSchemas(map[string]*spec.Schema{
250261
tc.key: {VendorExtensible: spec.VendorExtensible{Extensions: map[string]interface{}{}}},
251262
})
@@ -266,6 +277,9 @@ func TestWithApiResourceCategories(t *testing.T) {
266277

267278
// TestWithScope tests the WithScope method for the SchemaBuilder struct.
268279
func TestWithScope(t *testing.T) {
280+
log, err := logger.New(logger.DefaultConfig())
281+
require.NoError(t, err)
282+
269283
gvk := schema.GroupVersionKind{Group: "g", Version: "v1", Kind: "K"}
270284

271285
// Create schema with GVK extension
@@ -281,7 +295,7 @@ func TestWithScope(t *testing.T) {
281295

282296
mock := apischemaMocks.NewMockClient(t)
283297
mock.EXPECT().Paths().Return(map[string]openapi.GroupVersion{}, nil)
284-
b := apischema.NewSchemaBuilder(mock, nil)
298+
b := apischema.NewSchemaBuilder(mock, nil, log)
285299
b.SetSchemas(map[string]*spec.Schema{
286300
"g.v1.K": s,
287301
})

listener/pkg/apischema/crd_resolver.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,14 @@ type GroupKindVersions struct {
3636
type CRDResolver struct {
3737
discovery.DiscoveryInterface
3838
meta.RESTMapper
39+
log *logger.Logger
3940
}
4041

4142
func (cr *CRDResolver) Resolve(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte, error) {
42-
return resolveSchema(dc, rm)
43+
return resolveSchema(dc, rm, cr.log)
4344
}
4445

45-
func (cr *CRDResolver) ResolveApiSchema(crd *apiextensionsv1.CustomResourceDefinition) ([]byte, error) {
46+
func (cr *CRDResolver) ResolveApiSchema(crd *apiextensionsv1.CustomResourceDefinition, log *logger.Logger) ([]byte, error) {
4647
gkv := getCRDGroupKindVersions(crd.Spec)
4748

4849
apiResLists, err := cr.ServerPreferredResources()
@@ -55,7 +56,7 @@ func (cr *CRDResolver) ResolveApiSchema(crd *apiextensionsv1.CustomResourceDefin
5556
return nil, errors.Join(ErrFilterPreferredResources, err)
5657
}
5758

58-
return NewSchemaBuilder(cr.OpenAPIV3(), preferredApiGroups).
59+
return NewSchemaBuilder(cr.OpenAPIV3(), preferredApiGroups, log).
5960
WithScope(cr.RESTMapper).
6061
WithCRDCategories(crd).
6162
Complete()
@@ -138,7 +139,7 @@ func getSchemaForPath(preferredApiGroups []string, path string, gv openapi.Group
138139
return resp.Components.Schemas, nil
139140
}
140141

141-
func resolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte, error) {
142+
func resolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper, log *logger.Logger) ([]byte, error) {
142143
apiResList, err := dc.ServerPreferredResources()
143144
if err != nil {
144145
return nil, errors.Join(ErrGetServerPreferred, err)
@@ -149,7 +150,7 @@ func resolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte,
149150
preferredApiGroups = append(preferredApiGroups, apiRes.GroupVersion)
150151
}
151152

152-
return NewSchemaBuilder(dc.OpenAPIV3(), preferredApiGroups).
153+
return NewSchemaBuilder(dc.OpenAPIV3(), preferredApiGroups, log).
153154
WithScope(rm).
154155
WithApiResourceCategories(apiResList).
155156
Complete()

listener/pkg/apischema/crd_resolver_test.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,11 @@ import (
99
"k8s.io/client-go/openapi"
1010
"k8s.io/kube-openapi/pkg/validation/spec"
1111

12+
"github.com/openmfp/golang-commons/logger"
1213
apischema "github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema"
1314
apischemaMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema/mocks"
1415
"github.com/stretchr/testify/assert"
16+
"github.com/stretchr/testify/require"
1517
)
1618

1719
// TestGetCRDGroupKindVersions tests the getCRDGroupKindVersions function. It checks if the
@@ -298,6 +300,9 @@ func TestResolveSchema(t *testing.T) {
298300

299301
for _, tc := range tests {
300302
t.Run(tc.name, func(t *testing.T) {
303+
log, err := logger.New(logger.DefaultConfig())
304+
require.NoError(t, err)
305+
301306
dc := apischemaMocks.NewMockDiscoveryInterface(t)
302307
rm := apischemaMocks.NewMockRESTMapper(t)
303308

@@ -317,7 +322,7 @@ func TestResolveSchema(t *testing.T) {
317322
dc.EXPECT().OpenAPIV3().Return(openAPIClient)
318323
}
319324

320-
got, err := apischema.ResolveSchema(dc, rm)
325+
got, err := apischema.ResolveSchema(dc, rm, log)
321326
if tc.wantErr != nil {
322327
assert.ErrorIs(t, err, tc.wantErr)
323328
return

listener/pkg/apischema/export_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ func GetSchemaForPath(preferred []string, path string, gv openapi.GroupVersion)
2828
return getSchemaForPath(preferred, path, gv)
2929
}
3030

31-
func ResolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte, error) {
32-
return resolveSchema(dc, rm)
31+
func ResolveSchema(dc discovery.DiscoveryInterface, rm meta.RESTMapper, log *logger.Logger) ([]byte, error) {
32+
return resolveSchema(dc, rm, log)
3333
}
3434

3535
func GetOpenAPISchemaKey(gvk metav1.GroupVersionKind) string {

listener/pkg/apischema/resolver.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"k8s.io/apimachinery/pkg/api/meta"
55
"k8s.io/client-go/discovery"
66
"k8s.io/kube-openapi/pkg/validation/spec"
7+
8+
"github.com/openmfp/golang-commons/logger"
79
)
810

911
const (
@@ -23,12 +25,13 @@ type Resolver interface {
2325
}
2426

2527
type ResolverProvider struct {
28+
log *logger.Logger
2629
}
2730

28-
func NewResolver() *ResolverProvider {
29-
return &ResolverProvider{}
31+
func NewResolver(log *logger.Logger) *ResolverProvider {
32+
return &ResolverProvider{log: log}
3033
}
3134

3235
func (r *ResolverProvider) Resolve(dc discovery.DiscoveryInterface, rm meta.RESTMapper) ([]byte, error) {
33-
return resolveSchema(dc, rm)
36+
return resolveSchema(dc, rm, r.log)
3437
}

listener/pkg/apischema/resolver_test.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ import (
44
"testing"
55

66
"github.com/stretchr/testify/assert"
7+
"github.com/stretchr/testify/require"
78
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
89
"k8s.io/client-go/openapi"
910

11+
"github.com/openmfp/golang-commons/logger"
1012
apischemaMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/pkg/apischema/mocks"
1113
)
1214

@@ -16,7 +18,9 @@ var _ Resolver = (*ResolverProvider)(nil)
1618
// TestNewResolverNotNil checks if NewResolver() returns a non-nil *ResolverProvider
1719
// instance. This is a runtime check to ensure that the function behaves as expected.
1820
func TestNewResolverNotNil(t *testing.T) {
19-
r := NewResolver()
21+
log, err := logger.New(logger.DefaultConfig())
22+
require.NoError(t, err)
23+
r := NewResolver(log)
2024
assert.NotNil(t, r, "NewResolver() should return non-nil *ResolverProvider")
2125
}
2226

@@ -61,7 +65,9 @@ func TestResolverProvider_Resolve(t *testing.T) {
6165

6266
for _, tt := range tests {
6367
t.Run(tt.name, func(t *testing.T) {
64-
resolver := NewResolver()
68+
log, err := logger.New(logger.DefaultConfig())
69+
require.NoError(t, err)
70+
resolver := NewResolver(log)
6571
dc := apischemaMocks.NewMockDiscoveryInterface(t)
6672
rm := apischemaMocks.NewMockRESTMapper(t)
6773

0 commit comments

Comments
 (0)