@@ -108,14 +108,16 @@ func renderConfig(d *schema.ResourceData) (string, error) {
108
108
109
109
// Translate Fedora CoreOS config to Ignition v3.X.Y
110
110
func fccToIgnition (data []byte , pretty , strict bool , snippets []string ) ([]byte , error ) {
111
- ignBytes , _ , err := butane .TranslateBytes (data , common.TranslateBytesOptions {
111
+ ignBytes , report , err := butane .TranslateBytes (data , common.TranslateBytesOptions {
112
112
Pretty : pretty ,
113
- Strict : strict ,
114
113
})
115
114
// ErrNoVariant indicates data is a CLC, not an FCC
116
115
if err != nil {
117
116
return nil , err
118
117
}
118
+ if strict && len (report .Entries ) > 0 {
119
+ return nil , fmt .Errorf ("strict parsing error: %v" , report .String ())
120
+ }
119
121
120
122
if len (snippets ) == 0 {
121
123
return ignBytes , nil
@@ -178,9 +180,8 @@ func mergeFCCSnippets(ignBytes []byte, pretty, strict bool, snippets []string) (
178
180
// merge FCC v1.4.0 snippets
179
181
func mergeFCC14 (ign ignition33Types.Config , snippets []string , pretty , strict bool ) (ignition33Types.Config , error ) {
180
182
for _ , snippet := range snippets {
181
- ignextBytes , _ , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
183
+ ignextBytes , report , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
182
184
Pretty : pretty ,
183
- Strict : strict ,
184
185
})
185
186
if err != nil {
186
187
// For FCC, require snippets be FCCs (don't fall-through to CLC)
@@ -189,6 +190,10 @@ func mergeFCC14(ign ignition33Types.Config, snippets []string, pretty, strict bo
189
190
}
190
191
return ign , fmt .Errorf ("snippet v1.4.0 translate error: %v" , err )
191
192
}
193
+ if strict && len (report .Entries ) > 0 {
194
+ return ign , fmt .Errorf ("strict parsing error: %v" , report .String ())
195
+ }
196
+
192
197
ignext , _ , err := ignition33 .Parse (ignextBytes )
193
198
if err != nil {
194
199
return ign , fmt .Errorf ("snippet parse error: %v, expect v1.4.0" , err )
@@ -201,9 +206,8 @@ func mergeFCC14(ign ignition33Types.Config, snippets []string, pretty, strict bo
201
206
// merge FCC v1.2.0 snippets
202
207
func mergeFCC12 (ign ignition32Types.Config , snippets []string , pretty , strict bool ) (ignition32Types.Config , error ) {
203
208
for _ , snippet := range snippets {
204
- ignextBytes , _ , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
209
+ ignextBytes , report , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
205
210
Pretty : pretty ,
206
- Strict : strict ,
207
211
})
208
212
if err != nil {
209
213
// For FCC, require snippets be FCCs (don't fall-through to CLC)
@@ -212,6 +216,10 @@ func mergeFCC12(ign ignition32Types.Config, snippets []string, pretty, strict bo
212
216
}
213
217
return ign , fmt .Errorf ("snippet v1.2.0 translate error: %v" , err )
214
218
}
219
+ if strict && len (report .Entries ) > 0 {
220
+ return ign , fmt .Errorf ("strict parsing error: %v" , report .String ())
221
+ }
222
+
215
223
ignext , _ , err := ignition32 .Parse (ignextBytes )
216
224
if err != nil {
217
225
return ign , fmt .Errorf ("snippet parse error: %v, expect v1.2.0" , err )
@@ -224,9 +232,8 @@ func mergeFCC12(ign ignition32Types.Config, snippets []string, pretty, strict bo
224
232
// merge FCC v1.1.0 snippets
225
233
func mergeFCC11 (ign ignition31Types.Config , snippets []string , pretty , strict bool ) (ignition31Types.Config , error ) {
226
234
for _ , snippet := range snippets {
227
- ignextBytes , _ , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
235
+ ignextBytes , report , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
228
236
Pretty : pretty ,
229
- Strict : strict ,
230
237
})
231
238
if err != nil {
232
239
// For FCC, require snippets be FCCs (don't fall-through to CLC)
@@ -235,6 +242,10 @@ func mergeFCC11(ign ignition31Types.Config, snippets []string, pretty, strict bo
235
242
}
236
243
return ign , fmt .Errorf ("snippet v1.1.0 translate error: %v" , err )
237
244
}
245
+ if strict && len (report .Entries ) > 0 {
246
+ return ign , fmt .Errorf ("strict parsing error: %v" , report .String ())
247
+ }
248
+
238
249
ignext , _ , err := ignition31 .Parse (ignextBytes )
239
250
if err != nil {
240
251
return ign , fmt .Errorf ("snippet parse error: %v, expect v1.1.0" , err )
@@ -247,9 +258,8 @@ func mergeFCC11(ign ignition31Types.Config, snippets []string, pretty, strict bo
247
258
// merge FCC v1.0.0 snippets
248
259
func mergeFCCV10 (ign ignition30Types.Config , snippets []string , pretty , strict bool ) (ignition30Types.Config , error ) {
249
260
for _ , snippet := range snippets {
250
- ignextBytes , _ , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
261
+ ignextBytes , report , err := butane .TranslateBytes ([]byte (snippet ), common.TranslateBytesOptions {
251
262
Pretty : pretty ,
252
- Strict : strict ,
253
263
})
254
264
if err != nil {
255
265
// For FCC, require snippets be FCCs (don't fall-through to CLC)
@@ -258,6 +268,10 @@ func mergeFCCV10(ign ignition30Types.Config, snippets []string, pretty, strict b
258
268
}
259
269
return ign , fmt .Errorf ("snippet v1.0.0 translate error: %v" , err )
260
270
}
271
+ if strict && len (report .Entries ) > 0 {
272
+ return ign , fmt .Errorf ("strict parsing error: %v" , report .String ())
273
+ }
274
+
261
275
ignext , _ , err := ignition30 .Parse (ignextBytes )
262
276
if err != nil {
263
277
return ign , fmt .Errorf ("snippet parse error: %v, expect v1.0.0" , err )
0 commit comments