@@ -193,25 +193,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
193
193
switch {
194
194
case parent .Uri != "" :
195
195
parentDevfileObj , err = parseFromURI (parent .ImportReference , d .Ctx , resolveCtx , tool )
196
- if err != nil {
197
- return err
198
- }
199
196
case parent .Id != "" :
200
197
parentDevfileObj , err = parseFromRegistry (parent .ImportReference , resolveCtx , tool )
201
- if err != nil {
202
- return err
203
- }
204
198
case parent .Kubernetes != nil :
205
199
parentDevfileObj , err = parseFromKubeCRD (parent .ImportReference , resolveCtx , tool )
206
- if err != nil {
207
- return err
208
- }
209
200
default :
210
201
return fmt .Errorf ("devfile parent does not define any resources" )
211
202
}
203
+ if err != nil {
204
+ return err
205
+ }
212
206
213
207
parentWorkspaceContent := parentDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
208
+ // add attribute to parent elements
209
+ err = addSourceAttributesForOverrideAndMerge (parent .ImportReference , parentWorkspaceContent )
210
+ if err != nil {
211
+ return err
212
+ }
214
213
if ! reflect .DeepEqual (parent .ParentOverrides , v1.ParentOverrides {}) {
214
+ // add attribute to parentOverrides elements
215
+ curNodeImportReference := resolveCtx .importReference
216
+ err = addSourceAttributesForOverrideAndMerge (curNodeImportReference , & parent .ParentOverrides )
217
+ if err != nil {
218
+ return err
219
+ }
215
220
flattenedParent , err = apiOverride .OverrideDevWorkspaceTemplateSpec (parentWorkspaceContent , parent .ParentOverrides )
216
221
if err != nil {
217
222
return err
@@ -236,22 +241,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
236
241
switch {
237
242
case plugin .Uri != "" :
238
243
pluginDevfileObj , err = parseFromURI (plugin .ImportReference , d .Ctx , resolveCtx , tool )
239
- if err != nil {
240
- return err
241
- }
242
244
case plugin .Id != "" :
243
245
pluginDevfileObj , err = parseFromRegistry (plugin .ImportReference , resolveCtx , tool )
244
- if err != nil {
245
- return err
246
- }
247
246
case plugin .Kubernetes != nil :
248
247
pluginDevfileObj , err = parseFromKubeCRD (plugin .ImportReference , resolveCtx , tool )
249
248
default :
250
249
return fmt .Errorf ("plugin %s does not define any resources" , component .Name )
251
250
}
251
+ if err != nil {
252
+ return err
253
+ }
252
254
pluginWorkspaceContent := pluginDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
255
+ // add attribute to plugin elements
256
+ err = addSourceAttributesForOverrideAndMerge (plugin .ImportReference , pluginWorkspaceContent )
257
+ if err != nil {
258
+ return err
259
+ }
253
260
flattenedPlugin := pluginWorkspaceContent
254
261
if ! reflect .DeepEqual (plugin .PluginOverrides , v1.PluginOverrides {}) {
262
+ // add attribute to pluginOverrides elements
263
+ curNodeImportReference := resolveCtx .importReference
264
+ err = addSourceAttributesForOverrideAndMerge (curNodeImportReference , & plugin .PluginOverrides )
265
+ if err != nil {
266
+ return err
267
+ }
255
268
flattenedPlugin , err = apiOverride .OverrideDevWorkspaceTemplateSpec (pluginWorkspaceContent , plugin .PluginOverrides )
256
269
if err != nil {
257
270
return err
0 commit comments