mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-17 15:50:10 +00:00
include metadata in third party res list output
This commit is contained in:
parent
24c3be145c
commit
742447f8ce
@ -451,13 +451,6 @@ func (t *thirdPartyResourceDataDecoder) populateListResource(objIn *extensions.T
|
||||
return nil
|
||||
}
|
||||
|
||||
const template = `{
|
||||
"kind": "%s",
|
||||
"apiVersion": "%s",
|
||||
"metadata": {},
|
||||
"items": [ %s ]
|
||||
}`
|
||||
|
||||
type thirdPartyResourceDataEncoder struct {
|
||||
delegate runtime.Encoder
|
||||
gvk unversioned.GroupVersionKind
|
||||
@ -488,18 +481,36 @@ func (t *thirdPartyResourceDataEncoder) Encode(obj runtime.Object, stream io.Wri
|
||||
case *extensions.ThirdPartyResourceData:
|
||||
return encodeToJSON(obj, stream)
|
||||
case *extensions.ThirdPartyResourceDataList:
|
||||
// TODO: There must be a better way to do this...
|
||||
dataStrings := make([]string, len(obj.Items))
|
||||
// TODO: There are likely still better ways to do this...
|
||||
listItems := make([]json.RawMessage, len(obj.Items))
|
||||
|
||||
for ix := range obj.Items {
|
||||
buff := &bytes.Buffer{}
|
||||
err := encodeToJSON(&obj.Items[ix], buff)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
dataStrings[ix] = buff.String()
|
||||
listItems[ix] = json.RawMessage(buff.Bytes())
|
||||
}
|
||||
gv := t.gvk.GroupVersion()
|
||||
fmt.Fprintf(stream, template, t.gvk.Kind+"List", gv.String(), strings.Join(dataStrings, ","))
|
||||
|
||||
encMap := struct {
|
||||
Kind string `json:"kind,omitempty"`
|
||||
Items []json.RawMessage `json:"items"`
|
||||
Metadata unversioned.ListMeta `json:"metadata,omitempty"`
|
||||
APIVersion string `json:"apiVersion,omitempty"`
|
||||
}{
|
||||
Kind: t.gvk.Kind + "List",
|
||||
Items: listItems,
|
||||
Metadata: obj.ListMeta,
|
||||
APIVersion: t.gvk.GroupVersion().String(),
|
||||
}
|
||||
|
||||
encBytes, err := json.Marshal(encMap)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
fmt.Fprint(stream, string(encBytes))
|
||||
return nil
|
||||
case *versioned.InternalEvent:
|
||||
event := &versioned.Event{}
|
||||
|
Loading…
Reference in New Issue
Block a user