77 "fmt"
88 "strings"
99
10- "github.com/gobuffalo/flect"
1110 restclient "github.com/krateoplatformops/rest-dynamic-controller/internal/client"
1211 "github.com/krateoplatformops/rest-dynamic-controller/internal/text"
12+ "github.com/krateoplatformops/unstructured-runtime/pkg/pluralizer"
1313 unstructuredtools "github.com/krateoplatformops/unstructured-runtime/pkg/tools/unstructured"
1414 "github.com/lucasepe/httplib"
1515
@@ -84,13 +84,14 @@ func Static(chart string) Getter {
8484 return staticGetter {chartName : chart }
8585}
8686
87- func Dynamic (cfg * rest.Config ) (Getter , error ) {
87+ func Dynamic (cfg * rest.Config , pluralizer pluralizer. PluralizerInterface ) (Getter , error ) {
8888 dyn , err := dynamic .NewForConfig (cfg )
8989 if err != nil {
9090 return nil , err
9191 }
9292
9393 return & dynamicGetter {
94+ pluralizer : pluralizer ,
9495 dynamicClient : dyn ,
9596 }, nil
9697}
@@ -111,19 +112,15 @@ var _ Getter = (*dynamicGetter)(nil)
111112
112113type dynamicGetter struct {
113114 dynamicClient dynamic.Interface
115+ pluralizer pluralizer.PluralizerInterface
114116}
115117
116118func (g * dynamicGetter ) Get (un * unstructured.Unstructured ) (* Info , error ) {
117- gvr , err := unstructuredtools . GVR (un )
119+ gvr , err := g . pluralizer . GVKtoGVR (un . GroupVersionKind () )
118120 if err != nil {
119- return nil , err
121+ return nil , fmt . Errorf ( "error getting GVR for '%v' in namespace: %s" , un . GetKind (), un . GetNamespace ())
120122 }
121123
122- // sel, err := selectorForGroup(gvr)
123- // if err != nil {
124- // return nil, err
125- // }
126-
127124 gvrForDefinitions := schema.GroupVersionResource {
128125 Group : "swaggergen.krateo.io" ,
129126 Version : "v1alpha1" ,
@@ -134,7 +131,7 @@ func (g *dynamicGetter) Get(un *unstructured.Unstructured) (*Info, error) {
134131 Namespace (un .GetNamespace ()).
135132 List (context .Background (), metav1.ListOptions {})
136133 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 )
138135 }
139136 if len (all .Items ) == 0 {
140137 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
240237 }
241238 }
242239
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 ())
247249 }
248250
249251 auth , err := g .dynamicClient .Resource (gvrForAuthentication ).
250252 Namespace (un .GetNamespace ()).
251253 Get (context .Background (), authRef , metav1.GetOptions {})
252254 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 )
254256 }
255257
256258 return parseAuthentication (auth , authType , g .dynamicClient )
0 commit comments