diff --git a/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py b/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py index 1a1fd63bc5..a4bf54b3b9 100644 --- a/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py +++ b/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py @@ -232,10 +232,18 @@ def setProcessingVer(self, procVer): Set the block's processing version. """ # compatibility statement for old style proc ver (still needed ?) + pver = procVer if procVer.count("-") == 1: - self.data["processing_era"]["processing_version"] = procVer.split("-v")[1] + pver = procVer.split("-v")[1] + + if isinstance(pver, str) or isinstance(pver, bytes): + procVer = int(pver) + elif isinstance(pver, int): + procVer = pver else: - self.data["processing_era"]["processing_version"] = procVer + msg = "Provided procVer=%s of type %s cannot be converted to int" % (procVer, type(procVer)) + raise Exception(msg) + self.data["processing_era"]["processing_version"] = procVer self.data["processing_era"]["create_by"] = "WMAgent" self.data["processing_era"]["description"] = "" diff --git a/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py b/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py index d258544c9d..efdabd7bd2 100644 --- a/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py +++ b/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py @@ -388,7 +388,15 @@ def setProcessingVer(self, ver): Set the era """ - self['processingVer'] = ver + procVer = 0 # type declaration + if isinstance(ver, str) or isinstance(ver, bytes): + procVer = int(ver) + elif isinstance(ver, int): + procVer = ver + else: + msg = "Provided procVer=%s of type %s cannot be converted to int" % (ver, type(ver)) + raise Exception(msg) + self['processingVer'] = procVer return def setAcquisitionEra(self, era): diff --git a/src/python/WMCore/WMSpec/WMWorkload.py b/src/python/WMCore/WMSpec/WMWorkload.py index fdd161ca2f..a6c9d4cab4 100644 --- a/src/python/WMCore/WMSpec/WMWorkload.py +++ b/src/python/WMCore/WMSpec/WMWorkload.py @@ -956,7 +956,18 @@ def setProcessingVersion(self, processingVersions): task.setProcessingVersion(processingVersions, stepChainMap=stepNameMapping) self.updateLFNsAndDatasets() - self.data.properties.processingVersion = processingVersions + procVer = 0 # type declaration + if isinstance(processingVersions, str) or isinstance(processingVersions, bytes): + procVer = int(processingVersions) + elif isinstance(processingVersions, int): + procVer = processingVersions + elif isinstance(processingVersions, dict) or isinstance(processingVersions, list): + procVer = processingVersions + else: + msg = "Provided procVer=%s of type %s cannot be converted to int" \ + % (processingVersions, type(processingVersions)) + raise Exception(msg) + self.data.properties.processingVersion = procVer return def setProcessingString(self, processingStrings):