7
7
"fmt"
8
8
"strings"
9
9
10
- "github.com/gobuffalo/flect"
11
10
restclient "github.com/krateoplatformops/rest-dynamic-controller/internal/client"
12
11
"github.com/krateoplatformops/rest-dynamic-controller/internal/text"
12
+ "github.com/krateoplatformops/unstructured-runtime/pkg/pluralizer"
13
13
unstructuredtools "github.com/krateoplatformops/unstructured-runtime/pkg/tools/unstructured"
14
14
"github.com/lucasepe/httplib"
15
15
@@ -84,13 +84,14 @@ func Static(chart string) Getter {
84
84
return staticGetter {chartName : chart }
85
85
}
86
86
87
- func Dynamic (cfg * rest.Config ) (Getter , error ) {
87
+ func Dynamic (cfg * rest.Config , pluralizer pluralizer. PluralizerInterface ) (Getter , error ) {
88
88
dyn , err := dynamic .NewForConfig (cfg )
89
89
if err != nil {
90
90
return nil , err
91
91
}
92
92
93
93
return & dynamicGetter {
94
+ pluralizer : pluralizer ,
94
95
dynamicClient : dyn ,
95
96
}, nil
96
97
}
@@ -111,19 +112,15 @@ var _ Getter = (*dynamicGetter)(nil)
111
112
112
113
type dynamicGetter struct {
113
114
dynamicClient dynamic.Interface
115
+ pluralizer pluralizer.PluralizerInterface
114
116
}
115
117
116
118
func (g * dynamicGetter ) Get (un * unstructured.Unstructured ) (* Info , error ) {
117
- gvr , err := unstructuredtools . GVR (un )
119
+ gvr , err := g . pluralizer . GVKtoGVR (un . GroupVersionKind () )
118
120
if err != nil {
119
- return nil , err
121
+ return nil , fmt . Errorf ( "error getting GVR for '%v' in namespace: %s" , un . GetKind (), un . GetNamespace ())
120
122
}
121
123
122
- // sel, err := selectorForGroup(gvr)
123
- // if err != nil {
124
- // return nil, err
125
- // }
126
-
127
124
gvrForDefinitions := schema.GroupVersionResource {
128
125
Group : "swaggergen.krateo.io" ,
129
126
Version : "v1alpha1" ,
@@ -134,7 +131,7 @@ func (g *dynamicGetter) Get(un *unstructured.Unstructured) (*Info, error) {
134
131
Namespace (un .GetNamespace ()).
135
132
List (context .Background (), metav1.ListOptions {})
136
133
if err != nil {
137
- return nil , err
134
+ return nil , fmt . Errorf ( "error getting definitions for '%v' in namespace: %s - %w" , gvr . String (), un . GetNamespace (), err )
138
135
}
139
136
if len (all .Items ) == 0 {
140
137
return nil , fmt .Errorf ("no definitions found for '%v' in namespace: %s" , gvr , un .GetNamespace ())
@@ -240,17 +237,22 @@ func (g *dynamicGetter) getAuth(un *unstructured.Unstructured) (httplib.AuthMeth
240
237
}
241
238
}
242
239
243
- gvrForAuthentication := schema.GroupVersionResource {
244
- Group : gvr .Group ,
245
- Version : "v1alpha1" ,
246
- Resource : strings .ToLower (flect .Pluralize (fmt .Sprintf ("%sAuth" , text .ToGolangName (authType .String ())))),
240
+ gvkForAuthentication := schema.GroupVersionKind {
241
+ Group : gvr .Group ,
242
+ Version : "v1alpha1" ,
243
+ Kind : fmt .Sprintf ("%sAuth" , text .ToGolangName (authType .String ())),
244
+ }
245
+
246
+ gvrForAuthentication , err := g .pluralizer .GVKtoGVR (gvkForAuthentication )
247
+ if err != nil {
248
+ return nil , fmt .Errorf ("error getting GVR for '%v' in namespace: %s" , gvkForAuthentication .Kind , un .GetNamespace ())
247
249
}
248
250
249
251
auth , err := g .dynamicClient .Resource (gvrForAuthentication ).
250
252
Namespace (un .GetNamespace ()).
251
253
Get (context .Background (), authRef , metav1.GetOptions {})
252
254
if err != nil {
253
- return nil , err
255
+ return nil , fmt . Errorf ( "error getting authentication for '%v' in namespace: %s - %w" , gvr , un . GetNamespace (), err )
254
256
}
255
257
256
258
return parseAuthentication (auth , authType , g .dynamicClient )
0 commit comments