From 8fd2f2f2e67cbdd1704c390ed051b531846f0a1e Mon Sep 17 00:00:00 2001 From: Valentin Kuznetsov Date: Wed, 16 Mar 2022 08:15:55 -0400 Subject: [PATCH] Set processing version as integer --- src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py | 13 ++++++++++--- src/python/WMComponent/DBS3Buffer/DBSBufferFile.py | 12 ++++++++++-- src/python/WMCore/WMSpec/WMWorkload.py | 12 +++++++++++- .../WMComponent_t/DBS3Buffer_t/DBSBufferFile_t.py | 2 +- 4 files changed, 32 insertions(+), 7 deletions(-) diff --git a/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py b/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py index 1a1fd63bc5..8a166ded30 100644 --- a/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py +++ b/src/python/WMComponent/DBS3Buffer/DBSBufferBlock.py @@ -232,10 +232,17 @@ def setProcessingVer(self, procVer): Set the block's processing version. """ # compatibility statement for old style proc ver (still needed ?) - if procVer.count("-") == 1: - self.data["processing_era"]["processing_version"] = procVer.split("-v")[1] + pver = procVer + if isinstance(pver, str) or isinstance(pver, bytes): + procVer = int(pver) + elif isinstance(pver, int): + procVer = pver + elif pver == None: + procVer = 0 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..beee930153 100644 --- a/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py +++ b/src/python/WMComponent/DBS3Buffer/DBSBufferFile.py @@ -387,8 +387,16 @@ def setProcessingVer(self, ver): Set the era """ - - self['processingVer'] = ver + if isinstance(ver, str) or isinstance(ver, bytes): + procVer = int(ver) + elif isinstance(ver, int): + procVer = ver + elif ver == None: + procVer = 0 + 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..04fc753666 100644 --- a/src/python/WMCore/WMSpec/WMWorkload.py +++ b/src/python/WMCore/WMSpec/WMWorkload.py @@ -956,7 +956,17 @@ def setProcessingVersion(self, processingVersions): task.setProcessingVersion(processingVersions, stepChainMap=stepNameMapping) self.updateLFNsAndDatasets() - self.data.properties.processingVersion = processingVersions + 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): diff --git a/test/python/WMComponent_t/DBS3Buffer_t/DBSBufferFile_t.py b/test/python/WMComponent_t/DBS3Buffer_t/DBSBufferFile_t.py index 3062a937ea..231b095a52 100644 --- a/test/python/WMComponent_t/DBS3Buffer_t/DBSBufferFile_t.py +++ b/test/python/WMComponent_t/DBS3Buffer_t/DBSBufferFile_t.py @@ -947,7 +947,7 @@ def testProperties(self): configContent="MOREGIBBERISH") testFileA.setDatasetPath("/Cosmics/CRUZET09-PromptReco-v1/RECO") testFileA.setValidStatus(validStatus="VALID") - testFileA.setProcessingVer(ver="ProcVer") + testFileA.setProcessingVer(ver="123") testFileA.setAcquisitionEra(era="AcqEra") testFileA.setGlobalTag(globalTag="GlobalTag") testFileA.setDatasetParent(datasetParent="Parent")