@@ -26,6 +26,7 @@ import (
26
26
"sync"
27
27
"text/template"
28
28
29
+ meta_util "kmodules.xyz/client-go/meta"
29
30
"kmodules.xyz/resource-metadata/apis/meta/v1alpha1"
30
31
"kmodules.xyz/resource-metadata/apis/shared"
31
32
"kmodules.xyz/resource-metadata/pkg/tableconvertor/lib"
@@ -248,25 +249,53 @@ func (c *convertor) rowFn(obj interface{}) ([]v1alpha1.TableCell, error) {
248
249
}
249
250
}
250
251
} else if col .Exec != nil {
251
- if col .Exec .ServiceNameTemplate == "" {
252
- if v , err := renderTemplate (data , columnOptions {
253
- Name : col .Name ,
254
- Type : col .Type ,
255
- Template : col .PathTemplate ,
256
- }, buf ); err != nil {
257
- return nil , err
252
+ if col .Type == "string" {
253
+ if col .Exec .ServiceNameTemplate == "" {
254
+ if v , err := renderTemplate (data , columnOptions {
255
+ Name : col .Name ,
256
+ Type : col .Type ,
257
+ Template : col .PathTemplate ,
258
+ }, buf ); err != nil {
259
+ return nil , err
260
+ } else {
261
+ cell .Data = v
262
+ }
258
263
} else {
259
- cell .Data = v
264
+ if v , err := renderTemplate (data , columnOptions {
265
+ Name : col .Name ,
266
+ Type : "string" ,
267
+ Template : col .Exec .ServiceNameTemplate ,
268
+ }, buf ); err != nil {
269
+ return nil , err
270
+ } else {
271
+ cell .Data = v
272
+ }
260
273
}
261
274
} else {
262
275
if v , err := renderTemplate (data , columnOptions {
263
276
Name : col .Name ,
264
- Type : "string" ,
265
- Template : col .Exec . ServiceNameTemplate ,
277
+ Type : col . Type ,
278
+ Template : col .PathTemplate ,
266
279
}, buf ); err != nil {
267
280
return nil , err
268
281
} else {
269
- cell .Data = v
282
+ if col .Exec .Alias != "" {
283
+ var execs []v1alpha1.ResourceExec
284
+ err = meta_util .DecodeObject (v , & execs )
285
+ if err != nil {
286
+ return nil , errors .Wrapf (err , "failed to decode cell value for col %s" , col .Name )
287
+ }
288
+ result := make ([]v1alpha1.ResourceExec , 0 , len (execs ))
289
+ for _ , exec := range execs {
290
+ if exec .Alias == col .Exec .Alias {
291
+ result = append (result , exec )
292
+ break
293
+ }
294
+ }
295
+ cell .Data = result
296
+ } else {
297
+ cell .Data = v
298
+ }
270
299
}
271
300
}
272
301
} else {
0 commit comments