File tree Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Expand file tree Collapse file tree 2 files changed +13
-3
lines changed Original file line number Diff line number Diff line change @@ -349,7 +349,13 @@ def process_hash_value(
349
349
)
350
350
)
351
351
for statement in body :
352
- condition .add_statement (statement )
352
+ # FIXME: this should probably be more general (e.g. recursive lists)
353
+ if isinstance (statement , list ):
354
+ for s in statement :
355
+ condition .add_statement (s )
356
+ # Avoids unsupported concepts
357
+ elif statement is not None :
358
+ condition .add_statement (statement )
353
359
354
360
if codeelement .elseblock is not None :
355
361
condition .else_statement = PuppetParser .__process_codeelement (
Original file line number Diff line number Diff line change @@ -40,7 +40,9 @@ def add_statement(self, statement: "ConditionalStatement") -> None:
40
40
def as_dict (self ) -> Dict [str , Any ]:
41
41
return {
42
42
** super ().as_dict (),
43
- "statements" : [s .as_dict () for s in self .statements ],
43
+ "statements" : [
44
+ s .as_dict () if not isinstance (s , str ) else s for s in self .statements
45
+ ],
44
46
}
45
47
46
48
@@ -109,7 +111,9 @@ def as_dict(self) -> Dict[str, Any]:
109
111
return {
110
112
** super ().as_dict (),
111
113
"name" : self .name ,
112
- "value" : self .value ,
114
+ # FIXME: In Puppet code, the value can be a ConditionalStatement.
115
+ # The types need to be fixed.
116
+ "value" : self .value if isinstance (self .value , str ) else self .value .to_dict (), # type: ignore
113
117
"has_variable" : self .has_variable ,
114
118
"keyvalues" : [kv .as_dict () for kv in self .keyvalues ],
115
119
}
You can’t perform that action at this time.
0 commit comments