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
WMCore/WMSpec/WMStep.py
ADDED
|
@@ -0,0 +1,347 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# pylint: disable=E1101
|
|
3
|
+
"""
|
|
4
|
+
_WMStep_
|
|
5
|
+
|
|
6
|
+
Basic unit of executable work within a task.
|
|
7
|
+
Equivalent of a PayloadNode in the old production system WorkflowSpec
|
|
8
|
+
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
from WMCore.WMSpec.ConfigSectionTree import ConfigSectionTree, TreeHelper
|
|
14
|
+
from WMCore.WMSpec.Steps.StepFactory import getStepTypeHelper
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class WMStepHelper(TreeHelper):
|
|
18
|
+
"""
|
|
19
|
+
_WMStepHelper_
|
|
20
|
+
|
|
21
|
+
Utils, methods and functions for manipulating the data in a WMStep
|
|
22
|
+
|
|
23
|
+
"""
|
|
24
|
+
def __init__(self, stepInstance):
|
|
25
|
+
TreeHelper.__init__(self, stepInstance)
|
|
26
|
+
|
|
27
|
+
def name(self):
|
|
28
|
+
return self.data._internal_name
|
|
29
|
+
|
|
30
|
+
def setStepType(self, stepType):
|
|
31
|
+
"""
|
|
32
|
+
_setStepType_
|
|
33
|
+
|
|
34
|
+
Set the type of the step.
|
|
35
|
+
"""
|
|
36
|
+
self.data.stepType = stepType
|
|
37
|
+
|
|
38
|
+
def stepType(self):
|
|
39
|
+
"""
|
|
40
|
+
_stepType_
|
|
41
|
+
|
|
42
|
+
Retrieve the step type.
|
|
43
|
+
"""
|
|
44
|
+
return self.data.stepType
|
|
45
|
+
|
|
46
|
+
def getNumberOfCores(self):
|
|
47
|
+
"""
|
|
48
|
+
_getNumberOfCores_
|
|
49
|
+
|
|
50
|
+
Return the number of cores for the step in question
|
|
51
|
+
"""
|
|
52
|
+
try:
|
|
53
|
+
return int(self.data.application.multicore.numberOfCores)
|
|
54
|
+
except Exception:
|
|
55
|
+
return 1
|
|
56
|
+
|
|
57
|
+
def getNumberOfStreams(self):
|
|
58
|
+
"""
|
|
59
|
+
_getNumberOfStreams_
|
|
60
|
+
|
|
61
|
+
Return the number of event streams for the step in question
|
|
62
|
+
"""
|
|
63
|
+
try:
|
|
64
|
+
return int(self.data.application.multicore.eventStreams)
|
|
65
|
+
except Exception:
|
|
66
|
+
return 0
|
|
67
|
+
|
|
68
|
+
def getGPURequired(self):
|
|
69
|
+
"""
|
|
70
|
+
Return whether GPU is required or not for this step object
|
|
71
|
+
"""
|
|
72
|
+
if hasattr(self.data.application, "gpu"):
|
|
73
|
+
if hasattr(self.data.application.gpu, "gpuRequired"):
|
|
74
|
+
return self.data.application.gpu.gpuRequired
|
|
75
|
+
return None
|
|
76
|
+
|
|
77
|
+
def getGPURequirements(self):
|
|
78
|
+
"""
|
|
79
|
+
Return the GPU requirements for this step object
|
|
80
|
+
"""
|
|
81
|
+
if hasattr(self.data.application, "gpu"):
|
|
82
|
+
if hasattr(self.data.application.gpu, "gpuRequirements"):
|
|
83
|
+
return self.data.application.gpu.gpuRequirements
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
def addStep(self, stepName):
|
|
87
|
+
"""
|
|
88
|
+
_addStep_
|
|
89
|
+
|
|
90
|
+
Add a new step with the name provided to this step as a child
|
|
91
|
+
"""
|
|
92
|
+
node = WMStepHelper(WMStep(stepName))
|
|
93
|
+
self.addNode(node)
|
|
94
|
+
return node
|
|
95
|
+
|
|
96
|
+
def addTopStep(self, stepName):
|
|
97
|
+
"""
|
|
98
|
+
_addTopStep_
|
|
99
|
+
|
|
100
|
+
Add a new step with the name provided to this step as a child. This
|
|
101
|
+
will be the first top step of all the children.
|
|
102
|
+
"""
|
|
103
|
+
node = WMStepHelper(WMStep(stepName))
|
|
104
|
+
self.addTopNode(node)
|
|
105
|
+
return node
|
|
106
|
+
|
|
107
|
+
def getStep(self, stepName):
|
|
108
|
+
"""
|
|
109
|
+
_getStep_
|
|
110
|
+
|
|
111
|
+
Retrieve the named step and wrap it in a helper
|
|
112
|
+
|
|
113
|
+
"""
|
|
114
|
+
node = self.getNode(stepName)
|
|
115
|
+
if node == None:
|
|
116
|
+
return None
|
|
117
|
+
return WMStepHelper(node)
|
|
118
|
+
|
|
119
|
+
def setUserDN(self, userDN):
|
|
120
|
+
"""
|
|
121
|
+
_setUserDN_
|
|
122
|
+
|
|
123
|
+
Set the user DN
|
|
124
|
+
|
|
125
|
+
"""
|
|
126
|
+
self.data.userDN = userDN
|
|
127
|
+
|
|
128
|
+
def setAsyncDest(self, asyncDest):
|
|
129
|
+
"""
|
|
130
|
+
_setAsyncDest_
|
|
131
|
+
|
|
132
|
+
Set the async. destination
|
|
133
|
+
|
|
134
|
+
"""
|
|
135
|
+
self.data.asyncDest = asyncDest
|
|
136
|
+
|
|
137
|
+
def setUserRoleAndGroup(self, owner_vogroup, owner_vorole):
|
|
138
|
+
"""
|
|
139
|
+
_setUserRoleAndGroup_
|
|
140
|
+
|
|
141
|
+
Set user group and role.
|
|
142
|
+
|
|
143
|
+
"""
|
|
144
|
+
self.data.owner_vogroup = owner_vogroup
|
|
145
|
+
self.data.owner_vorole = owner_vorole
|
|
146
|
+
|
|
147
|
+
def getTypeHelper(self):
|
|
148
|
+
"""
|
|
149
|
+
_getTypeHelper_
|
|
150
|
+
|
|
151
|
+
Get a step type specific helper for this object using the StepFactory
|
|
152
|
+
|
|
153
|
+
"""
|
|
154
|
+
return getStepTypeHelper(self.data)
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def addOverride(self, override, overrideValue):
|
|
158
|
+
"""
|
|
159
|
+
_addOverride_
|
|
160
|
+
|
|
161
|
+
Add overrides for use in step executors
|
|
162
|
+
"""
|
|
163
|
+
|
|
164
|
+
setattr(self.data.override, override, overrideValue)
|
|
165
|
+
|
|
166
|
+
return
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
|
|
170
|
+
def getOverrides(self):
|
|
171
|
+
"""
|
|
172
|
+
_getOverrides_
|
|
173
|
+
|
|
174
|
+
Get overrides for use in executors
|
|
175
|
+
"""
|
|
176
|
+
|
|
177
|
+
return self.data.override.dictionary_()
|
|
178
|
+
|
|
179
|
+
def getOutputModule(self, moduleName):
|
|
180
|
+
"""
|
|
181
|
+
_getOutputModule_
|
|
182
|
+
|
|
183
|
+
Get an output module from the step
|
|
184
|
+
Return None if non-existant
|
|
185
|
+
"""
|
|
186
|
+
|
|
187
|
+
if hasattr(self.data.output, 'modules'):
|
|
188
|
+
if hasattr(self.data.output.modules, moduleName):
|
|
189
|
+
return getattr(self.data.output.modules, moduleName)
|
|
190
|
+
|
|
191
|
+
return None
|
|
192
|
+
|
|
193
|
+
def setIgnoredOutputModules(self, moduleList):
|
|
194
|
+
"""
|
|
195
|
+
_setIgnoredOutputModules_
|
|
196
|
+
|
|
197
|
+
Set a list of output modules to be ignored,
|
|
198
|
+
only CMSSW steps will use this
|
|
199
|
+
"""
|
|
200
|
+
|
|
201
|
+
self.data.output.ignoredModules = moduleList
|
|
202
|
+
return
|
|
203
|
+
|
|
204
|
+
def setNewStageoutOverride(self, newValue):
|
|
205
|
+
"""
|
|
206
|
+
A toggle for steps to use old or new stageout code
|
|
207
|
+
"""
|
|
208
|
+
self.data.newStageout = newValue
|
|
209
|
+
|
|
210
|
+
def getNewStageoutOverride(self):
|
|
211
|
+
"""
|
|
212
|
+
A toggle for steps to use old or new stageout code
|
|
213
|
+
"""
|
|
214
|
+
if hasattr(self.data, 'newStageout'):
|
|
215
|
+
return self.data.newStageout
|
|
216
|
+
else:
|
|
217
|
+
return False
|
|
218
|
+
|
|
219
|
+
def getIgnoredOutputModules(self):
|
|
220
|
+
"""
|
|
221
|
+
_ignoreOutputModules_
|
|
222
|
+
|
|
223
|
+
Get a list of output modules to be ignored,
|
|
224
|
+
if the attribute is not set then return an empty list
|
|
225
|
+
"""
|
|
226
|
+
|
|
227
|
+
if hasattr(self.data.output, 'ignoredModules'):
|
|
228
|
+
return self.data.output.ignoredModules
|
|
229
|
+
return []
|
|
230
|
+
|
|
231
|
+
def getUserSandboxes(self):
|
|
232
|
+
if hasattr(self.data, 'user'):
|
|
233
|
+
if hasattr(self.data.user, 'inputSandboxes'):
|
|
234
|
+
return self.data.user.inputSandboxes
|
|
235
|
+
return []
|
|
236
|
+
|
|
237
|
+
def getUserFiles(self):
|
|
238
|
+
if hasattr(self.data, 'user'):
|
|
239
|
+
if hasattr(self.data.user, 'userFiles'):
|
|
240
|
+
return self.data.user.userFiles
|
|
241
|
+
return []
|
|
242
|
+
|
|
243
|
+
def setErrorDestinationStep(self, stepName):
|
|
244
|
+
"""
|
|
245
|
+
_setErrorDestinationStep_
|
|
246
|
+
|
|
247
|
+
In case of error, give the name of the step that
|
|
248
|
+
the execute process should go to.
|
|
249
|
+
"""
|
|
250
|
+
|
|
251
|
+
self.data.errorDestinationStep = stepName
|
|
252
|
+
return
|
|
253
|
+
|
|
254
|
+
def getErrorDestinationStep(self):
|
|
255
|
+
"""
|
|
256
|
+
_getErrorDestinationStep_
|
|
257
|
+
|
|
258
|
+
In case of error, get the step that should be
|
|
259
|
+
next in the process
|
|
260
|
+
"""
|
|
261
|
+
|
|
262
|
+
return getattr(self.data, 'errorDestinationStep', None)
|
|
263
|
+
|
|
264
|
+
|
|
265
|
+
def getConfigInfo(self):
|
|
266
|
+
"""
|
|
267
|
+
_getConfigInfo_
|
|
268
|
+
|
|
269
|
+
Get information about the config cache location
|
|
270
|
+
"""
|
|
271
|
+
|
|
272
|
+
cacheUrl = getattr(self.data.application.configuration, 'configCacheUrl', None)
|
|
273
|
+
cacheDb = getattr(self.data.application.configuration, 'cacheName', None)
|
|
274
|
+
configId = getattr(self.data.application.configuration, 'configId', None)
|
|
275
|
+
|
|
276
|
+
return cacheUrl, cacheDb, configId
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
def listAnalysisFiles(self):
|
|
280
|
+
"""
|
|
281
|
+
_listAnalysisFiles_
|
|
282
|
+
|
|
283
|
+
retrieve list of output module names
|
|
284
|
+
|
|
285
|
+
"""
|
|
286
|
+
if hasattr(self.data.output, "analysisFiles"):
|
|
287
|
+
return list(self.data.output.analysisFiles.dictionary_())
|
|
288
|
+
|
|
289
|
+
return []
|
|
290
|
+
|
|
291
|
+
|
|
292
|
+
def getAnalysisFile(self, name):
|
|
293
|
+
"""
|
|
294
|
+
_getAnalysisFile_
|
|
295
|
+
|
|
296
|
+
retrieve the data structure for an analysis file by name
|
|
297
|
+
None if not found
|
|
298
|
+
"""
|
|
299
|
+
return getattr(self.data.output.analysisFiles, name, None)
|
|
300
|
+
|
|
301
|
+
def getConfigCacheID(self):
|
|
302
|
+
"""
|
|
303
|
+
_getConfigCacheID_
|
|
304
|
+
|
|
305
|
+
If we have a configCacheID return it, otherwise return None
|
|
306
|
+
"""
|
|
307
|
+
return getattr(self.data.application.configuration, 'retrieveConfigUrl', None)
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
class WMStep(ConfigSectionTree):
|
|
312
|
+
"""
|
|
313
|
+
_WMStep_
|
|
314
|
+
|
|
315
|
+
Container for an executable unit within a Task
|
|
316
|
+
|
|
317
|
+
"""
|
|
318
|
+
def __init__(self, name):
|
|
319
|
+
ConfigSectionTree.__init__(self, name)
|
|
320
|
+
self.objectType = self.__class__.__name__
|
|
321
|
+
self.stepType = None
|
|
322
|
+
|
|
323
|
+
self.section_("application")
|
|
324
|
+
self.application.section_("controls")
|
|
325
|
+
self.application.section_("configuration")
|
|
326
|
+
|
|
327
|
+
self.section_("input")
|
|
328
|
+
self.input.section_("links")
|
|
329
|
+
self.section_("output")
|
|
330
|
+
self.section_("sandbox")
|
|
331
|
+
|
|
332
|
+
self.section_("emulator")
|
|
333
|
+
self.section_("override")
|
|
334
|
+
|
|
335
|
+
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def makeWMStep(stepName):
|
|
340
|
+
"""
|
|
341
|
+
_makeWMStep_
|
|
342
|
+
|
|
343
|
+
Convienience method, instantiate a new WMStep with the name
|
|
344
|
+
provided and wrap it in a helper
|
|
345
|
+
|
|
346
|
+
"""
|
|
347
|
+
return WMStepHelper(WMStep(stepName))
|