wmglobalqueue 2.3.10__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of wmglobalqueue might be problematic. Click here for more details.
- Utils/CPMetrics.py +270 -0
- Utils/CertTools.py +62 -0
- Utils/EmailAlert.py +50 -0
- Utils/ExtendedUnitTestCase.py +62 -0
- Utils/FileTools.py +182 -0
- Utils/IteratorTools.py +80 -0
- Utils/MathUtils.py +31 -0
- Utils/MemoryCache.py +119 -0
- Utils/Patterns.py +24 -0
- Utils/Pipeline.py +137 -0
- Utils/PortForward.py +97 -0
- Utils/ProcessStats.py +103 -0
- Utils/PythonVersion.py +17 -0
- Utils/Signals.py +36 -0
- Utils/TemporaryEnvironment.py +27 -0
- Utils/Throttled.py +227 -0
- Utils/Timers.py +130 -0
- Utils/Timestamps.py +86 -0
- Utils/TokenManager.py +143 -0
- Utils/Tracing.py +60 -0
- Utils/TwPrint.py +98 -0
- Utils/Utilities.py +308 -0
- Utils/__init__.py +11 -0
- WMCore/ACDC/Collection.py +57 -0
- WMCore/ACDC/CollectionTypes.py +12 -0
- WMCore/ACDC/CouchCollection.py +67 -0
- WMCore/ACDC/CouchFileset.py +238 -0
- WMCore/ACDC/CouchService.py +73 -0
- WMCore/ACDC/DataCollectionService.py +485 -0
- WMCore/ACDC/Fileset.py +94 -0
- WMCore/ACDC/__init__.py +11 -0
- WMCore/Algorithms/Alarm.py +39 -0
- WMCore/Algorithms/MathAlgos.py +274 -0
- WMCore/Algorithms/MiscAlgos.py +67 -0
- WMCore/Algorithms/ParseXMLFile.py +115 -0
- WMCore/Algorithms/Permissions.py +27 -0
- WMCore/Algorithms/Singleton.py +58 -0
- WMCore/Algorithms/SubprocessAlgos.py +129 -0
- WMCore/Algorithms/__init__.py +7 -0
- WMCore/Cache/GenericDataCache.py +98 -0
- WMCore/Cache/WMConfigCache.py +572 -0
- WMCore/Cache/__init__.py +0 -0
- WMCore/Configuration.py +651 -0
- WMCore/DAOFactory.py +47 -0
- WMCore/DataStructs/File.py +177 -0
- WMCore/DataStructs/Fileset.py +140 -0
- WMCore/DataStructs/Job.py +182 -0
- WMCore/DataStructs/JobGroup.py +142 -0
- WMCore/DataStructs/JobPackage.py +49 -0
- WMCore/DataStructs/LumiList.py +734 -0
- WMCore/DataStructs/Mask.py +219 -0
- WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +197 -0
- WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +92 -0
- WMCore/DataStructs/MathStructs/SummaryHistogram.py +117 -0
- WMCore/DataStructs/MathStructs/__init__.py +0 -0
- WMCore/DataStructs/Pickleable.py +24 -0
- WMCore/DataStructs/Run.py +256 -0
- WMCore/DataStructs/Subscription.py +175 -0
- WMCore/DataStructs/WMObject.py +47 -0
- WMCore/DataStructs/WorkUnit.py +112 -0
- WMCore/DataStructs/Workflow.py +60 -0
- WMCore/DataStructs/__init__.py +8 -0
- WMCore/Database/CMSCouch.py +1349 -0
- WMCore/Database/ConfigDBMap.py +29 -0
- WMCore/Database/CouchUtils.py +118 -0
- WMCore/Database/DBCore.py +198 -0
- WMCore/Database/DBCreator.py +113 -0
- WMCore/Database/DBExceptionHandler.py +57 -0
- WMCore/Database/DBFactory.py +110 -0
- WMCore/Database/DBFormatter.py +177 -0
- WMCore/Database/Dialects.py +13 -0
- WMCore/Database/ExecuteDAO.py +327 -0
- WMCore/Database/MongoDB.py +241 -0
- WMCore/Database/MySQL/Destroy.py +42 -0
- WMCore/Database/MySQL/ListUserContent.py +20 -0
- WMCore/Database/MySQL/__init__.py +9 -0
- WMCore/Database/MySQLCore.py +132 -0
- WMCore/Database/Oracle/Destroy.py +56 -0
- WMCore/Database/Oracle/ListUserContent.py +19 -0
- WMCore/Database/Oracle/__init__.py +9 -0
- WMCore/Database/ResultSet.py +44 -0
- WMCore/Database/Transaction.py +91 -0
- WMCore/Database/__init__.py +9 -0
- WMCore/Database/ipy_profile_couch.py +438 -0
- WMCore/GlobalWorkQueue/CherryPyThreads/CleanUpTask.py +29 -0
- WMCore/GlobalWorkQueue/CherryPyThreads/HeartbeatMonitor.py +105 -0
- WMCore/GlobalWorkQueue/CherryPyThreads/LocationUpdateTask.py +28 -0
- WMCore/GlobalWorkQueue/CherryPyThreads/ReqMgrInteractionTask.py +35 -0
- WMCore/GlobalWorkQueue/CherryPyThreads/__init__.py +0 -0
- WMCore/GlobalWorkQueue/__init__.py +0 -0
- WMCore/GroupUser/CouchObject.py +127 -0
- WMCore/GroupUser/Decorators.py +51 -0
- WMCore/GroupUser/Group.py +33 -0
- WMCore/GroupUser/Interface.py +73 -0
- WMCore/GroupUser/User.py +96 -0
- WMCore/GroupUser/__init__.py +11 -0
- WMCore/Lexicon.py +836 -0
- WMCore/REST/Auth.py +202 -0
- WMCore/REST/CherryPyPeriodicTask.py +166 -0
- WMCore/REST/Error.py +333 -0
- WMCore/REST/Format.py +642 -0
- WMCore/REST/HeartbeatMonitorBase.py +90 -0
- WMCore/REST/Main.py +623 -0
- WMCore/REST/Server.py +2435 -0
- WMCore/REST/Services.py +24 -0
- WMCore/REST/Test.py +120 -0
- WMCore/REST/Tools.py +38 -0
- WMCore/REST/Validation.py +250 -0
- WMCore/REST/__init__.py +1 -0
- WMCore/ReqMgr/DataStructs/RequestStatus.py +209 -0
- WMCore/ReqMgr/DataStructs/RequestType.py +13 -0
- WMCore/ReqMgr/DataStructs/__init__.py +0 -0
- WMCore/ReqMgr/__init__.py +1 -0
- WMCore/Services/AlertManager/AlertManagerAPI.py +111 -0
- WMCore/Services/AlertManager/__init__.py +0 -0
- WMCore/Services/CRIC/CRIC.py +238 -0
- WMCore/Services/CRIC/__init__.py +0 -0
- WMCore/Services/DBS/DBS3Reader.py +1044 -0
- WMCore/Services/DBS/DBSConcurrency.py +44 -0
- WMCore/Services/DBS/DBSErrors.py +113 -0
- WMCore/Services/DBS/DBSReader.py +23 -0
- WMCore/Services/DBS/DBSUtils.py +139 -0
- WMCore/Services/DBS/DBSWriterObjects.py +381 -0
- WMCore/Services/DBS/ProdException.py +133 -0
- WMCore/Services/DBS/__init__.py +8 -0
- WMCore/Services/FWJRDB/FWJRDBAPI.py +118 -0
- WMCore/Services/FWJRDB/__init__.py +0 -0
- WMCore/Services/HTTPS/HTTPSAuthHandler.py +66 -0
- WMCore/Services/HTTPS/__init__.py +0 -0
- WMCore/Services/LogDB/LogDB.py +201 -0
- WMCore/Services/LogDB/LogDBBackend.py +191 -0
- WMCore/Services/LogDB/LogDBExceptions.py +11 -0
- WMCore/Services/LogDB/LogDBReport.py +85 -0
- WMCore/Services/LogDB/__init__.py +0 -0
- WMCore/Services/MSPileup/__init__.py +0 -0
- WMCore/Services/MSUtils/MSUtils.py +54 -0
- WMCore/Services/MSUtils/__init__.py +0 -0
- WMCore/Services/McM/McM.py +173 -0
- WMCore/Services/McM/__init__.py +8 -0
- WMCore/Services/MonIT/Grafana.py +133 -0
- WMCore/Services/MonIT/__init__.py +0 -0
- WMCore/Services/PyCondor/PyCondorAPI.py +154 -0
- WMCore/Services/PyCondor/PyCondorUtils.py +105 -0
- WMCore/Services/PyCondor/__init__.py +0 -0
- WMCore/Services/ReqMgr/ReqMgr.py +261 -0
- WMCore/Services/ReqMgr/__init__.py +0 -0
- WMCore/Services/ReqMgrAux/ReqMgrAux.py +419 -0
- WMCore/Services/ReqMgrAux/__init__.py +0 -0
- WMCore/Services/RequestDB/RequestDBReader.py +267 -0
- WMCore/Services/RequestDB/RequestDBWriter.py +39 -0
- WMCore/Services/RequestDB/__init__.py +0 -0
- WMCore/Services/Requests.py +624 -0
- WMCore/Services/Rucio/Rucio.py +1287 -0
- WMCore/Services/Rucio/RucioUtils.py +74 -0
- WMCore/Services/Rucio/__init__.py +0 -0
- WMCore/Services/RucioConMon/RucioConMon.py +128 -0
- WMCore/Services/RucioConMon/__init__.py +0 -0
- WMCore/Services/Service.py +400 -0
- WMCore/Services/StompAMQ/__init__.py +0 -0
- WMCore/Services/TagCollector/TagCollector.py +155 -0
- WMCore/Services/TagCollector/XMLUtils.py +98 -0
- WMCore/Services/TagCollector/__init__.py +0 -0
- WMCore/Services/UUIDLib.py +13 -0
- WMCore/Services/UserFileCache/UserFileCache.py +160 -0
- WMCore/Services/UserFileCache/__init__.py +8 -0
- WMCore/Services/WMAgent/WMAgent.py +63 -0
- WMCore/Services/WMAgent/__init__.py +0 -0
- WMCore/Services/WMArchive/CMSSWMetrics.py +526 -0
- WMCore/Services/WMArchive/DataMap.py +463 -0
- WMCore/Services/WMArchive/WMArchive.py +33 -0
- WMCore/Services/WMArchive/__init__.py +0 -0
- WMCore/Services/WMBS/WMBS.py +97 -0
- WMCore/Services/WMBS/__init__.py +0 -0
- WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +300 -0
- WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
- WMCore/Services/WMStats/WMStatsPycurl.py +145 -0
- WMCore/Services/WMStats/WMStatsReader.py +445 -0
- WMCore/Services/WMStats/WMStatsWriter.py +273 -0
- WMCore/Services/WMStats/__init__.py +0 -0
- WMCore/Services/WMStatsServer/WMStatsServer.py +134 -0
- WMCore/Services/WMStatsServer/__init__.py +0 -0
- WMCore/Services/WorkQueue/WorkQueue.py +492 -0
- WMCore/Services/WorkQueue/__init__.py +0 -0
- WMCore/Services/__init__.py +8 -0
- WMCore/Services/pycurl_manager.py +574 -0
- WMCore/WMBase.py +50 -0
- WMCore/WMConnectionBase.py +164 -0
- WMCore/WMException.py +183 -0
- WMCore/WMExceptions.py +269 -0
- WMCore/WMFactory.py +76 -0
- WMCore/WMInit.py +228 -0
- WMCore/WMLogging.py +108 -0
- WMCore/WMSpec/ConfigSectionTree.py +442 -0
- WMCore/WMSpec/Persistency.py +135 -0
- WMCore/WMSpec/Steps/BuildMaster.py +87 -0
- WMCore/WMSpec/Steps/BuildTools.py +201 -0
- WMCore/WMSpec/Steps/Builder.py +97 -0
- WMCore/WMSpec/Steps/Diagnostic.py +89 -0
- WMCore/WMSpec/Steps/Emulator.py +62 -0
- WMCore/WMSpec/Steps/ExecuteMaster.py +208 -0
- WMCore/WMSpec/Steps/Executor.py +210 -0
- WMCore/WMSpec/Steps/StepFactory.py +213 -0
- WMCore/WMSpec/Steps/TaskEmulator.py +75 -0
- WMCore/WMSpec/Steps/Template.py +204 -0
- WMCore/WMSpec/Steps/Templates/AlcaHarvest.py +76 -0
- WMCore/WMSpec/Steps/Templates/CMSSW.py +613 -0
- WMCore/WMSpec/Steps/Templates/DQMUpload.py +59 -0
- WMCore/WMSpec/Steps/Templates/DeleteFiles.py +70 -0
- WMCore/WMSpec/Steps/Templates/LogArchive.py +84 -0
- WMCore/WMSpec/Steps/Templates/LogCollect.py +105 -0
- WMCore/WMSpec/Steps/Templates/StageOut.py +105 -0
- WMCore/WMSpec/Steps/Templates/__init__.py +10 -0
- WMCore/WMSpec/Steps/WMExecutionFailure.py +21 -0
- WMCore/WMSpec/Steps/__init__.py +8 -0
- WMCore/WMSpec/Utilities.py +63 -0
- WMCore/WMSpec/WMSpecErrors.py +12 -0
- WMCore/WMSpec/WMStep.py +347 -0
- WMCore/WMSpec/WMTask.py +1980 -0
- WMCore/WMSpec/WMWorkload.py +2288 -0
- WMCore/WMSpec/WMWorkloadTools.py +370 -0
- WMCore/WMSpec/__init__.py +9 -0
- WMCore/WorkQueue/DataLocationMapper.py +273 -0
- WMCore/WorkQueue/DataStructs/ACDCBlock.py +47 -0
- WMCore/WorkQueue/DataStructs/Block.py +48 -0
- WMCore/WorkQueue/DataStructs/CouchWorkQueueElement.py +148 -0
- WMCore/WorkQueue/DataStructs/WorkQueueElement.py +274 -0
- WMCore/WorkQueue/DataStructs/WorkQueueElementResult.py +152 -0
- WMCore/WorkQueue/DataStructs/WorkQueueElementsSummary.py +185 -0
- WMCore/WorkQueue/DataStructs/__init__.py +0 -0
- WMCore/WorkQueue/Policy/End/EndPolicyInterface.py +44 -0
- WMCore/WorkQueue/Policy/End/SingleShot.py +22 -0
- WMCore/WorkQueue/Policy/End/__init__.py +32 -0
- WMCore/WorkQueue/Policy/PolicyInterface.py +17 -0
- WMCore/WorkQueue/Policy/Start/Block.py +258 -0
- WMCore/WorkQueue/Policy/Start/Dataset.py +180 -0
- WMCore/WorkQueue/Policy/Start/MonteCarlo.py +131 -0
- WMCore/WorkQueue/Policy/Start/ResubmitBlock.py +171 -0
- WMCore/WorkQueue/Policy/Start/StartPolicyInterface.py +316 -0
- WMCore/WorkQueue/Policy/Start/__init__.py +34 -0
- WMCore/WorkQueue/Policy/__init__.py +57 -0
- WMCore/WorkQueue/WMBSHelper.py +772 -0
- WMCore/WorkQueue/WorkQueue.py +1237 -0
- WMCore/WorkQueue/WorkQueueBackend.py +750 -0
- WMCore/WorkQueue/WorkQueueBase.py +39 -0
- WMCore/WorkQueue/WorkQueueExceptions.py +44 -0
- WMCore/WorkQueue/WorkQueueReqMgrInterface.py +278 -0
- WMCore/WorkQueue/WorkQueueUtils.py +130 -0
- WMCore/WorkQueue/__init__.py +13 -0
- WMCore/Wrappers/JsonWrapper/JSONThunker.py +342 -0
- WMCore/Wrappers/JsonWrapper/__init__.py +7 -0
- WMCore/Wrappers/__init__.py +6 -0
- WMCore/__init__.py +10 -0
- wmglobalqueue-2.3.10.data/data/bin/wmc-dist-patch +15 -0
- wmglobalqueue-2.3.10.data/data/bin/wmc-dist-unpatch +8 -0
- wmglobalqueue-2.3.10.data/data/bin/wmc-httpd +3 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/.couchapprc +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/README.md +40 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/index.html +264 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/js/ElementInfoByWorkflow.js +96 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/js/StuckElementInfo.js +57 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/js/WorkloadInfoTable.js +80 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/js/dataTable.js +70 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/js/namespace.js +23 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/_attachments/style/main.css +75 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/couchapp.json +4 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/filters/childQueueFilter.js +13 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/filters/filterDeletedDocs.js +3 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/filters/queueFilter.js +11 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/language +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lib/mustache.js +333 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lib/validate.js +27 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lib/workqueue_utils.js +61 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lists/elementsDetail.js +28 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lists/filter.js +86 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lists/stuckElements.js +38 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lists/workRestrictions.js +153 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/lists/workflowSummary.js +28 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/rewrites.json +73 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/shows/redirect.js +23 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/shows/status.js +40 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/ElementSummaryByWorkflow.html +27 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/StuckElementSummary.html +26 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/TaskStatus.html +23 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/WorkflowSummary.html +27 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/partials/workqueue-common-lib.html +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/partials/yui-lib-remote.html +16 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/templates/partials/yui-lib.html +18 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/updates/in-place.js +50 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/validate_doc_update.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/vendor/couchapp/_attachments/jquery.couch.app.js +235 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/vendor/couchapp/_attachments/jquery.pathbinder.js +173 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activeData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activeData/reduce.js +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activeParentData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activeParentData/reduce.js +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activePileupData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/activePileupData/reduce.js +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/analyticsData/map.js +11 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/analyticsData/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/availableByPriority/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/conflicts/map.js +5 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elements/map.js +5 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByParent/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByParentData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByPileupData/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByStatus/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsBySubscription/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByWorkflow/map.js +8 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsByWorkflow/reduce.js +3 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/elementsDetailByWorkflowAndStatus/map.js +26 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobInjectStatusByRequest/map.js +10 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobInjectStatusByRequest/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobStatusByRequest/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobStatusByRequest/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByChildQueueAndPriority/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByChildQueueAndPriority/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByChildQueueAndStatus/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByChildQueueAndStatus/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByRequest/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByRequest/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByStatus/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByStatus/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByStatusAndPriority/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/jobsByStatusAndPriority/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/openRequests/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/recent-items/map.js +5 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/siteWhitelistByRequest/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/siteWhitelistByRequest/reduce.js +1 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/specsByWorkflow/map.js +5 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/stuckElements/map.js +38 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsInjectStatusByRequest/map.js +12 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsInjectStatusByRequest/reduce.js +3 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsUrl/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsUrl/reduce.js +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsUrlByRequest/map.js +6 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/wmbsUrlByRequest/reduce.js +2 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/workflowSummary/map.js +9 -0
- wmglobalqueue-2.3.10.data/data/data/couchapps/WorkQueue/views/workflowSummary/reduce.js +10 -0
- wmglobalqueue-2.3.10.dist-info/LICENSE +202 -0
- wmglobalqueue-2.3.10.dist-info/METADATA +24 -0
- wmglobalqueue-2.3.10.dist-info/NOTICE +16 -0
- wmglobalqueue-2.3.10.dist-info/RECORD +345 -0
- wmglobalqueue-2.3.10.dist-info/WHEEL +5 -0
- wmglobalqueue-2.3.10.dist-info/top_level.txt +2 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_DQMUpload_
|
|
4
|
+
|
|
5
|
+
Template for a DQMUpload Step
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from WMCore.WMSpec.Steps.Template import Template
|
|
10
|
+
from WMCore.WMSpec.Steps.Template import CoreHelper
|
|
11
|
+
from WMCore.WMSpec.ConfigSectionTree import nodeName
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class DQMUploadStepHelper(CoreHelper):
|
|
15
|
+
"""
|
|
16
|
+
_DQMUploadStepHelper_
|
|
17
|
+
|
|
18
|
+
Add API calls and helper methods to the basic WMStepHelper to specialise
|
|
19
|
+
for DQMUpload tasks
|
|
20
|
+
|
|
21
|
+
"""
|
|
22
|
+
def setProxyFile(self, proxy):
|
|
23
|
+
"""
|
|
24
|
+
Sets the name of the proxy file in the input sandbox
|
|
25
|
+
"""
|
|
26
|
+
self.data.upload.proxy = proxy
|
|
27
|
+
|
|
28
|
+
def setServerURL(self, url):
|
|
29
|
+
"""
|
|
30
|
+
Sets the URL of the DQM GUI server.
|
|
31
|
+
"""
|
|
32
|
+
self.data.upload.URL = url
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class DQMUpload(Template):
|
|
36
|
+
"""
|
|
37
|
+
_DQMUpload_
|
|
38
|
+
|
|
39
|
+
Tools for creating a template DQMUpload Step
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
def install(self, step):
|
|
44
|
+
stepname = nodeName(step)
|
|
45
|
+
step.stepType = "DQMUpload"
|
|
46
|
+
step.section_("upload")
|
|
47
|
+
step.upload.URL = 'https://cmsweb.cern.ch/dqm/dev'
|
|
48
|
+
step.upload.proxy = None
|
|
49
|
+
|
|
50
|
+
def helper(self, step):
|
|
51
|
+
"""
|
|
52
|
+
_helper_
|
|
53
|
+
|
|
54
|
+
Wrap the WMStep provided in the CMSSW helper class that
|
|
55
|
+
includes the ability to add and manipulate the details
|
|
56
|
+
of a CMSSW workflow step
|
|
57
|
+
|
|
58
|
+
"""
|
|
59
|
+
return DQMUploadStepHelper(step)
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_DeleteFiles_
|
|
4
|
+
|
|
5
|
+
Template for a DeleteFiles Step
|
|
6
|
+
|
|
7
|
+
Mostly borrowed from StageOut since they share a similar function
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
from WMCore.WMSpec.Steps.Template import Template
|
|
15
|
+
from WMCore.WMSpec.Steps.Template import CoreHelper
|
|
16
|
+
from WMCore.WMSpec.ConfigSectionTree import nodeName
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class DeleteFilesStepHelper(CoreHelper):
|
|
21
|
+
"""
|
|
22
|
+
_StageOutStepHelper_
|
|
23
|
+
|
|
24
|
+
Add API calls and helper methods to the basic WMStepHelper to specialise
|
|
25
|
+
for StageOut tasks
|
|
26
|
+
|
|
27
|
+
This is very similar to StageOut since they have essentially the same function
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
def disableRetries(self):
|
|
32
|
+
"""
|
|
33
|
+
handy for testing, without the 10 minute retry loop
|
|
34
|
+
"""
|
|
35
|
+
self.data.retryCount = 1
|
|
36
|
+
self.data.retryDelay = 0
|
|
37
|
+
|
|
38
|
+
def addOutputDestination(self, lfn):
|
|
39
|
+
"""
|
|
40
|
+
Adds an out location to put a tarball of all logs
|
|
41
|
+
"""
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
class DeleteFiles(Template):
|
|
45
|
+
"""
|
|
46
|
+
_DeleteFiles_
|
|
47
|
+
|
|
48
|
+
Tools for creating a template DeleteFiles Step
|
|
49
|
+
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
def install(self, step):
|
|
53
|
+
stepname = nodeName(step)
|
|
54
|
+
step.stepType = "DeleteFiles"
|
|
55
|
+
step.section_("logs")
|
|
56
|
+
step.logcount = 0
|
|
57
|
+
step.retryCount = 3
|
|
58
|
+
step.retryDelay = 300
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def helper(self, step):
|
|
62
|
+
"""
|
|
63
|
+
_helper_
|
|
64
|
+
|
|
65
|
+
Wrap the WMStep provided in the CMSSW helper class that
|
|
66
|
+
includes the ability to add and manipulate the details
|
|
67
|
+
of a CMSSW workflow step
|
|
68
|
+
|
|
69
|
+
"""
|
|
70
|
+
return DeleteFilesStepHelper(step)
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_LogArchive_
|
|
4
|
+
|
|
5
|
+
Template for a LogArchive Step
|
|
6
|
+
|
|
7
|
+
Mostly borrowed from StageOut since they share a similar function
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
from WMCore.WMSpec.Steps.Template import Template
|
|
15
|
+
from WMCore.WMSpec.Steps.Template import CoreHelper
|
|
16
|
+
from WMCore.WMSpec.ConfigSectionTree import nodeName
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class LogArchiveStepHelper(CoreHelper):
|
|
21
|
+
"""
|
|
22
|
+
_StageOutStepHelper_
|
|
23
|
+
|
|
24
|
+
Add API calls and helper methods to the basic WMStepHelper to specialise
|
|
25
|
+
for StageOut tasks
|
|
26
|
+
|
|
27
|
+
This is very similar to StageOut since they have essentially the same function
|
|
28
|
+
|
|
29
|
+
"""
|
|
30
|
+
def addLog(self, infile):
|
|
31
|
+
"""
|
|
32
|
+
Enqueues(sp?) a file to the StageOut step
|
|
33
|
+
infile must be a PFN
|
|
34
|
+
outfile must be a LFN
|
|
35
|
+
"""
|
|
36
|
+
target = self.data.logs.section_("log%i" % self.data.filecount)
|
|
37
|
+
target.input = infile
|
|
38
|
+
self.data.filecount += 1
|
|
39
|
+
|
|
40
|
+
def disableRetries(self):
|
|
41
|
+
"""
|
|
42
|
+
handy for testing, without the 10 minute retry loop
|
|
43
|
+
"""
|
|
44
|
+
self.data.retryCount = 1
|
|
45
|
+
self.data.retryDelay = 0
|
|
46
|
+
|
|
47
|
+
def addOutputDestination(self, lfn):
|
|
48
|
+
"""
|
|
49
|
+
Adds an out location to put a tarball of all logs
|
|
50
|
+
"""
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
class LogArchive(Template):
|
|
54
|
+
"""
|
|
55
|
+
_LogArchive_
|
|
56
|
+
|
|
57
|
+
Tools for creating a template LogArchive Step
|
|
58
|
+
|
|
59
|
+
"""
|
|
60
|
+
|
|
61
|
+
def install(self, step):
|
|
62
|
+
stepname = nodeName(step)
|
|
63
|
+
step.stepType = "LogArchive"
|
|
64
|
+
step.section_("logs")
|
|
65
|
+
step.logcount = 0
|
|
66
|
+
step.retryCount = 3
|
|
67
|
+
step.retryDelay = 300
|
|
68
|
+
|
|
69
|
+
# Create output to put logs in
|
|
70
|
+
step.section_("output")
|
|
71
|
+
step.output.section_("modules")
|
|
72
|
+
step.output.modules.section_("logArchive")
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
def helper(self, step):
|
|
76
|
+
"""
|
|
77
|
+
_helper_
|
|
78
|
+
|
|
79
|
+
Wrap the WMStep provided in the CMSSW helper class that
|
|
80
|
+
includes the ability to add and manipulate the details
|
|
81
|
+
of a CMSSW workflow step
|
|
82
|
+
|
|
83
|
+
"""
|
|
84
|
+
return LogArchiveStepHelper(step)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_LogCollect_
|
|
4
|
+
|
|
5
|
+
Template for a LogCollect Step
|
|
6
|
+
|
|
7
|
+
Mostly borrowed from StageOut since they share a similar function
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from future.utils import viewitems
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
from WMCore.WMSpec.Steps.Template import Template
|
|
15
|
+
from WMCore.WMSpec.Steps.Template import CoreHelper
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class LogCollectStepHelper(CoreHelper):
|
|
19
|
+
"""
|
|
20
|
+
_StageOutStepHelper_
|
|
21
|
+
|
|
22
|
+
Add API calls and helper methods to the basic WMStepHelper to specialise
|
|
23
|
+
for StageOut tasks
|
|
24
|
+
|
|
25
|
+
This is very similar to StageOut since they have essentially the same function
|
|
26
|
+
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
def disableRetries(self):
|
|
30
|
+
"""
|
|
31
|
+
handy for testing, without the 10 minute retry loop
|
|
32
|
+
"""
|
|
33
|
+
self.data.retryCount = 1
|
|
34
|
+
self.data.retryDelay = 0
|
|
35
|
+
|
|
36
|
+
def addOutputDestination(self, lfn):
|
|
37
|
+
"""
|
|
38
|
+
Adds an out location to put a tarball of all logs
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
def cmsswSetup(self, cmsswVersion, **options):
|
|
42
|
+
"""
|
|
43
|
+
_cmsswSetup_
|
|
44
|
+
Provide setup details for CMSSW.
|
|
45
|
+
cmsswVersion - required - version of CMSSW to use
|
|
46
|
+
Optional:
|
|
47
|
+
scramCommand - defaults to scramv1
|
|
48
|
+
scramProject - defaults to CMSSW
|
|
49
|
+
scramArch - optional scram architecture, defaults to None
|
|
50
|
+
buildArch - optional scram build architecture, defaults to None
|
|
51
|
+
softwareEnvironment - setup command to bootstrap scram,defaults to None
|
|
52
|
+
"""
|
|
53
|
+
self.data.application.setup.cmsswVersion = cmsswVersion
|
|
54
|
+
for k, v in viewitems(options):
|
|
55
|
+
setattr(self.data.application.setup, k, v)
|
|
56
|
+
return
|
|
57
|
+
|
|
58
|
+
def getScramArch(self):
|
|
59
|
+
"""
|
|
60
|
+
_getScramArch_
|
|
61
|
+
|
|
62
|
+
Retrieve the scram architecture used for this step.
|
|
63
|
+
"""
|
|
64
|
+
return self.data.application.setup.scramArch
|
|
65
|
+
|
|
66
|
+
def getCMSSWVersion(self):
|
|
67
|
+
"""
|
|
68
|
+
_getCMSSWVersion_
|
|
69
|
+
|
|
70
|
+
Retrieve the version of the framework used for this step.
|
|
71
|
+
"""
|
|
72
|
+
return self.data.application.setup.cmsswVersion
|
|
73
|
+
|
|
74
|
+
class LogCollect(Template):
|
|
75
|
+
"""
|
|
76
|
+
_LogCollect_
|
|
77
|
+
|
|
78
|
+
Tools for creating a template LogCollect Step
|
|
79
|
+
|
|
80
|
+
"""
|
|
81
|
+
|
|
82
|
+
def install(self, step):
|
|
83
|
+
step.stepType = "LogCollect"
|
|
84
|
+
step.section_("logs")
|
|
85
|
+
step.logcount = 0
|
|
86
|
+
step.retryCount = 3
|
|
87
|
+
step.retryDelay = 300
|
|
88
|
+
step.application.section_("setup")
|
|
89
|
+
step.application.setup.scramCommand = "scramv1"
|
|
90
|
+
step.application.setup.scramProject = "CMSSW"
|
|
91
|
+
step.application.setup.cmsswVersion = None
|
|
92
|
+
step.application.setup.scramArch = None
|
|
93
|
+
step.application.setup.buildArch = None
|
|
94
|
+
step.application.setup.softwareEnvironment = None
|
|
95
|
+
|
|
96
|
+
def helper(self, step):
|
|
97
|
+
"""
|
|
98
|
+
_helper_
|
|
99
|
+
|
|
100
|
+
Wrap the WMStep provided in the CMSSW helper class that
|
|
101
|
+
includes the ability to add and manipulate the details
|
|
102
|
+
of a CMSSW workflow step
|
|
103
|
+
|
|
104
|
+
"""
|
|
105
|
+
return LogCollectStepHelper(step)
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_StageOut_
|
|
4
|
+
|
|
5
|
+
Template for a StageOut Step
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
from WMCore.WMSpec.Steps.Template import Template
|
|
10
|
+
from WMCore.WMSpec.Steps.Template import CoreHelper
|
|
11
|
+
from WMCore.WMSpec.ConfigSectionTree import nodeName
|
|
12
|
+
|
|
13
|
+
class StageOutStepHelper(CoreHelper):
|
|
14
|
+
"""
|
|
15
|
+
_StageOutStepHelper_
|
|
16
|
+
|
|
17
|
+
Add API calls and helper methods to the basic WMStepHelper to specialise
|
|
18
|
+
for StageOut tasks
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
def addFile(self, infile, outfile, stageOut = True):
|
|
22
|
+
"""
|
|
23
|
+
Enqueues(sp?) a file to the StageOut step
|
|
24
|
+
infile must be a LOCAL FILENAME. No file:/// in front
|
|
25
|
+
outfile must be a LFN which will be mapped to the remote
|
|
26
|
+
"""
|
|
27
|
+
target = self.data.files.section_("file%i" % self.data.filecount)
|
|
28
|
+
target.input = infile
|
|
29
|
+
target.output = outfile
|
|
30
|
+
target.stageOut = stageOut
|
|
31
|
+
self.data.filecount += 1
|
|
32
|
+
|
|
33
|
+
def disableRetries(self):
|
|
34
|
+
"""
|
|
35
|
+
handy for testing, without the 10 minute retry loop
|
|
36
|
+
"""
|
|
37
|
+
self.data.retryCount = 1
|
|
38
|
+
self.data.retryDelay = 0
|
|
39
|
+
|
|
40
|
+
def disableStraightToMerge(self):
|
|
41
|
+
"""
|
|
42
|
+
_disableStraightToMerge_
|
|
43
|
+
|
|
44
|
+
Disable straight to merge for this step.
|
|
45
|
+
"""
|
|
46
|
+
if hasattr(self.data.output, "minMergeSize"):
|
|
47
|
+
delattr(self.data.output, "minMergeSize")
|
|
48
|
+
|
|
49
|
+
return
|
|
50
|
+
|
|
51
|
+
def disableStraightToMergeForOutputModules(self, outputModules):
|
|
52
|
+
"""
|
|
53
|
+
_disableStraightToMergeForOutputModules_
|
|
54
|
+
|
|
55
|
+
Disable straight to merge only for these output modules.
|
|
56
|
+
"""
|
|
57
|
+
self.data.output.forceUnmergedOutputs = outputModules
|
|
58
|
+
|
|
59
|
+
return
|
|
60
|
+
|
|
61
|
+
def setMinMergeSize(self, minMergeSize, maxMergeEvents):
|
|
62
|
+
"""
|
|
63
|
+
_setMinMergeSize_
|
|
64
|
+
|
|
65
|
+
Set the mininum size for promoting a file to merged status.
|
|
66
|
+
"""
|
|
67
|
+
self.data.output.minMergeSize = minMergeSize
|
|
68
|
+
self.data.output.maxMergeEvents = maxMergeEvents
|
|
69
|
+
return
|
|
70
|
+
|
|
71
|
+
def minMergeSize(self):
|
|
72
|
+
"""
|
|
73
|
+
_minMergeSize_
|
|
74
|
+
|
|
75
|
+
Retrieve the minimum size for promoting a file to merged status. If
|
|
76
|
+
straight to merge is disabled -1 will be returned.
|
|
77
|
+
"""
|
|
78
|
+
return getattr(self.data.output, "minMergeSize", -1)
|
|
79
|
+
|
|
80
|
+
class StageOut(Template):
|
|
81
|
+
"""
|
|
82
|
+
_StageOut_
|
|
83
|
+
|
|
84
|
+
Tools for creating a template StageOut Step
|
|
85
|
+
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
def install(self, step):
|
|
89
|
+
step.stepType = "StageOut"
|
|
90
|
+
step.section_("files")
|
|
91
|
+
step.filecount = 0
|
|
92
|
+
step.retryCount = 3
|
|
93
|
+
step.retryDelay = 300
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def helper(self, step):
|
|
97
|
+
"""
|
|
98
|
+
_helper_
|
|
99
|
+
|
|
100
|
+
Wrap the WMStep provided in the CMSSW helper class that
|
|
101
|
+
includes the ability to add and manipulate the details
|
|
102
|
+
of a CMSSW workflow step
|
|
103
|
+
|
|
104
|
+
"""
|
|
105
|
+
return StageOutStepHelper(step)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_WMExecutionFailure_
|
|
4
|
+
|
|
5
|
+
Error class to generate when an executor implementation encounters a problem
|
|
6
|
+
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
from WMCore.WMException import WMException
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class WMExecutionFailure(WMException):
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def __init__(self, code, name, detail):
|
|
18
|
+
WMException.__init__(self, detail, code)
|
|
19
|
+
self.code = code
|
|
20
|
+
self.name = name
|
|
21
|
+
self.detail = detail
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
"""
|
|
3
|
+
_Utilities_
|
|
4
|
+
|
|
5
|
+
Common/useful utils.
|
|
6
|
+
Note that WMWorkload, WMTask and WMStep all depend on this module, so
|
|
7
|
+
dont import them in it.
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def findObjectTypeAboveNode(node, objType):
|
|
13
|
+
"""
|
|
14
|
+
_findObjectTypeAboveNode_
|
|
15
|
+
|
|
16
|
+
Given a config section (tree or not) traverse up the parent
|
|
17
|
+
structure until finding the first entry containing an objectType
|
|
18
|
+
setting that is set to the required type
|
|
19
|
+
|
|
20
|
+
"""
|
|
21
|
+
if getattr(node, "objectType", None) == objType:
|
|
22
|
+
return node
|
|
23
|
+
if node._internal_parent_ref == None:
|
|
24
|
+
return None
|
|
25
|
+
return findObjectTypeAboveNode(node._internal_parent_ref, objType)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def findTaskAboveNode(node):
|
|
29
|
+
"""
|
|
30
|
+
_findTaskAboveNode_
|
|
31
|
+
|
|
32
|
+
Given a config section (tree or not) traverse up the parent
|
|
33
|
+
structure until finding the first entry containing an objectType
|
|
34
|
+
setting that is set to WMTask
|
|
35
|
+
|
|
36
|
+
"""
|
|
37
|
+
return findObjectTypeAboveNode(node, "WMTask")
|
|
38
|
+
|
|
39
|
+
def findWorkloadAboveNode(node):
|
|
40
|
+
"""
|
|
41
|
+
_findWorkloadAboveNode_
|
|
42
|
+
|
|
43
|
+
Given a config section (tree or not) traverse up the parent
|
|
44
|
+
structure until finding the first entry containing an objectType
|
|
45
|
+
setting that is set to WMWorkload
|
|
46
|
+
|
|
47
|
+
"""
|
|
48
|
+
return findObjectTypeAboveNode(node, "WMWorkload")
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def stepIdentifier(stepHelper):
|
|
53
|
+
"""
|
|
54
|
+
_stepIdentifier_
|
|
55
|
+
|
|
56
|
+
Generate the /Workload/Task/Step id from the step instance
|
|
57
|
+
given.
|
|
58
|
+
|
|
59
|
+
"""
|
|
60
|
+
task = findTaskAboveNode(stepHelper.data)
|
|
61
|
+
identifier = "%s/%s" % (task.pathName,
|
|
62
|
+
stepHelper.name())
|
|
63
|
+
return identifier
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
from WMCore.WMException import WMException
|
|
2
|
+
|
|
3
|
+
class WMSpecFactoryException(WMException):
|
|
4
|
+
"""
|
|
5
|
+
_WMSpecFactoryException_
|
|
6
|
+
|
|
7
|
+
This exception will be raised by validation functions if
|
|
8
|
+
the code fails validation. It will then be changed into
|
|
9
|
+
a proper HTTPError in the ReqMgr, with the message you enter
|
|
10
|
+
used as the message for farther up the line.
|
|
11
|
+
"""
|
|
12
|
+
pass
|