@@ -112,10 +112,16 @@ func ParseDevfile(args ParserArgs) (d DevfileObj, err error) {
112
112
}
113
113
114
114
d , err = populateAndParseDevfile (d , & resolutionContextTree {}, tool , flattenedDevfile )
115
+ if err != nil {
116
+ return d , errors .Wrap (err , "failed to populateAndParseDevfile" )
117
+ }
115
118
116
119
//set defaults only if we are flattening parent and parsing succeeded
117
120
if flattenedDevfile && err == nil {
118
- setDefaults (d )
121
+ err = setDefaults (d )
122
+ if err != nil {
123
+ return d , errors .Wrap (err , "failed to setDefaults" )
124
+ }
119
125
}
120
126
121
127
return d , err
@@ -478,6 +484,12 @@ func convertDevWorskapceTemplateToDevObj(dwTemplate v1.DevWorkspaceTemplate) (d
478
484
479
485
//setDefaults sets the default values for nil boolean properties after the merging of devWorkspaceTemplateSpec is complete
480
486
func setDefaults (d DevfileObj ) (err error ) {
487
+
488
+ var devfileVersion string
489
+ if devfileVersion = d .Ctx .GetApiVersion (); devfileVersion == "" {
490
+ devfileVersion = d .Data .GetSchemaVersion ()
491
+ }
492
+
481
493
commands , err := d .Data .GetCommands (common.DevfileOptions {})
482
494
483
495
if err != nil {
@@ -530,8 +542,8 @@ func setDefaults(d DevfileObj) (err error) {
530
542
val := container .GetDedicatedPod ()
531
543
container .DedicatedPod = & val
532
544
533
- val = container .GetMountSources ()
534
- container .MountSources = & val
545
+ msVal : = container .GetMountSources ()
546
+ container .MountSources = & msVal
535
547
536
548
endpoints = container .Endpoints
537
549
@@ -542,12 +554,12 @@ func setDefaults(d DevfileObj) (err error) {
542
554
543
555
endpoints = component .Openshift .Endpoints
544
556
545
- } else if component .Volume != nil {
557
+ } else if component .Volume != nil && devfileVersion != string ( data . APISchemaVersion200 ) {
546
558
volume := component .Volume
547
559
val := volume .GetEphemeral ()
548
560
volume .Ephemeral = & val
549
561
550
- } else if component .Image != nil {
562
+ } else if component .Image != nil { //we don't need to do a schema version check since Image in v2.2.0. If used in older specs, a parser error would occur
551
563
dockerImage := component .Image .Dockerfile
552
564
if dockerImage != nil {
553
565
val := dockerImage .GetRootRequired ()
0 commit comments