@@ -86,8 +86,7 @@ type ParserArgs struct {
86
86
// Creates devfile context and runtime objects
87
87
func ParseDevfile (args ParserArgs ) (d DevfileObj , err error ) {
88
88
if args .Data != nil {
89
- d .Ctx = devfileCtx.DevfileCtx {}
90
- err = d .Ctx .SetDevfileContentFromBytes (args .Data )
89
+ d .Ctx , err = devfileCtx .NewByteContentDevfileCtx (args .Data )
91
90
if err != nil {
92
91
return d , errors .Wrap (err , "failed to set devfile content from bytes" )
93
92
}
@@ -177,8 +176,7 @@ func ParseFromURL(url string) (d DevfileObj, err error) {
177
176
// Creates devfile context and runtime objects
178
177
// Deprecated, use ParseDevfile() instead
179
178
func ParseFromData (data []byte ) (d DevfileObj , err error ) {
180
- d .Ctx = devfileCtx.DevfileCtx {}
181
- err = d .Ctx .SetDevfileContentFromBytes (data )
179
+ d .Ctx , err = devfileCtx .NewByteContentDevfileCtx (data )
182
180
if err != nil {
183
181
return d , errors .Wrap (err , "failed to set devfile content from bytes" )
184
182
}
@@ -209,7 +207,7 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
209
207
return fmt .Errorf ("devfile parent does not define any resources" )
210
208
}
211
209
212
- parentWorkspaceContent := parentDevfileObj .Data .GetDevfileWorkspace ()
210
+ parentWorkspaceContent := parentDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
213
211
if ! reflect .DeepEqual (parent .ParentOverrides , v1.ParentOverrides {}) {
214
212
flattenedParent , err = apiOverride .OverrideDevWorkspaceTemplateSpec (parentWorkspaceContent , parent .ParentOverrides )
215
213
if err != nil {
@@ -248,7 +246,7 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
248
246
default :
249
247
return fmt .Errorf ("plugin %s does not define any resources" , component .Name )
250
248
}
251
- pluginWorkspaceContent := pluginDevfileObj .Data .GetDevfileWorkspace ()
249
+ pluginWorkspaceContent := pluginDevfileObj .Data .GetDevfileWorkspaceSpecContent ()
252
250
flattenedPlugin := pluginWorkspaceContent
253
251
if ! reflect .DeepEqual (plugin .PluginOverrides , v1.PluginOverrides {}) {
254
252
flattenedPlugin , err = apiOverride .OverrideDevWorkspaceTemplateSpec (pluginWorkspaceContent , plugin .PluginOverrides )
@@ -260,11 +258,11 @@ func parseParentAndPlugin(d DevfileObj, resolveCtx *resolutionContextTree, tool
260
258
}
261
259
}
262
260
263
- mergedContent , err := apiOverride .MergeDevWorkspaceTemplateSpec (d .Data .GetDevfileWorkspace (), flattenedParent , flattenedPlugins ... )
261
+ mergedContent , err := apiOverride .MergeDevWorkspaceTemplateSpec (d .Data .GetDevfileWorkspaceSpecContent (), flattenedParent , flattenedPlugins ... )
264
262
if err != nil {
265
263
return err
266
264
}
267
- d .Data .SetDevfileWorkspace (* mergedContent )
265
+ d .Data .SetDevfileWorkspaceSpecContent (* mergedContent )
268
266
// remove parent from flatterned devfile
269
267
d .Data .SetParent (nil )
270
268
@@ -302,21 +300,20 @@ func parseFromURI(importReference v1.ImportReference, curDevfileCtx devfileCtx.D
302
300
d .Ctx = devfileCtx .NewURLDevfileCtx (newUri )
303
301
}
304
302
importReference .Uri = newUri
305
- newCtx := resolveCtx .appendNode (importReference )
303
+ newResolveCtx := resolveCtx .appendNode (importReference )
306
304
307
- return populateAndParseDevfile (d , newCtx , tool , true )
305
+ return populateAndParseDevfile (d , newResolveCtx , tool , true )
308
306
}
309
307
310
308
func parseFromRegistry (importReference v1.ImportReference , resolveCtx * resolutionContextTree , tool resolverTools ) (d DevfileObj , err error ) {
311
- d .Ctx = devfileCtx.DevfileCtx {}
312
309
id := importReference .Id
313
310
registryURL := importReference .RegistryUrl
314
311
if registryURL != "" {
315
312
devfileContent , err := getDevfileFromRegistry (id , registryURL )
316
313
if err != nil {
317
314
return DevfileObj {}, err
318
315
}
319
- err = d . Ctx . SetDevfileContentFromBytes (devfileContent )
316
+ d . Ctx , err = devfileCtx . NewByteContentDevfileCtx (devfileContent )
320
317
if err != nil {
321
318
return d , errors .Wrap (err , "failed to set devfile content from bytes" )
322
319
}
@@ -328,7 +325,7 @@ func parseFromRegistry(importReference v1.ImportReference, resolveCtx *resolutio
328
325
for _ , registryURL := range tool .registryURLs {
329
326
devfileContent , err := getDevfileFromRegistry (id , registryURL )
330
327
if devfileContent != nil && err == nil {
331
- err = d . Ctx . SetDevfileContentFromBytes (devfileContent )
328
+ d . Ctx , err = devfileCtx . NewByteContentDevfileCtx (devfileContent )
332
329
if err != nil {
333
330
return d , errors .Wrap (err , "failed to set devfile content from bytes" )
334
331
}
@@ -361,20 +358,23 @@ func parseFromKubeCRD(importReference v1.ImportReference, resolveCtx *resolution
361
358
return DevfileObj {}, fmt .Errorf ("Kubernetes client and context are required to parse from Kubernetes CRD" )
362
359
}
363
360
namespace := importReference .Kubernetes .Namespace
364
- // if namespace is not set in devfile, use default namespace provided in by consumer
365
- if namespace == "" {
366
- namespace = tool .defaultNamespace
367
- }
368
- // use current namespace if namespace is not set in devfile and not provided by consumer
361
+
369
362
if namespace == "" {
370
- loadingRules := clientcmd .NewDefaultClientConfigLoadingRules ()
371
- configOverrides := & clientcmd.ConfigOverrides {}
372
- config := clientcmd .NewNonInteractiveDeferredLoadingClientConfig (loadingRules , configOverrides )
373
- namespace , _ , err = config .Namespace ()
374
- if err != nil {
375
- return DevfileObj {}, fmt .Errorf ("kubernetes namespace is not provided, and cannot get current running cluster's namespace: %v" , err )
363
+ // if namespace is not set in devfile, use default namespace provided in by consumer
364
+ if tool .defaultNamespace != "" {
365
+ namespace = tool .defaultNamespace
366
+ } else {
367
+ // use current namespace if namespace is not set in devfile and not provided by consumer
368
+ loadingRules := clientcmd .NewDefaultClientConfigLoadingRules ()
369
+ configOverrides := & clientcmd.ConfigOverrides {}
370
+ config := clientcmd .NewNonInteractiveDeferredLoadingClientConfig (loadingRules , configOverrides )
371
+ namespace , _ , err = config .Namespace ()
372
+ if err != nil {
373
+ return DevfileObj {}, fmt .Errorf ("kubernetes namespace is not provided, and cannot get current running cluster's namespace: %v" , err )
374
+ }
376
375
}
377
376
}
377
+
378
378
var dwTemplate v1.DevWorkspaceTemplate
379
379
namespacedName := types.NamespacedName {
380
380
Name : importReference .Kubernetes .Name ,
@@ -391,9 +391,9 @@ func parseFromKubeCRD(importReference v1.ImportReference, resolveCtx *resolution
391
391
}
392
392
393
393
importReference .Kubernetes .Namespace = namespace
394
- newCtx := resolveCtx .appendNode (importReference )
394
+ newResolveCtx := resolveCtx .appendNode (importReference )
395
395
396
- err = parseParentAndPlugin (d , newCtx , tool )
396
+ err = parseParentAndPlugin (d , newResolveCtx , tool )
397
397
return d , err
398
398
399
399
}
@@ -407,7 +407,7 @@ func convertDevWorskapceTemplateToDevObj(dwTemplate v1.DevWorkspaceTemplate) (d
407
407
if err != nil {
408
408
return DevfileObj {}, err
409
409
}
410
- d .Data .SetDevfileWorkspace (dwTemplate .Spec . DevWorkspaceTemplateSpecContent )
410
+ d .Data .SetDevfileWorkspaceSpec (dwTemplate .Spec )
411
411
412
412
return d , nil
413
413
0 commit comments