reqmgr2ms-output 2.2.4rc9__tar.gz → 2.2.4.1__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {reqmgr2ms-output-2.2.4rc9/src/python/reqmgr2ms_output.egg-info → reqmgr2ms-output-2.2.4.1}/PKG-INFO +1 -1
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/IteratorTools.py +17 -1
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSCore/MSManager.py +4 -3
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Error.py +21 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBS3Reader.py +63 -25
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/__init__.py +1 -1
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1/src/python/reqmgr2ms_output.egg-info}/PKG-INFO +1 -1
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/LICENSE +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/MANIFEST.in +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/NOTICE +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/README.md +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/HWMon/wmcore-SysStat +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/acdcserver-tools +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/ParseSpecCmsswdist.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/checkDsetFileCount.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/checkStuckLQE.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/createPileupObjects.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/drainAgent.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/getWQStatusByWorkflow.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/mongoInit.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/parseUnifiedCampaigns.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/setrequeststatus.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/summaryWMStatsFailures.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/updateTotalStats.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/workflowCompletion.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/attempt-to-patch.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/buildrelease.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/check-ACDC-parentage +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/check-phedex-dbs-status +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/check-request-wq-status +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/clean-oracle +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/combineMinifyWMStats.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/couch-thrash.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/couch_archiver.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/create-iam-token.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/createStoreResults.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/dbsbuffer-file-fix.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/deploy-rpm-to-jenkins.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/fix-dbs-parentage +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/inject-to-config-cache +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/kill-workflow-in-agent +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/kill-workflow-in-global +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/make-local-clones.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/outputmodules-from-config +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/patchComponent.sh +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/paused-jobs +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/purgeDeletedCouchDoc.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/reqmgr-put-default-config +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/reqmgr-sw-update +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/vaildateCMSSWMergeVersion +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-couchapp-init +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-delete-couchdb-workflow +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-mod-config +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-resource-control +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-unregister-wmstats +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-upload-config +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmagent-workqueue +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmc-dist-patch +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmc-dist-unpatch +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmc-httpd +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmcore-db-init +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmcore-new-config +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmcore-new-flow +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/wmcoreD +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/requirements.txt +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/setup.cfg +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/setup.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/setup_build.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/setup_dependencies.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/CPMetrics.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/CertTools.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/EmailAlert.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/ExtendedUnitTestCase.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/FileTools.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/MathUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/MemoryCache.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Patterns.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Pipeline.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/PortForward.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/ProcessStats.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/PythonVersion.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Signals.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/TemporaryEnvironment.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Throttled.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Timers.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Timestamps.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/TokenManager.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Tracing.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/TwPrint.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/Utilities.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Alarm.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/MathAlgos.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/MiscAlgos.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/ParseXMLFile.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Permissions.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Singleton.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/SubprocessAlgos.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Cache/GenericDataCache.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Cache/WMConfigCache.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Cache/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Configuration.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DAOFactory.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/File.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Fileset.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Job.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/JobGroup.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/JobPackage.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/LumiList.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Mask.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/MathStructs/SummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/MathStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Pickleable.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Run.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Subscription.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/WMObject.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/WorkUnit.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Workflow.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/CMSCouch.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ConfigDBMap.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/CouchUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBCore.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBCreator.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBExceptionHandler.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBFactory.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBFormatter.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Dialects.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ExecuteDAO.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MongoDB.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQL/Destroy.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQL/ListUserContent.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQL/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQLCore.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Oracle/Destroy.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Oracle/ListUserContent.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Oracle/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ResultSet.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Transaction.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ipy_profile_couch.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/CouchObject.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/Decorators.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/Group.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/Interface.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/User.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Lexicon.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/CherryPyThreads/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/DataStructs/DefaultStructs.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSCore/MSAuth.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSCore/MSCore.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSCore/TaskManager.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSCore/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSOutput/MSOutput.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSOutput/MSOutputStreamer.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSOutput/MSOutputTemplate.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSOutput/RelValPolicy.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/MSOutput/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Service/Data.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Service/RestApiHub.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Service/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Tools/Common.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Tools/PycurlRucio.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/Tools/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/WebGui/FrontPage.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/MicroService/WebGui/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Auth.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/CherryPyPeriodicTask.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Format.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/HeartbeatMonitorBase.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Main.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Server.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Services.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Test.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Tools.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/Validation.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/REST/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/ReqMgr/DataStructs/RequestType.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/ReqMgr/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/AlertManager/AlertManagerAPI.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/AlertManager/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/CRIC/CRIC.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/CRIC/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBSErrors.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBSReader.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBSUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBSWriterObjects.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/ProdException.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/FWJRDB/FWJRDBAPI.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/FWJRDB/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/HTTPS/HTTPSAuthHandler.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/HTTPS/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/LogDB/LogDB.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/LogDB/LogDBBackend.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/LogDB/LogDBExceptions.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/LogDB/LogDBReport.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/LogDB/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/McM/McM.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/McM/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/MonIT/Grafana.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/MonIT/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/PyCondor/PyCondorAPI.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/PyCondor/PyCondorUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/PyCondor/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/ReqMgr/ReqMgr.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/ReqMgrAux/ReqMgrAux.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/ReqMgrAux/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/RequestDB/RequestDBReader.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/RequestDB/RequestDBWriter.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/RequestDB/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/Requests.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/Rucio/Rucio.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/Rucio/RucioUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/Rucio/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/RucioConMon/RucioConMon.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/RucioConMon/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/Service.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/StompAMQ/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/TagCollector/TagCollector.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/TagCollector/XMLUtils.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/TagCollector/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/UUIDLib.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/UserFileCache/UserFileCache.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/UserFileCache/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMAgent/WMAgent.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMAgent/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMArchive/CMSSWMetrics.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMArchive/DataMap.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMArchive/WMArchive.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMArchive/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMBS/WMBS.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMBS/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStats/WMStatsReader.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStats/WMStatsWriter.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStats/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStatsServer/WMStatsServer.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WMStatsServer/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WorkQueue/WorkQueue.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/WorkQueue/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/pycurl_manager.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMBase.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMConnectionBase.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMException.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMExceptions.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMFactory.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMInit.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/WMLogging.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Wrappers/JsonWrapper/JSONThunker.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Wrappers/JsonWrapper/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Wrappers/__init__.py +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/reqmgr2ms_output.egg-info/SOURCES.txt +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/reqmgr2ms_output.egg-info/dependency_links.txt +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/reqmgr2ms_output.egg-info/requires.txt +0 -0
- {reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/reqmgr2ms_output.egg-info/top_level.txt +0 -0
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
from builtins import str, map
|
4
4
|
import collections
|
5
|
-
from itertools import islice, chain
|
5
|
+
from itertools import islice, chain, groupby
|
6
6
|
|
7
7
|
def grouper(iterable, n):
|
8
8
|
"""
|
@@ -24,6 +24,7 @@ def flattenList(doubleList):
|
|
24
24
|
"""
|
25
25
|
return list(chain.from_iterable(doubleList))
|
26
26
|
|
27
|
+
|
27
28
|
def nestedDictUpdate(d, u):
|
28
29
|
"""
|
29
30
|
Code from Alex Matelli
|
@@ -50,3 +51,18 @@ def convertFromUnicodeToBytes(data):
|
|
50
51
|
return type(data)(list(map(convertFromUnicodeToBytes, data)))
|
51
52
|
else:
|
52
53
|
return data
|
54
|
+
|
55
|
+
|
56
|
+
def makeListElementsUnique(listObj):
|
57
|
+
"""
|
58
|
+
Given a list of lists or a list of tuples, find all duplicate elements
|
59
|
+
and make them unique.
|
60
|
+
:param listObj: an unsorted list of lists or a list of tuples, e.g.:
|
61
|
+
[[1, 1], [1, 5], [1, 1]]; or
|
62
|
+
[(1, 1), (1, 5), (1, 1)]
|
63
|
+
:return: the same list object but with no duplicates
|
64
|
+
|
65
|
+
Source: https://stackoverflow.com/questions/2213923/removing-duplicates-from-a-list-of-lists
|
66
|
+
"""
|
67
|
+
listObj.sort()
|
68
|
+
return list(k for k, _ in groupby(listObj))
|
@@ -11,7 +11,7 @@ used in service config.py as following
|
|
11
11
|
# REST interface
|
12
12
|
data = views.section_('data')
|
13
13
|
data.object = 'WMCore.MicroService.Service.RestApiHub.RestApiHub'
|
14
|
-
data.manager = 'WMCore.MicroService.
|
14
|
+
data.manager = 'WMCore.MicroService.MSManager.MSManager'
|
15
15
|
data.reqmgr2Url = "%s/reqmgr2" % BASE_URL
|
16
16
|
data.limitRequestsPerCycle = 500
|
17
17
|
data.enableStatusTransition = False
|
@@ -217,8 +217,9 @@ class MSManager(object):
|
|
217
217
|
def transferor(self, reqStatus):
|
218
218
|
"""
|
219
219
|
MSManager transferor function.
|
220
|
-
It performs
|
221
|
-
|
220
|
+
It performs input data placement logic for workflows that have
|
221
|
+
been assigned in the system. Successful workflows will be moved
|
222
|
+
to the staging status in ReqMgr2.
|
222
223
|
For references see
|
223
224
|
https://github.com/dmwm/WMCore/wiki/ReqMgr2-MicroService-Transferor
|
224
225
|
"""
|
@@ -226,6 +226,27 @@ class ExecutionError(RESTError):
|
|
226
226
|
app_code = 403
|
227
227
|
message = "Execution error"
|
228
228
|
|
229
|
+
|
230
|
+
class MissingBodyData(RESTError):
|
231
|
+
"""Exception for requests missing body data."""
|
232
|
+
http_code = 400
|
233
|
+
app_code = 1201
|
234
|
+
|
235
|
+
def __init__(self):
|
236
|
+
RESTError.__init__(self)
|
237
|
+
self.message = "User did not pass any body data with the request"
|
238
|
+
|
239
|
+
|
240
|
+
class InvalidUnifiedSchema(RESTError):
|
241
|
+
"""Exception for incorrect user data schema."""
|
242
|
+
http_code = 400
|
243
|
+
app_code = 1202
|
244
|
+
|
245
|
+
def __init__(self, message):
|
246
|
+
RESTError.__init__(self)
|
247
|
+
self.message = message
|
248
|
+
|
249
|
+
|
229
250
|
def report_error_header(header, val):
|
230
251
|
"""If `val` is non-empty, set CherryPy response `header` to `val`.
|
231
252
|
Replaces all newlines with "; " characters. If the resulting value is
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Services/DBS/DBS3Reader.py
RENAMED
@@ -20,7 +20,7 @@ from dbs.apis.dbsClient import DbsApi
|
|
20
20
|
from dbs.exceptions.dbsClientException import dbsClientException
|
21
21
|
from retry import retry
|
22
22
|
|
23
|
-
from Utils.IteratorTools import grouper
|
23
|
+
from Utils.IteratorTools import grouper, makeListElementsUnique
|
24
24
|
from Utils.PythonVersion import PY2
|
25
25
|
from WMCore.Services.DBS.DBSErrors import DBSReaderError, formatEx3
|
26
26
|
from WMCore.Services.DBS.DBSUtils import dbsListFileParents, dbsListFileLumis, \
|
@@ -848,18 +848,26 @@ class DBS3Reader(object):
|
|
848
848
|
result.append({"ParentDataset": parent['parent_dataset'], "ParentFiles": list(parentFiles[childLFN])})
|
849
849
|
return result
|
850
850
|
|
851
|
-
def insertFileParents(self, childBlockName, childParentsIDPairs):
|
851
|
+
def insertFileParents(self, childBlockName, childParentsIDPairs, missingFiles=0):
|
852
852
|
"""
|
853
|
+
For a given block name, inject its child/parent file id relationship
|
853
854
|
:param childBlockName: child block name
|
854
855
|
:param childParentsIDPairs: list of list child and parent file ids, i.e. [[1,2], [3,4]...]
|
855
856
|
dbs validate child ids from the childBlockName
|
857
|
+
:param missingFiles: an integer with the number of children files missing parents
|
856
858
|
:return: None
|
857
859
|
"""
|
858
|
-
|
860
|
+
self.logger.debug("Going to insert parentage for child_parent_id_list: %s",
|
861
|
+
childParentsIDPairs)
|
862
|
+
return self.dbs.insertFileParents({"block_name": childBlockName,
|
863
|
+
"child_parent_id_list": childParentsIDPairs,
|
864
|
+
"missing_files": missingFiles})
|
859
865
|
|
860
866
|
def listBlocksWithNoParents(self, childDataset):
|
861
867
|
"""
|
862
|
-
|
868
|
+
Given a dataset name, list all its blocks, fetch their parentage
|
869
|
+
blocks and return a set of blocks without any parentage information.
|
870
|
+
:param childDataset: string with a dataset name
|
863
871
|
:return: set of child blocks with no parentBlock
|
864
872
|
"""
|
865
873
|
allBlocks = self.dbs.listBlocks(dataset=childDataset)
|
@@ -916,29 +924,11 @@ class DBS3Reader(object):
|
|
916
924
|
self.logger.info("Found %d blocks without parentage information", len(blocks))
|
917
925
|
for blockName in blocks:
|
918
926
|
try:
|
919
|
-
self.
|
920
|
-
childFlatData = self.getChildBlockTrio(blockName)
|
921
|
-
listChildParent = []
|
922
|
-
|
923
|
-
# first resolve parentage for all common runLumi pairs between childBlock and parentDataset
|
924
|
-
for runLumi in childFlatData.keys() & parentFlatData.keys():
|
925
|
-
childFileId = childFlatData[runLumi]
|
926
|
-
parentFileId = parentFlatData[runLumi]
|
927
|
-
listChildParent.append([childFileId, parentFileId])
|
928
|
-
|
929
|
-
# then add all run lumi pairs which are missing at the parent Dataset by appending None as parentage information
|
930
|
-
for runLumi in childFlatData.keys() - parentFlatData.keys():
|
931
|
-
childFileId = childFlatData[runLumi]
|
932
|
-
parentFileId = None
|
933
|
-
listChildParent.append([childFileId, parentFileId])
|
934
|
-
msg = "Child file id: %s, with run/lumi: %s, has no match in the parent dataset. "
|
935
|
-
msg += "Adding it with null parentage information to DBS."
|
936
|
-
self.logger.warning(msg, childFileId, runLumi)
|
937
|
-
|
927
|
+
listChildParent, countMissingFiles = self._compileParentageList(blockName, parentFlatData)
|
938
928
|
# insert block parentage information to DBS
|
939
929
|
if insertFlag and any(listChildParent):
|
940
|
-
self.insertFileParents(blockName, listChildParent)
|
941
|
-
self.logger.info("Parentage information
|
930
|
+
self.insertFileParents(blockName, listChildParent, countMissingFiles)
|
931
|
+
self.logger.info("Parentage information successfully added to DBS for block %s", blockName)
|
942
932
|
else:
|
943
933
|
self.logger.warning("No parentage information added to DBS for block %s", blockName)
|
944
934
|
except Exception as ex:
|
@@ -948,6 +938,54 @@ class DBS3Reader(object):
|
|
948
938
|
|
949
939
|
return failedBlocks
|
950
940
|
|
941
|
+
def _compileParentageList(self, blockName, parentRunLumi):
|
942
|
+
"""
|
943
|
+
Method to find out child and parent file relationship based
|
944
|
+
on their run/lumi tuples.
|
945
|
+
:param blockName: string with the child block name
|
946
|
+
:param parentRunLumi: a set like {(1, 53): 3077147397, (1, 54): 3077147397, (1, 27): 3077147397
|
947
|
+
:return: a list of child/parent file id tuples and a set of children files
|
948
|
+
that are missing parent files, e.g.
|
949
|
+
[[3077147917, 3077148037], [3077147917, 3077148037], 123
|
950
|
+
"""
|
951
|
+
self.logger.info("Compiling parentage list for block: %s", blockName)
|
952
|
+
# fetch run/lumi and file ids for the child block name
|
953
|
+
childFlatData = self.getChildBlockTrio(blockName)
|
954
|
+
|
955
|
+
self.logger.debug("Block name: %s has this run/lumi/file id information: %s",
|
956
|
+
blockName, childFlatData)
|
957
|
+
listChildParent = []
|
958
|
+
|
959
|
+
# first resolve parentage for all common runLumi pairs between childBlock and parentDataset
|
960
|
+
withParents = set()
|
961
|
+
for runLumi in childFlatData.keys() & parentRunLumi.keys():
|
962
|
+
childFileId = childFlatData[runLumi]
|
963
|
+
withParents.add(childFileId)
|
964
|
+
parentFileId = parentRunLumi[runLumi]
|
965
|
+
listChildParent.append([childFileId, parentFileId])
|
966
|
+
|
967
|
+
# the next for loop will finds all the children files with missing parents
|
968
|
+
# and set their parent file id to -1 instead.
|
969
|
+
missingParents = set()
|
970
|
+
for runLumi in childFlatData.keys() - parentRunLumi.keys():
|
971
|
+
childFileId = childFlatData[runLumi]
|
972
|
+
missingParents.add(childFileId)
|
973
|
+
listChildParent.append([childFileId, -1])
|
974
|
+
msg = "Child file id: %s, with run/lumi: %s, has no match in the parent dataset."
|
975
|
+
msg += "Adding it with -1 parentage information to DBS."
|
976
|
+
self.logger.warning(msg, childFileId, runLumi)
|
977
|
+
self.logger.debug("Files with parent: %s, without: %s, non-unique tuples: %d",
|
978
|
+
withParents, missingParents, len(listChildParent))
|
979
|
+
|
980
|
+
# now find out files missing parent that do not have any other parent
|
981
|
+
missingParents = missingParents - withParents
|
982
|
+
# and make it a unique list of child/parent file ids
|
983
|
+
listChildParent = makeListElementsUnique(listChildParent)
|
984
|
+
|
985
|
+
self.logger.info("Block: %s has %d child/parent tuples and it is missing %d files",
|
986
|
+
blockName, len(listChildParent), len(missingParents))
|
987
|
+
return listChildParent, len(missingParents)
|
988
|
+
|
951
989
|
def getParentDatasetTrio(self, childDataset):
|
952
990
|
"""
|
953
991
|
Provided a dataset name, return all the parent dataset information, such as:
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/ParseSpecCmsswdist.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/checkDsetFileCount.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/createPileupObjects.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/getWQStatusByWorkflow.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/parseUnifiedCampaigns.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/setrequeststatus.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/summaryWMStatsFailures.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/bin/adhoc-scripts/updateTotalStats.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/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
|
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-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/Utils/ExtendedUnitTestCase.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
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/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-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Alarm.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/MathAlgos.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/MiscAlgos.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/ParseXMLFile.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Permissions.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/Singleton.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Algorithms/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Cache/GenericDataCache.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Cache/WMConfigCache.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/File.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Fileset.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/JobGroup.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/JobPackage.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/LumiList.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Mask.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Pickleable.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Subscription.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/WMObject.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/WorkUnit.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/Workflow.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/DataStructs/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/CMSCouch.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ConfigDBMap.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/CouchUtils.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBCreator.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBFactory.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/DBFormatter.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Dialects.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ExecuteDAO.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MongoDB.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQL/Destroy.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQL/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/MySQLCore.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Oracle/Destroy.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Oracle/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/ResultSet.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/Transaction.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/Database/__init__.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/CouchObject.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/Decorators.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.2.4rc9 → reqmgr2ms-output-2.2.4.1}/src/python/WMCore/GroupUser/Interface.py
RENAMED
File without changes
|