func (t *thirdPartyResourceDataCodec) populateFromObject(objIn *extensions.ThirdPartyResourceData, mapObj map[string]interface{}, data []byte) error { typeMeta := unversioned.TypeMeta{} if err := json.Unmarshal(data, &typeMeta); err != nil { return err } if typeMeta.Kind != t.kind { return fmt.Errorf("unexpected kind: %s, expected %s", typeMeta.Kind, t.kind) } metadata, ok := mapObj["metadata"].(map[string]interface{}) if !ok { return fmt.Errorf("unexpected object for metadata: %#v", mapObj["metadata"]) } metadataData, err := json.Marshal(metadata) if err != nil { return err } if err := json.Unmarshal(metadataData, &objIn.ObjectMeta); err != nil { return err } objIn.Data = data return nil }
func (t *thirdPartyResourceDataCodec) populateResource(objIn *extensions.ThirdPartyResourceData, mapObj map[string]interface{}, data []byte) error { metadata, ok := mapObj["metadata"].(map[string]interface{}) if !ok { return fmt.Errorf("unexpected object for metadata: %#v", mapObj["metadata"]) } metadataData, err := json.Marshal(metadata) if err != nil { return err } if err := json.Unmarshal(metadataData, &objIn.ObjectMeta); err != nil { return err } // Override API Version with the ThirdPartyResourceData value // TODO: fix this hard code objIn.APIVersion = v1beta1.SchemeGroupVersion.String() objIn.Data = data return nil }