reqmgr2ms-monitor 2.3.8rc6__tar.gz → 2.3.8rc10__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {reqmgr2ms-monitor-2.3.8rc6/src/python/reqmgr2ms_monitor.egg-info → reqmgr2ms-monitor-2.3.8rc10}/PKG-INFO +1 -1
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Patterns.py +12 -1
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSManager.py +6 -3
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Service/RestApiHub.py +4 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/RequestDB/RequestDBWriter.py +1 -8
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Rucio/Rucio.py +25 -1
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WorkQueue/WorkQueue.py +35 -3
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/__init__.py +1 -1
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10/src/python/reqmgr2ms_monitor.egg-info}/PKG-INFO +1 -1
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/LICENSE +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/MANIFEST.in +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/NOTICE +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/README.md +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/HWMon/wmcore-SysStat +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/acdcserver-tools +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/ParseSpecCmsswdist.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/adjustMongoDocs.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/checkDsetFileCount.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/checkStuckLQE.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/createPileupObjects.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/drainAgent.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/fixWorkflowParentage.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/getWQStatusByWorkflow.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/injectUnified.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/mongoInit.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/parseUnifiedCampaigns.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/setrequeststatus.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/summaryWMStatsFailures.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/updatePileupObjects.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/updateTotalStats.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/workflowCompletion.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/attempt-to-patch.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/buildrelease.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/check-ACDC-parentage +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/check-phedex-dbs-status +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/check-request-wq-status +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/clean-oracle +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/combineMinifyWMStats.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/couch-thrash.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/couch_archiver.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/create-iam-token.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/createStoreResults.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/dbsbuffer-file-fix.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/deploy-rpm-to-jenkins.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/docker.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/fix-dbs-parentage +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/inject-to-config-cache +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/kill-workflow-in-agent +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/kill-workflow-in-global +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/make-local-clones.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/outputmodules-from-config +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/patchComponent.sh +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/paused-jobs +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/purgeDeletedCouchDoc.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/reqmgr-put-default-config +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/reqmgr-sw-update +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/vaildateCMSSWMergeVersion +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-component-standalone +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-couchapp-init +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-delete-couchdb-workflow +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-mod-config +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-resource-control +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-unregister-wmstats +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-upload-config +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-workqueue +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmc-dist-patch +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmc-dist-unpatch +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmc-httpd +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmcore-db-init +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmcore-new-config +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmcore-new-flow +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmcoreD +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/requirements.txt +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/setup.cfg +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/setup.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/setup_build.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/setup_dependencies.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/CPMetrics.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/CertTools.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/EmailAlert.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/ExtendedUnitTestCase.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/FileTools.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/IteratorTools.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/MathUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/MemoryCache.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Pipeline.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/PortForward.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/ProcessStats.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/PythonVersion.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Signals.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/TemporaryEnvironment.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Throttled.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Timers.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Timestamps.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/TokenManager.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Tracing.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/TwPrint.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/Utilities.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/Alarm.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/MathAlgos.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/MiscAlgos.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/ParseXMLFile.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/Permissions.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/Singleton.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/SubprocessAlgos.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Cache/GenericDataCache.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Cache/WMConfigCache.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Cache/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Configuration.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DAOFactory.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/File.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Fileset.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Job.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/JobGroup.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/JobPackage.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/LumiList.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Mask.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/SummaryHistogram.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Pickleable.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Run.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Subscription.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/WMObject.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/WorkUnit.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Workflow.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/CMSCouch.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ConfigDBMap.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/CouchUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBCore.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBCreator.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBExceptionHandler.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBFactory.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBFormatter.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Dialects.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ExecuteDAO.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MongoDB.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MySQL/Destroy.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MySQL/ListUserContent.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MySQL/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MySQLCore.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Oracle/Destroy.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Oracle/ListUserContent.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Oracle/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ResultSet.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Transaction.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ipy_profile_couch.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/CouchObject.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/Decorators.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/Group.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/Interface.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/User.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Lexicon.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/CherryPyThreads/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/DataStructs/DefaultStructs.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/DataStructs/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSAuth.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSCore.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/TaskManager.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSMonitor/MSMonitor.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/MSMonitor/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Service/Data.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Service/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Tools/Common.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Tools/PycurlRucio.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/Tools/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/WebGui/FrontPage.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/MicroService/WebGui/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Auth.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/CherryPyPeriodicTask.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Error.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Format.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/HeartbeatMonitorBase.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Main.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Server.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Services.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Test.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Tools.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/Validation.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/REST/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/RequestType.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/AlertManager/AlertManagerAPI.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/AlertManager/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/CRIC/CRIC.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/CRIC/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBS3Reader.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSConcurrency.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSErrors.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSReader.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSWriterObjects.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/ProdException.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/DBS/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/FWJRDB/FWJRDBAPI.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/FWJRDB/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/HTTPS/HTTPSAuthHandler.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/HTTPS/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDB.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBBackend.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBExceptions.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBReport.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/LogDB/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/MSPileup/MSPileupUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/MSPileup/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/McM/McM.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/McM/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/MonIT/Grafana.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/MonIT/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/PyCondor/PyCondorAPI.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/PyCondor/PyCondorUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/PyCondor/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/ReqMgr/ReqMgr.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/ReqMgrAux/ReqMgrAux.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/ReqMgrAux/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/RequestDB/RequestDBReader.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/RequestDB/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Requests.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Rucio/RucioUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Rucio/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/RucioConMon/RucioConMon.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/RucioConMon/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Service.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/StompAMQ/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/TagCollector/TagCollector.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/TagCollector/XMLUtils.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/TagCollector/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/UUIDLib.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/UserFileCache/UserFileCache.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/UserFileCache/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMAgent/WMAgent.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMAgent/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMArchive/CMSSWMetrics.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMArchive/DataMap.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMArchive/WMArchive.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMArchive/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMBS/WMBS.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMBS/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsPycurl.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsReader.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsWriter.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStats/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStatsServer/WMStatsServer.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WMStatsServer/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/WorkQueue/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/pycurl_manager.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMBase.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMConnectionBase.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMException.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMExceptions.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMFactory.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMInit.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/WMLogging.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Wrappers/JsonWrapper/JSONThunker.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Wrappers/JsonWrapper/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Wrappers/__init__.py +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/reqmgr2ms_monitor.egg-info/SOURCES.txt +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/reqmgr2ms_monitor.egg-info/dependency_links.txt +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/reqmgr2ms_monitor.egg-info/requires.txt +0 -0
- {reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/reqmgr2ms_monitor.egg-info/top_level.txt +0 -0
@@ -1,7 +1,7 @@
|
|
1
1
|
"""
|
2
2
|
Patterns module provides set of CS patterns
|
3
3
|
"""
|
4
|
-
|
4
|
+
import re
|
5
5
|
|
6
6
|
class Singleton(type):
|
7
7
|
"""Implementation of Singleton class"""
|
@@ -11,3 +11,14 @@ class Singleton(type):
|
|
11
11
|
cls._instances[cls] = \
|
12
12
|
super(Singleton, cls).__call__(*args, **kwargs)
|
13
13
|
return cls._instances[cls]
|
14
|
+
|
15
|
+
|
16
|
+
def getDomainName(urlStr):
|
17
|
+
"""
|
18
|
+
Given a URL string, return the domain name.
|
19
|
+
:param urlStr: URL string
|
20
|
+
:return: a string with the domain name (e.g. "cmsweb-prod")
|
21
|
+
"""
|
22
|
+
domainPattern = re.compile(r'https?://([^/]+)\.cern\.ch')
|
23
|
+
match = domainPattern.search(urlStr)
|
24
|
+
return match.group(1) if match else ""
|
@@ -34,6 +34,7 @@ from WMCore.MicroService.Tools.Common import getMSLogger
|
|
34
34
|
from WMCore.MicroService.MSCore.TaskManager import start_new_thread
|
35
35
|
from Utils.Utilities import strToBool
|
36
36
|
|
37
|
+
|
37
38
|
def daemon(func, reqStatus, interval, logger):
|
38
39
|
"Daemon to perform given function action for all request in our store"
|
39
40
|
while True:
|
@@ -398,16 +399,18 @@ class MSManager(object):
|
|
398
399
|
:param doc: input JSON doc for HTTP POST request
|
399
400
|
:return: list of results
|
400
401
|
"""
|
402
|
+
res = []
|
401
403
|
if 'pileup' in self.services:
|
402
|
-
res = []
|
403
404
|
if 'pileupName' in doc:
|
404
405
|
# this is create POST request
|
405
406
|
res = self.msPileup.createPileup(doc)
|
406
407
|
if 'query' in doc:
|
407
408
|
# this is POST request to get data for a given JSON query
|
408
409
|
res = self.msPileup.queryDatabase(doc)
|
409
|
-
|
410
|
-
|
410
|
+
elif 'transferor' in self.services:
|
411
|
+
if 'workflow' in doc:
|
412
|
+
res = self.msTransferor.updateSites(doc)
|
413
|
+
return res
|
411
414
|
|
412
415
|
def update(self, doc):
|
413
416
|
"""
|
@@ -39,4 +39,8 @@ class RestApiHub(RESTApi):
|
|
39
39
|
# the mount point should match service configuration, e.g. in MSPileup we define
|
40
40
|
# mount point as /ms-pileup/data, e.g. http://.../ms-pileup/data
|
41
41
|
if 'ms-pileup' in mount:
|
42
|
+
# add new API "pileup" and it will be accessible as /ms-pileup/data/pileup
|
42
43
|
self._add({"pileup": Data(app, self, config, mount)})
|
44
|
+
elif 'ms-transferor' in mount:
|
45
|
+
# add new API "transferor" and it will be accessible as /ms-transferor/data/transferor
|
46
|
+
self._add({"transferor": Data(app, self, config, mount)})
|
@@ -7,13 +7,6 @@ class RequestDBWriter(RequestDBReader):
|
|
7
7
|
# set the connection for local couchDB call
|
8
8
|
# inherited from WMStatsReader
|
9
9
|
self._commonInit(couchURL, couchapp)
|
10
|
-
self._propertyNeedToBeEncoded = ["RequestTransition",
|
11
|
-
"PriorityTransition",
|
12
|
-
"SiteWhitelist",
|
13
|
-
"SiteBlacklist",
|
14
|
-
"BlockWhitelist",
|
15
|
-
"InputDatasetTypes",
|
16
|
-
"OutputDatasets"]
|
17
10
|
|
18
11
|
def insertGenericRequest(self, doc):
|
19
12
|
|
@@ -31,7 +24,7 @@ class RequestDBWriter(RequestDBReader):
|
|
31
24
|
|
32
25
|
def updateRequestStats(self, request, stats):
|
33
26
|
"""
|
34
|
-
This
|
27
|
+
This function is only available ReqMgr couch app currently (not T0)
|
35
28
|
WQ specific function
|
36
29
|
param: stats: dict of {'total_jobs': 0, 'input_lumis': 0,
|
37
30
|
'input_events': 0, 'input_num_files': 0}
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Services/Rucio/Rucio.py
RENAMED
@@ -16,7 +16,7 @@ from copy import deepcopy
|
|
16
16
|
from rucio.client import Client
|
17
17
|
from rucio.common.exception import (AccountNotFound, DataIdentifierNotFound, AccessDenied, DuplicateRule,
|
18
18
|
DataIdentifierAlreadyExists, DuplicateContent, InvalidRSEExpression,
|
19
|
-
UnsupportedOperation, FileAlreadyExists, RuleNotFound, RSENotFound)
|
19
|
+
UnsupportedOperation, FileAlreadyExists, RuleNotFound, RSENotFound, RuleReplaceFailed)
|
20
20
|
from Utils.MemoryCache import MemoryCache
|
21
21
|
from Utils.IteratorTools import grouper
|
22
22
|
from WMCore.Services.Rucio.RucioUtils import (validateMetaData, weightedChoice,
|
@@ -454,6 +454,30 @@ class Rucio(object):
|
|
454
454
|
self.logger.error("Exception closing container/block: %s. Error: %s", name, str(ex))
|
455
455
|
return response
|
456
456
|
|
457
|
+
def moveReplicationRule(self, ruleId, rseExpression, account):
|
458
|
+
"""
|
459
|
+
Perform move operation for provided rule id and rse expression
|
460
|
+
:param ruleId: rule id
|
461
|
+
:param rseExpression: rse expression
|
462
|
+
:param account: rucio quota account
|
463
|
+
:return: it returns either an empty list or a list with a string id for the rule created
|
464
|
+
Please note, we made return type from this wrapper compatible with createReplicateRule
|
465
|
+
"""
|
466
|
+
ruleIds = []
|
467
|
+
try:
|
468
|
+
rid = self.cli.move_replication_rule(ruleId, rseExpression, account)
|
469
|
+
ruleIds.append(rid)
|
470
|
+
except RuleNotFound as ex:
|
471
|
+
msg = "RuleNotFound move DID replication rule. Error: %s" % str(ex)
|
472
|
+
raise WMRucioException(msg) from ex
|
473
|
+
except RuleReplaceFailed as ex:
|
474
|
+
msg = "RuleReplaceFailed move DID replication rule. Error: %s" % str(ex)
|
475
|
+
raise WMRucioException(msg) from ex
|
476
|
+
except Exception as ex:
|
477
|
+
msg = "Unsupported exception from Rucio API. Error: %s" % str(ex)
|
478
|
+
raise WMRucioException(msg) from ex
|
479
|
+
return ruleIds
|
480
|
+
|
457
481
|
def createReplicationRule(self, names, rseExpression, scope='cms', copies=1, **kwargs):
|
458
482
|
"""
|
459
483
|
_createReplicationRule_
|
@@ -203,7 +203,7 @@ class WorkQueue(object):
|
|
203
203
|
eleParams[self.eleKey] = updatedParams
|
204
204
|
conflictIDs = self.db.updateBulkDocumentsWithConflictHandle(elementIds, eleParams, maxConflictLimit=20)
|
205
205
|
if conflictIDs:
|
206
|
-
raise CouchConflictError("WQ update failed with conflict", data=updatedParams, result=conflictIDs)
|
206
|
+
raise CouchConflictError("WQ update failed with conflict", data=updatedParams, result=conflictIDs, status=409)
|
207
207
|
return
|
208
208
|
|
209
209
|
def getAvailableWorkflows(self):
|
@@ -256,6 +256,40 @@ class WorkQueue(object):
|
|
256
256
|
wmspec.saveCouch(self.hostWithAuth, self.db.name, dummy_values)
|
257
257
|
return
|
258
258
|
|
259
|
+
def updateElementsByWorkflow(self, workload, updateParams, status=None):
|
260
|
+
"""
|
261
|
+
Update all available WorkQueue elements of a given workflow with a set
|
262
|
+
of arguments provided through the `updateParams` dictionary
|
263
|
+
:param workload: A workflow spec
|
264
|
+
:param updateParams: A dictionary with parameters to be updated
|
265
|
+
:param status: A list of allowed WorkQueue elements statuses to be considered for updating
|
266
|
+
Default: None - do not filter by status
|
267
|
+
:return: No value, raises exceptions from internal methods in case of errors.
|
268
|
+
"""
|
269
|
+
# Fetch the whole view with Workqueue elements per given workflow
|
270
|
+
wfName = workload.name()
|
271
|
+
data = self.db.loadView('WorkQueue', 'elementsDetailByWorkflowAndStatus',
|
272
|
+
{'startkey': [wfName], 'endkey': [wfName, {}],
|
273
|
+
'reduce': False})
|
274
|
+
|
275
|
+
# Fetch only a list of WorkQueue element Ids && Filter them by allowed status
|
276
|
+
if status:
|
277
|
+
elementsToUpdate = [x['id'] for x in data.get('rows', []) if x['value']['Status'] in status]
|
278
|
+
else:
|
279
|
+
elementsToUpdate = [x['id'] for x in data.get('rows', [])]
|
280
|
+
|
281
|
+
# Update all WorkQueue elements with the parameters provided in a single push
|
282
|
+
if elementsToUpdate:
|
283
|
+
self.updateElements(*elementsToUpdate, **updateParams)
|
284
|
+
|
285
|
+
# Update the spec, if it exists
|
286
|
+
if self.db.documentExists(wfName):
|
287
|
+
# Update all workload parameters based on the full reqArgs dictionary
|
288
|
+
workload.updateWorkloadArgs(updateParams)
|
289
|
+
# Commit the changes of the current workload object to the database:
|
290
|
+
workload.saveCouchUrl(workload.specUrl())
|
291
|
+
return
|
292
|
+
|
259
293
|
def getWorkflowNames(self, inboxFlag=False):
|
260
294
|
"""Get workflow names from workqueue db"""
|
261
295
|
if inboxFlag:
|
@@ -307,7 +341,6 @@ class WorkQueue(object):
|
|
307
341
|
'Jobs': x['value']['sum']}
|
308
342
|
return result
|
309
343
|
|
310
|
-
|
311
344
|
def _retrieveWorkflowStatus(self, data):
|
312
345
|
workflowsStatus = {}
|
313
346
|
|
@@ -318,7 +351,6 @@ class WorkQueue(object):
|
|
318
351
|
workflowsStatus[workflow] = status
|
319
352
|
return workflowsStatus
|
320
353
|
|
321
|
-
|
322
354
|
def getWorkflowStatusFromWQE(self, stale=True):
|
323
355
|
"""
|
324
356
|
only checks workqueue db not inbox db.
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/ParseSpecCmsswdist.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/adjustMongoDocs.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/checkDsetFileCount.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/checkStuckLQE.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/createPileupObjects.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/fixWorkflowParentage.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/injectUnified.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/setrequeststatus.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/updatePileupObjects.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/updateTotalStats.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/adhoc-scripts/workflowCompletion.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/bin/wmagent-delete-couchdb-workflow
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/ExtendedUnitTestCase.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/IteratorTools.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/PythonVersion.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/Utils/TemporaryEnvironment.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/Alarm.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/MathAlgos.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/MiscAlgos.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/Singleton.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Algorithms/__init__.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Cache/WMConfigCache.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Cache/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Configuration.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/File.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Fileset.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Job.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/JobGroup.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/LumiList.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Mask.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Run.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/WMObject.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/WorkUnit.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/Workflow.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/DataStructs/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/CMSCouch.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ConfigDBMap.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/CouchUtils.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBCore.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBCreator.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBFactory.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/DBFormatter.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Dialects.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ExecuteDAO.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MongoDB.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/MySQLCore.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/ResultSet.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/Transaction.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/Database/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/Decorators.py
RENAMED
File without changes
|
{reqmgr2ms-monitor-2.3.8rc6 → reqmgr2ms-monitor-2.3.8rc10}/src/python/WMCore/GroupUser/Group.py
RENAMED
File without changes
|