Skip to content

Commit 5330bef

Browse files
authored
listener: fixed "failed to find JSON file" (#244)
On-behalf-of: @SAP [email protected] Signed-off-by: Artem Shcherbatiuk <[email protected]>
1 parent f5fb2ff commit 5330bef

File tree

4 files changed

+12
-16
lines changed

4 files changed

+12
-16
lines changed

listener/controller/crd_controller.go

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ import (
1515
)
1616

1717
var (
18-
ErrReadJSON = errors.New("failed to read JSON from filesystem")
1918
ErrResolveSchema = errors.New("failed to resolve server JSON schema")
20-
ErrWriteJSON = errors.New("failed to write JSON to filesystem")
2119
ErrGetReconciledObj = errors.New("failed to get reconciled object")
2220
)
2321

@@ -79,15 +77,15 @@ func (r *CRDReconciler) SetupWithManager(mgr ctrl.Manager) error {
7977
func (r *CRDReconciler) updateAPISchema() error {
8078
savedJSON, err := r.io.Read(r.ClusterName)
8179
if err != nil {
82-
return errors.Join(ErrReadJSON, err)
80+
return err
8381
}
8482
actualJSON, err := r.Resolve()
8583
if err != nil {
8684
return errors.Join(ErrResolveSchema, err)
8785
}
8886
if !bytes.Equal(actualJSON, savedJSON) {
8987
if err := r.io.Write(actualJSON, r.ClusterName); err != nil {
90-
return errors.Join(ErrWriteJSON, err)
88+
return err
9189
}
9290
}
9391
return nil
@@ -96,15 +94,15 @@ func (r *CRDReconciler) updateAPISchema() error {
9694
func (r *CRDReconciler) updateAPISchemaWith(crd *apiextensionsv1.CustomResourceDefinition) error {
9795
savedJSON, err := r.io.Read(r.ClusterName)
9896
if err != nil {
99-
return errors.Join(ErrReadJSON, err)
97+
return err
10098
}
10199
actualJSON, err := r.ResolveApiSchema(crd)
102100
if err != nil {
103101
return errors.Join(ErrResolveSchema, err)
104102
}
105103
if !bytes.Equal(actualJSON, savedJSON) {
106104
if err := r.io.Write(actualJSON, r.ClusterName); err != nil {
107-
return errors.Join(ErrWriteJSON, err)
105+
return err
108106
}
109107
}
110108
return nil

listener/controller/crd_controller_test.go

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"github.com/openmfp/kubernetes-graphql-gateway/gateway/resolver/mocks"
99
"github.com/openmfp/kubernetes-graphql-gateway/listener/controller"
1010
controllerMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/controller/mocks"
11+
"github.com/openmfp/kubernetes-graphql-gateway/listener/workspacefile"
1112
workspacefileMocks "github.com/openmfp/kubernetes-graphql-gateway/listener/workspacefile/mocks"
1213

1314
"github.com/openmfp/golang-commons/logger/testlogger"
@@ -40,8 +41,8 @@ func TestCRDReconciler(t *testing.T) {
4041
{
4142
name: "not_found_read_error",
4243
getErr: apierrors.NewNotFound(schema.GroupResource{Group: "", Resource: "crds"}, "my-crd"),
43-
readErr: errors.New("read-error"),
44-
wantErr: controller.ErrReadJSON,
44+
readErr: workspacefile.ErrReadJSONFile,
45+
wantErr: workspacefile.ErrReadJSONFile,
4546
},
4647
{
4748
name: "not_found_resolve_error",
@@ -53,7 +54,7 @@ func TestCRDReconciler(t *testing.T) {
5354
name: "not_found_write_error",
5455
getErr: apierrors.NewNotFound(schema.GroupResource{Group: "", Resource: "crds"}, "my-crd"),
5556
readErr: nil,
56-
wantErr: controller.ErrWriteJSON,
57+
wantErr: workspacefile.ErrWriteJSONFile,
5758
},
5859
{
5960
name: "successful_update",
@@ -89,11 +90,11 @@ func TestCRDReconciler(t *testing.T) {
8990
if tc.readErr == nil {
9091
if tc.wantErr == controller.ErrResolveSchema {
9192
crdResolver.EXPECT().Resolve().Return(nil, errors.New("resolve error"))
92-
} else if tc.wantErr == controller.ErrWriteJSON {
93+
} else if tc.wantErr == workspacefile.ErrWriteJSONFile {
9394
crdResolver.EXPECT().Resolve().Return([]byte(`{"new":"schema"}`), nil)
9495
ioHandler.EXPECT().
9596
Write([]byte(`{"new":"schema"}`), "cluster1").
96-
Return(errors.New("write error"))
97+
Return(workspacefile.ErrWriteJSONFile)
9798
} else {
9899
crdResolver.EXPECT().Resolve().Return([]byte("{}"), nil)
99100
}

listener/kcp/reconciler_factory.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"context"
66
"errors"
7+
"io/fs"
78

89
"k8s.io/apimachinery/pkg/api/meta"
910
"k8s.io/apimachinery/pkg/runtime"
@@ -116,7 +117,7 @@ func PreReconcile(
116117

117118
savedJSON, err := io.Read(kubernetesClusterName)
118119
if err != nil {
119-
if errors.Is(err, workspacefile.ErrNotFound) {
120+
if errors.Is(err, fs.ErrNotExist) {
120121
return io.Write(actualJSON, kubernetesClusterName)
121122
}
122123
return errors.Join(ErrReadJSON, err)

listener/workspacefile/io_handler.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ var (
1111
ErrReadJSONFile = errors.New("failed to read JSON file")
1212
ErrWriteJSONFile = errors.New("failed to write JSON to file")
1313
ErrDeleteJSONFile = errors.New("failed to delete JSON file")
14-
ErrNotFound = errors.New("failed to find JSON file")
1514
)
1615

1716
type IOHandler interface {
@@ -38,9 +37,6 @@ func (h *IOHandlerProvider) Read(clusterName string) ([]byte, error) {
3837
fileName := path.Join(h.schemasDir, clusterName)
3938
JSON, err := os.ReadFile(fileName)
4039
if err != nil {
41-
if os.IsNotExist(err) {
42-
return nil, ErrNotFound
43-
}
4440
return nil, errors.Join(ErrReadJSONFile, err)
4541
}
4642
return JSON, nil

0 commit comments

Comments
 (0)