@@ -131,24 +131,32 @@ def __init__(self,
131131 base = None ,
132132 binary = None ,
133133 description = None ,
134- tag = None ,
134+ tag = [] ,
135135 prefix = None ,
136136 parameters = [],
137- version = None ,
137+ version = [] ,
138138 junk = []):
139139
140140 self .indir = indir
141141 self .outdir = outdir
142142
143+
143144 if parameter_file :
144145 cab = utils .readJson (parameter_file )
146+ if not isinstance (cab ["tag" ], list ):
147+ tag = [cab ["tag" ]]
148+ version = [cab .get ("version" , "x.x.x" )]
149+ else :
150+ tag = cab ["tag" ]
151+ version = cab ["version" ]
152+
145153 self .task = cab ["task" ]
146154 self .base = cab ["base" ]
147155 self .binary = cab ["binary" ]
148- self .tag = cab [ " tag" ]
156+ self .tag = tag
149157 self .junk = cab .get ("junk" , [])
150158 self .wranglers = cab .get ("wranglers" , [])
151- self .version = cab . get ( " version" , "x.x.x" )
159+ self .version = version
152160 if cab ["msdir" ]:
153161 self .msdir = msdir
154162 else :
@@ -274,13 +282,14 @@ def toDict(self):
274282 })
275283 return conf
276284
277- def update (self , options , saveconf ):
285+ def update (self , options , saveconf , tag = None ):
278286 required = filter (lambda a : a .required , self .parameters )
287+ tag = tag or self .tag
279288 for param0 in required :
280289 if param0 .name not in options .keys () and param0 .mapping not in options .keys ():
281290 raise StimelaCabParameterError (
282291 "Parameter {} is required but has not been specified" .format (param0 .name ))
283- self .log .info (f"Validating parameters for cab { self .task } ({ self .base } :{ self . tag } )" )
292+ self .log .info (f"Validating parameters for cab { self .task } ({ self .base } :{ tag } )" )
284293
285294 for name , value in options .items ():
286295 found = False
0 commit comments