X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fspecification_parser.py;h=00614cf62fa9dc23afbe2793076b6bc5330077f7;hp=4110bfff9b8c5c8ca59c5644c4ddbeaa0e9c0e39;hb=f4c31f23462c376e442b35242b2502541baccb83;hpb=37ea2ceb606bdfc338cc76330cb9289c12f63852 diff --git a/resources/tools/presentation/specification_parser.py b/resources/tools/presentation/specification_parser.py index 4110bfff9b..00614cf62f 100644 --- a/resources/tools/presentation/specification_parser.py +++ b/resources/tools/presentation/specification_parser.py @@ -192,7 +192,7 @@ class Specification: :returns: List of specifications of tables to be generated. :rtype: list """ - return self._specification[u"tables"] + return self._specification.get(u"tables", list()) @property def plots(self): @@ -201,7 +201,7 @@ class Specification: :returns: List of specifications of plots to be generated. :rtype: list """ - return self._specification[u"plots"] + return self._specification.get(u"plots", list()) @property def files(self): @@ -210,7 +210,7 @@ class Specification: :returns: List of specifications of files to be generated. :rtype: list """ - return self._specification[u"files"] + return self._specification.get(u"files", list()) @property def cpta(self): @@ -614,6 +614,8 @@ class Specification: idx = self._get_type_index(u"static") if idx is None: logging.warning(u"No static content specified.") + self._specification[u"static"] = dict() + return for key, value in self._cfg_yaml[idx].items(): if isinstance(value, str): @@ -664,9 +666,16 @@ class Specification: table[u"columns"][i][u"data-replacement"] = \ self.data_sets[data_set] + if table.get(u"lines", None): + for i in range(len(table[u"lines"])): + data_set = table[u"lines"][i].get(u"data-set", None) + if isinstance(data_set, str): + table[u"lines"][i][u"data-set"] = \ + self.data_sets[data_set] + except KeyError: raise PresentationError( - f"Wrong data set used in {table.get(u'title', u'')}." + f"Wrong set '{data_set}' used in {table.get(u'title', u'')}." ) self._specification[u"tables"].append(table) @@ -816,10 +825,26 @@ class Specification: logging.info(u"Parsing specification: INPUT") - for data_set in self.data_sets.values(): - if data_set == "data-sets": - continue - for job, builds in data_set.items(): + idx = self._get_type_index(u"input") + if idx is None: + logging.info(u"Creating the list of inputs from data sets.") + for data_set in self.data_sets.values(): + if data_set == "data-sets": + continue + for job, builds in data_set.items(): + for build in builds: + self.add_build( + job, + { + u"build": build, + u"status": None, + u"file-name": None, + u"source": None + } + ) + else: + logging.info(u"Reading pre-defined inputs.") + for job, builds in self._cfg_yaml[idx][u"builds"].items(): for build in builds: self.add_build( job,