Skip to content

Commit ec1e90d

Browse files
authored
Merge pull request #80 from yangcao77/397-addAnnotationToImportedElements
397 add annotation to imported elements
2 parents 1017f66 + e3d1c45 commit ec1e90d

File tree

4 files changed

+852
-184
lines changed

4 files changed

+852
-184
lines changed

pkg/devfile/parser/parse.go

+28-15
Original file line numberDiff line numberDiff line change
@@ -193,25 +193,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
193193
switch {
194194
case parent.Uri != "":
195195
parentDevfileObj, err = parseFromURI(parent.ImportReference, d.Ctx, resolveCtx, tool)
196-
if err != nil {
197-
return err
198-
}
199196
case parent.Id != "":
200197
parentDevfileObj, err = parseFromRegistry(parent.ImportReference, resolveCtx, tool)
201-
if err != nil {
202-
return err
203-
}
204198
case parent.Kubernetes != nil:
205199
parentDevfileObj, err = parseFromKubeCRD(parent.ImportReference, resolveCtx, tool)
206-
if err != nil {
207-
return err
208-
}
209200
default:
210201
return fmt.Errorf("devfile parent does not define any resources")
211202
}
203+
if err != nil {
204+
return err
205+
}
212206

213207
parentWorkspaceContent := parentDevfileObj.Data.GetDevfileWorkspaceSpecContent()
208+
// add attribute to parent elements
209+
err = addSourceAttributesForOverrideAndMerge(parent.ImportReference, parentWorkspaceContent)
210+
if err != nil {
211+
return err
212+
}
214213
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+
}
215220
flattenedParent, err = apiOverride.OverrideDevWorkspaceTemplateSpec(parentWorkspaceContent, parent.ParentOverrides)
216221
if err != nil {
217222
return err
@@ -236,22 +241,30 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
236241
switch {
237242
case plugin.Uri != "":
238243
pluginDevfileObj, err = parseFromURI(plugin.ImportReference, d.Ctx, resolveCtx, tool)
239-
if err != nil {
240-
return err
241-
}
242244
case plugin.Id != "":
243245
pluginDevfileObj, err = parseFromRegistry(plugin.ImportReference, resolveCtx, tool)
244-
if err != nil {
245-
return err
246-
}
247246
case plugin.Kubernetes != nil:
248247
pluginDevfileObj, err = parseFromKubeCRD(plugin.ImportReference, resolveCtx, tool)
249248
default:
250249
return fmt.Errorf("plugin %s does not define any resources", component.Name)
251250
}
251+
if err != nil {
252+
return err
253+
}
252254
pluginWorkspaceContent := pluginDevfileObj.Data.GetDevfileWorkspaceSpecContent()
255+
// add attribute to plugin elements
256+
err = addSourceAttributesForOverrideAndMerge(plugin.ImportReference, pluginWorkspaceContent)
257+
if err != nil {
258+
return err
259+
}
253260
flattenedPlugin := pluginWorkspaceContent
254261
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+
}
255268
flattenedPlugin, err = apiOverride.OverrideDevWorkspaceTemplateSpec(pluginWorkspaceContent, plugin.PluginOverrides)
256269
if err != nil {
257270
return err

0 commit comments

Comments
 (0)