reqmgr2ms-output 2.3.2rc5__tar.gz → 2.3.2rc6__tar.gz
Sign up to get free protection for your applications and to get access to all the features.
- {reqmgr2ms-output-2.3.2rc5/src/python/reqmgr2ms_output.egg-info → reqmgr2ms-output-2.3.2rc6}/PKG-INFO +1 -1
- reqmgr2ms-output-2.3.2rc6/bin/adhoc-scripts/adjustMongoDocs.py +124 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/updatePileupObjects.py +88 -19
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/__init__.py +1 -1
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6/src/python/reqmgr2ms_output.egg-info}/PKG-INFO +1 -1
- reqmgr2ms-output-2.3.2rc5/bin/adhoc-scripts/adjustMongoDocs.py +0 -73
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/LICENSE +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/MANIFEST.in +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/NOTICE +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/README.md +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/HWMon/wmcore-SysStat +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/acdcserver-tools +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/ParseSpecCmsswdist.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/checkDsetFileCount.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/checkStuckLQE.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/createPileupObjects.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/drainAgent.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/fixWorkflowParentage.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/getWQStatusByWorkflow.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/injectUnified.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/mongoInit.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/parseUnifiedCampaigns.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/setrequeststatus.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/summaryWMStatsFailures.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/updateTotalStats.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/workflowCompletion.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/attempt-to-patch.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/buildrelease.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/check-ACDC-parentage +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/check-phedex-dbs-status +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/check-request-wq-status +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/clean-oracle +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/combineMinifyWMStats.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/couch-thrash.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/couch_archiver.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/create-iam-token.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/createStoreResults.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/dbsbuffer-file-fix.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/deploy-rpm-to-jenkins.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/fix-dbs-parentage +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/inject-to-config-cache +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/kill-workflow-in-agent +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/kill-workflow-in-global +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/make-local-clones.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/outputmodules-from-config +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/patchComponent.sh +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/paused-jobs +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/purgeDeletedCouchDoc.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/reqmgr-put-default-config +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/reqmgr-sw-update +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/vaildateCMSSWMergeVersion +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-couchapp-init +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-delete-couchdb-workflow +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-mod-config +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-resource-control +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-unregister-wmstats +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-upload-config +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmagent-workqueue +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmc-dist-patch +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmc-dist-unpatch +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmc-httpd +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmcore-db-init +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmcore-new-config +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmcore-new-flow +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/wmcoreD +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/requirements.txt +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/setup.cfg +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/setup.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/setup_build.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/setup_dependencies.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/CPMetrics.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/CertTools.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/EmailAlert.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/ExtendedUnitTestCase.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/FileTools.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/IteratorTools.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/MathUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/MemoryCache.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Patterns.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Pipeline.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/PortForward.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/ProcessStats.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/PythonVersion.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Signals.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/TemporaryEnvironment.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Throttled.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Timers.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Timestamps.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/TokenManager.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Tracing.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/TwPrint.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/Utilities.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/Utils/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Alarm.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/MathAlgos.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/MiscAlgos.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/ParseXMLFile.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Permissions.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Singleton.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/SubprocessAlgos.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Cache/GenericDataCache.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Cache/WMConfigCache.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Cache/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Configuration.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DAOFactory.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/File.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Fileset.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Job.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/JobGroup.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/JobPackage.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/LumiList.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Mask.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/MathStructs/SummaryHistogram.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/MathStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Pickleable.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Run.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Subscription.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/WMObject.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/WorkUnit.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/Workflow.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/CMSCouch.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/ConfigDBMap.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/CouchUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/DBCore.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/DBCreator.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/DBExceptionHandler.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/DBFactory.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/DBFormatter.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/Dialects.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/ExecuteDAO.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/MongoDB.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/MySQL/Destroy.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/MySQL/ListUserContent.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/MySQL/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/MySQLCore.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/Oracle/Destroy.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/Oracle/ListUserContent.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/Oracle/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/ResultSet.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/Transaction.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Database/ipy_profile_couch.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/CouchObject.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/Decorators.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/Group.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/Interface.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/User.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/GroupUser/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Lexicon.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/CherryPyThreads/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/DataStructs/DefaultStructs.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSCore/MSAuth.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSCore/MSCore.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSCore/MSManager.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSCore/TaskManager.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSCore/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSOutput/MSOutput.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSOutput/MSOutputStreamer.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSOutput/MSOutputTemplate.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSOutput/RelValPolicy.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/MSOutput/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Service/Data.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Service/RestApiHub.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Service/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Tools/Common.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Tools/PycurlRucio.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/Tools/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/WebGui/FrontPage.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/MicroService/WebGui/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Auth.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/CherryPyPeriodicTask.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Error.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Format.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/HeartbeatMonitorBase.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Main.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Server.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Services.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Test.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Tools.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/Validation.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/REST/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/ReqMgr/DataStructs/RequestType.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/ReqMgr/DataStructs/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/AlertManager/AlertManagerAPI.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/AlertManager/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/CRIC/CRIC.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/CRIC/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBS3Reader.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBSConcurrency.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBSErrors.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBSReader.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBSUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/DBSWriterObjects.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/ProdException.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/DBS/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/FWJRDB/FWJRDBAPI.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/FWJRDB/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/HTTPS/HTTPSAuthHandler.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/HTTPS/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/LogDB/LogDB.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/LogDB/LogDBBackend.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/LogDB/LogDBExceptions.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/LogDB/LogDBReport.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/LogDB/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/MSPileup/MSPileupUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/MSPileup/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/McM/McM.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/McM/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/MonIT/Grafana.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/MonIT/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/PyCondor/PyCondorAPI.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/PyCondor/PyCondorUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/PyCondor/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/ReqMgr/ReqMgr.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/ReqMgr/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/ReqMgrAux/ReqMgrAux.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/ReqMgrAux/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/RequestDB/RequestDBReader.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/RequestDB/RequestDBWriter.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/RequestDB/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/Requests.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/Rucio/Rucio.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/Rucio/RucioUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/Rucio/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/RucioConMon/RucioConMon.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/RucioConMon/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/Service.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/StompAMQ/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/TagCollector/TagCollector.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/TagCollector/XMLUtils.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/TagCollector/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/UUIDLib.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/UserFileCache/UserFileCache.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/UserFileCache/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMAgent/WMAgent.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMAgent/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMArchive/CMSSWMetrics.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMArchive/DataMap.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMArchive/WMArchive.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMArchive/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMBS/WMBS.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMBS/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/WMStatsPycurl.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/WMStatsReader.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/WMStatsWriter.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStats/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStatsServer/WMStatsServer.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WMStatsServer/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WorkQueue/WorkQueue.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/WorkQueue/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Services/pycurl_manager.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMBase.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMConnectionBase.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMException.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMExceptions.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMFactory.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMInit.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/WMLogging.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Wrappers/JsonWrapper/JSONThunker.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Wrappers/JsonWrapper/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Wrappers/__init__.py +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/reqmgr2ms_output.egg-info/SOURCES.txt +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/reqmgr2ms_output.egg-info/dependency_links.txt +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/reqmgr2ms_output.egg-info/requires.txt +0 -0
- {reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/reqmgr2ms_output.egg-info/top_level.txt +0 -0
@@ -0,0 +1,124 @@
|
|
1
|
+
#!/usr/bin/env python
|
2
|
+
"""
|
3
|
+
File : adjustMongoDocs.py
|
4
|
+
Author : Valentin Kuznetsov <vkuznet AT gmail dot com>
|
5
|
+
Description: adjust documents in MongoDB with given schema
|
6
|
+
The script loops over given db documents (from given db name
|
7
|
+
and collection) and add to each document a new schema provided
|
8
|
+
via input file name, e.g.
|
9
|
+
|
10
|
+
# new schema addition:
|
11
|
+
cat > /tmp/schema.json << EOF
|
12
|
+
{"foo": 1}
|
13
|
+
EOF
|
14
|
+
|
15
|
+
# run script to update all documents in test.test database and add to them
|
16
|
+
# a json structure presented in /tmp/schema.json file
|
17
|
+
adjustMongoDocs.py --fin=/tmp/schema.json --dburi=localhost:8230 --dbname=test --dbcoll=test --verbose 1
|
18
|
+
|
19
|
+
# run script to add new transition record to all MSPileup records if they do not have it
|
20
|
+
adjustMongoDocs.py --add-tran-record --dburi=localhost:8230 --dbname=test --dbcoll=test --verbose 1
|
21
|
+
|
22
|
+
NOTE: the script can run from any location assuming it has proper db uri with
|
23
|
+
credentials and availability of mongo db outside of its own cluster, but most
|
24
|
+
likely it will be run on mongo db k8s cluster
|
25
|
+
"""
|
26
|
+
|
27
|
+
import argparse
|
28
|
+
import json
|
29
|
+
from pymongo import MongoClient
|
30
|
+
|
31
|
+
# WMCore services
|
32
|
+
from Utils.Timers import gmtimeSeconds
|
33
|
+
|
34
|
+
|
35
|
+
class OptionParser(object):
|
36
|
+
"Helper class to handle script options"
|
37
|
+
|
38
|
+
def __init__(self):
|
39
|
+
"User based option parser"
|
40
|
+
self.parser = argparse.ArgumentParser(prog='PROG')
|
41
|
+
self.parser.add_argument("--fin", action="store",
|
42
|
+
dest="fin", default="", help="Input file with update fields")
|
43
|
+
self.parser.add_argument("--dburi", action="store",
|
44
|
+
dest="dburi", default="", help="MongoDB URI")
|
45
|
+
self.parser.add_argument("--dbname", action="store",
|
46
|
+
dest="dbname", default="", help="MongoDB database")
|
47
|
+
self.parser.add_argument("--dbcoll", action="store",
|
48
|
+
dest="dbcoll", default="", help="MongoDB collection")
|
49
|
+
self.parser.add_argument("--userdn", action="store",
|
50
|
+
dest="userDN", default='', help="user DN")
|
51
|
+
self.parser.add_argument("--add-tran-record", action="store_true",
|
52
|
+
dest="transition", help="add transaction record")
|
53
|
+
self.parser.add_argument("--verbose", action="store",
|
54
|
+
dest="verbose", default=0, help="verbosity level")
|
55
|
+
|
56
|
+
|
57
|
+
def addTransitionRecord(dburi, dbname, dbcoll, userDN, verbose):
|
58
|
+
"""
|
59
|
+
Helper function to add and update in place transition record for existing MSPileup records
|
60
|
+
:param dburi: database URI (string)
|
61
|
+
:param dbname: database name (string)
|
62
|
+
:param dbcoll: database collection name (string)
|
63
|
+
:param userDN: string representing user DN
|
64
|
+
:param verbose: verbose flag (boolean)
|
65
|
+
:return: nothing
|
66
|
+
"""
|
67
|
+
if not userDN:
|
68
|
+
raise Exception("No userDN provided")
|
69
|
+
conn = MongoClient(host=dburi)
|
70
|
+
records = [r for r in conn[dbname][dbcoll].find()]
|
71
|
+
for rec in records:
|
72
|
+
if not rec.get("transition"):
|
73
|
+
tranRecord = {'containerFraction': 1.0,
|
74
|
+
'customDID': rec['pileupName'],
|
75
|
+
'updateTime': gmtimeSeconds(),
|
76
|
+
'DN': userDN}
|
77
|
+
rec['transition'] = [tranRecord]
|
78
|
+
if verbose:
|
79
|
+
print(f"update rec={rec} with new transition record={tranRecord}")
|
80
|
+
spec = {'pileupName': rec['pileupName'], 'customName': rec.get('customName', '')}
|
81
|
+
# perform update of the record
|
82
|
+
conn[dbname][dbcoll].update_one(spec, {'$set': {'transition': [tranRecord]}}, upsert=True)
|
83
|
+
|
84
|
+
|
85
|
+
def adjust(dburi, dbname, dbcoll, fin, verbose):
|
86
|
+
"""
|
87
|
+
helper script to update documents in MongoDB with given db name/collection
|
88
|
+
and schema file (which should contain new addition, in form of JSON, to the
|
89
|
+
db documents)
|
90
|
+
:param dburi: database URI (string)
|
91
|
+
:param dbname: database name (string)
|
92
|
+
:param dbcoll: database collection name (string)
|
93
|
+
:param fin: input file with schema content
|
94
|
+
:param verbose: verbose flag (boolean)
|
95
|
+
:return: nothing
|
96
|
+
"""
|
97
|
+
conn = MongoClient(host=dburi)
|
98
|
+
schema = {}
|
99
|
+
with open(fin, 'r', encoding='utf-8') as istream:
|
100
|
+
schema = json.load(istream)
|
101
|
+
if schema:
|
102
|
+
if verbose:
|
103
|
+
print(f"read data from '{dburi}', {dbname}/{dbcoll}")
|
104
|
+
records = [r for r in conn[dbname][dbcoll].find()]
|
105
|
+
for doc in records:
|
106
|
+
if verbose:
|
107
|
+
print(f"update doc={doc} with schema={schema}")
|
108
|
+
conn[dbname][dbcoll].update_one(doc, {'$set': schema}, upsert=True)
|
109
|
+
|
110
|
+
|
111
|
+
def main():
|
112
|
+
"""
|
113
|
+
Main function
|
114
|
+
"""
|
115
|
+
optmgr = OptionParser()
|
116
|
+
opts = optmgr.parser.parse_args()
|
117
|
+
if opts.transition:
|
118
|
+
addTransitionRecord(opts.dburi, opts.dbname, opts.dbcoll, opts.userDN, opts.verbose)
|
119
|
+
else:
|
120
|
+
adjust(opts.dburi, opts.dbname, opts.dbcoll, opts.fin, opts.verbose)
|
121
|
+
|
122
|
+
|
123
|
+
if __name__ == '__main__':
|
124
|
+
main()
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/updatePileupObjects.py
RENAMED
@@ -9,6 +9,9 @@ used to update every single pileup document that it fetches from MSPileup.
|
|
9
9
|
|
10
10
|
Example usage is:
|
11
11
|
python3 updatePileupObjects.py --url=https://cmsweb.cern.ch --fin=override_data.json
|
12
|
+
|
13
|
+
# run script to add new transition record to all MSPileup records if they do not have it
|
14
|
+
python3 updatePileupObjects.py --add-tran-record -url=https://cmsweb.cern.ch --userDN=<user-dn>
|
12
15
|
"""
|
13
16
|
import argparse
|
14
17
|
import json
|
@@ -19,6 +22,9 @@ import urllib.request
|
|
19
22
|
import ssl
|
20
23
|
from http.client import HTTPSConnection
|
21
24
|
|
25
|
+
# WMCore services
|
26
|
+
from Utils.Timers import gmtimeSeconds
|
27
|
+
|
22
28
|
|
23
29
|
class OptionParser():
|
24
30
|
"""Class to parse the command line arguments"""
|
@@ -26,13 +32,17 @@ class OptionParser():
|
|
26
32
|
def __init__(self):
|
27
33
|
"User based option parser"
|
28
34
|
self.parser = argparse.ArgumentParser(prog='PROG')
|
29
|
-
self.parser.add_argument("--fin",
|
30
|
-
dest="fin", help="Input
|
35
|
+
self.parser.add_argument("--fin", action="store",
|
36
|
+
dest="fin", default="", help="Input file with update fields (optional)")
|
31
37
|
self.parser.add_argument("--dry-run", action="store_true",
|
32
38
|
dest="dryrun", help="Fetch docs but do not update")
|
33
39
|
self.parser.add_argument("--url", action="store",
|
34
40
|
dest="url", default="https://cmsweb-testbed.cern.ch",
|
35
41
|
help="URL for the MSPileup service")
|
42
|
+
self.parser.add_argument("--userdn", action="store",
|
43
|
+
dest="userDN", default='', help="user DN")
|
44
|
+
self.parser.add_argument("--add-tran-record", action="store_true",
|
45
|
+
dest="transition", help="add transition record")
|
36
46
|
|
37
47
|
|
38
48
|
class HTTPSClientAuthHandler(urllib.request.HTTPSHandler):
|
@@ -147,6 +157,79 @@ def writePileupDocs(mspileupUrl, puDocs, handler, logger):
|
|
147
157
|
logger.critical(msg)
|
148
158
|
|
149
159
|
|
160
|
+
def addTransitionRecords(handler, url, userDN, logger, dryrun):
|
161
|
+
"""
|
162
|
+
Helper function to add and update in place transition record for existing MSPileup records
|
163
|
+
:param handler: HTTP handler to use
|
164
|
+
:param url: url to use (string)
|
165
|
+
:param userDN: string representing user DN
|
166
|
+
:param logger: logger to use
|
167
|
+
:param dryrun: option to run dry-run mode (boolean)
|
168
|
+
:return: nothing
|
169
|
+
"""
|
170
|
+
if not userDN:
|
171
|
+
raise Exception("No userDN provided")
|
172
|
+
puDocs = getPileupDocs(url, handler, logger)
|
173
|
+
logger.info("Found %d documents in MSPileup", len(puDocs))
|
174
|
+
recordsToUpdate = []
|
175
|
+
for rec in puDocs:
|
176
|
+
if not rec.get("transition"):
|
177
|
+
tranRecord = {'containerFraction': 1.0,
|
178
|
+
'customDID': rec['pileupName'],
|
179
|
+
'updateTime': gmtimeSeconds(),
|
180
|
+
'DN': userDN}
|
181
|
+
rec['transition'] = [tranRecord]
|
182
|
+
logger.info("New pileup document is: %s", rec)
|
183
|
+
recordsToUpdate.append(rec)
|
184
|
+
|
185
|
+
if dryrun:
|
186
|
+
logger.info("%s documents needs to be updated but are not written due to --dry-run option\n", len(recordsToUpdate))
|
187
|
+
else:
|
188
|
+
# finally, update the pileup documents in the database
|
189
|
+
writePileupDocs(url, recordsToUpdate, handler, logger)
|
190
|
+
logger.info("%s documents are uploaded to MSPileup\n", len(recordsToUpdate))
|
191
|
+
|
192
|
+
|
193
|
+
def updatePileupRecords(handler, url, logger, dryrun, fin=""):
|
194
|
+
"""
|
195
|
+
helper function to update pileup records
|
196
|
+
:param handler: HTTP handler to use
|
197
|
+
:param url: url to use (string)
|
198
|
+
:param logger: logger object to use
|
199
|
+
:param dryrun: option to run dry-run mode (boolean)
|
200
|
+
:param fin: input file name to read from (optional, string)
|
201
|
+
:return: nothing
|
202
|
+
"""
|
203
|
+
if fin:
|
204
|
+
if os.path.exists(fin):
|
205
|
+
with open(fin, 'r', encoding='utf-8') as istream:
|
206
|
+
puOverride = json.load(istream)
|
207
|
+
logger.info("Pileup override file: %s has the following content: %s", fin, puOverride)
|
208
|
+
else:
|
209
|
+
logger.error("Provided %s file does not exist", fin)
|
210
|
+
os.exit(1)
|
211
|
+
else:
|
212
|
+
logger.info("No input file is provided to update pileup records")
|
213
|
+
os.exit(1)
|
214
|
+
|
215
|
+
puDocs = getPileupDocs(url, handler, logger)
|
216
|
+
logger.info("Found %d documents in MSPileup", len(puDocs))
|
217
|
+
|
218
|
+
# update the documents with the override content
|
219
|
+
for doc in puDocs:
|
220
|
+
doc.update(puOverride)
|
221
|
+
logger.info("New pileup document is: %s", doc)
|
222
|
+
|
223
|
+
if dryrun:
|
224
|
+
logger.info("Updated documents (dry-run option):")
|
225
|
+
for doc in puDocs:
|
226
|
+
logger.info(doc)
|
227
|
+
else:
|
228
|
+
# finally, update the pileup documents in the database
|
229
|
+
writePileupDocs(url, puDocs, handler, logger)
|
230
|
+
logger.info("documents are uploaded to MSPileup\n")
|
231
|
+
|
232
|
+
|
150
233
|
def main():
|
151
234
|
"""Executes everything"""
|
152
235
|
optmgr = OptionParser()
|
@@ -179,24 +262,10 @@ def main():
|
|
179
262
|
# initialize HTTPS client handler
|
180
263
|
handler = HTTPSClientAuthHandler(key, cert)
|
181
264
|
|
182
|
-
|
183
|
-
|
184
|
-
logger.info("Pileup override file: %s has the following content: %s", opts.fin, puOverride)
|
185
|
-
|
186
|
-
puDocs = getPileupDocs(opts.url, handler, logger)
|
187
|
-
logger.info("Found %d documents in MSPileup", len(puDocs))
|
188
|
-
|
189
|
-
# update the documents with the override content
|
190
|
-
for doc in puDocs:
|
191
|
-
doc.update(puOverride)
|
192
|
-
logger.info("New pileup document is: %s", doc)
|
193
|
-
|
194
|
-
if opts.dryrun:
|
195
|
-
logger.info("documents are not written due to --dry-run option\n")
|
265
|
+
if opts.transition:
|
266
|
+
addTransitionRecords(handler, opts.url, opts.userDN, logger, opts.dryrun)
|
196
267
|
else:
|
197
|
-
|
198
|
-
writePileupDocs(opts.url, puDocs, handler, logger)
|
199
|
-
logger.info("documents are uploaded to MSPileup\n")
|
268
|
+
updatePileupRecords(handler, opts.url, logger, opts.dryrun, opts.fin)
|
200
269
|
|
201
270
|
|
202
271
|
if __name__ == '__main__':
|
@@ -1,73 +0,0 @@
|
|
1
|
-
#!/usr/bin/env python
|
2
|
-
"""
|
3
|
-
File : adjustMongoDocs.py
|
4
|
-
Author : Valentin Kuznetsov <vkuznet AT gmail dot com>
|
5
|
-
Description: adjust documents in MongoDB with given schema
|
6
|
-
The script loops over given db documents (from given db name
|
7
|
-
and collection) and add to each document a new schema provided
|
8
|
-
via input file name, e.g.
|
9
|
-
|
10
|
-
# new schema addition:
|
11
|
-
cat > /tmp/schema.json << EOF
|
12
|
-
{"foo": 1}
|
13
|
-
EOF
|
14
|
-
|
15
|
-
# run script to update all documents in test.test database and add to them
|
16
|
-
# a json structure presented in /tmp/schema.json file
|
17
|
-
adjustMongoDocs.py --fin=/tmp/schema.json --dburi=localhost:8230 --dbname=test --dbcoll=test --verbose 1
|
18
|
-
|
19
|
-
NOTE: the script can run from any location assuming it has proper db uri with
|
20
|
-
credentials and availability of mongo db outside of its own cluster, but most
|
21
|
-
likely it will be run on mongo db k8s cluster
|
22
|
-
"""
|
23
|
-
|
24
|
-
import argparse
|
25
|
-
import json
|
26
|
-
from pymongo import MongoClient
|
27
|
-
|
28
|
-
|
29
|
-
class OptionParser(object):
|
30
|
-
"Helper class to handle script options"
|
31
|
-
|
32
|
-
def __init__(self):
|
33
|
-
"User based option parser"
|
34
|
-
self.parser = argparse.ArgumentParser(prog='PROG')
|
35
|
-
self.parser.add_argument("--fin", action="store",
|
36
|
-
dest="fin", default="", help="Input file with update fields")
|
37
|
-
self.parser.add_argument("--dburi", action="store",
|
38
|
-
dest="dburi", default="", help="MongoDB URI")
|
39
|
-
self.parser.add_argument("--dbname", action="store",
|
40
|
-
dest="dbname", default="", help="MongoDB database")
|
41
|
-
self.parser.add_argument("--dbcoll", action="store",
|
42
|
-
dest="dbcoll", default="", help="MongoDB collection")
|
43
|
-
self.parser.add_argument("--verbose", action="store",
|
44
|
-
dest="verbose", default=0, help="verbosity level")
|
45
|
-
|
46
|
-
|
47
|
-
def adjust():
|
48
|
-
"""
|
49
|
-
helper script to update documents in MongoDB with given db name/collection
|
50
|
-
and schema file (which should contain new addition, in form of JSON, to the
|
51
|
-
db documents)
|
52
|
-
"""
|
53
|
-
optmgr = OptionParser()
|
54
|
-
opts = optmgr.parser.parse_args()
|
55
|
-
conn = MongoClient(host=opts.dburi)
|
56
|
-
dbname = opts.dbname
|
57
|
-
dbcoll = opts.dbcoll
|
58
|
-
verbose = opts.verbose
|
59
|
-
schema = {}
|
60
|
-
with open(opts.fin, 'r', encoding='utf-8') as istream:
|
61
|
-
schema = json.load(istream)
|
62
|
-
if schema:
|
63
|
-
if verbose:
|
64
|
-
print("read data from '%s', %s/%s" % (opts.dburi, dbname, dbcoll))
|
65
|
-
records = [r for r in conn[dbname][dbcoll].find()]
|
66
|
-
for doc in records:
|
67
|
-
if verbose:
|
68
|
-
print("update doc=%s with schema=%s" % (doc, schema))
|
69
|
-
conn[dbname][dbcoll].update_one(doc, {'$set': schema}, upsert=True)
|
70
|
-
|
71
|
-
|
72
|
-
if __name__ == '__main__':
|
73
|
-
adjust()
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/ParseSpecCmsswdist.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/checkDsetFileCount.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/createPileupObjects.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/fixWorkflowParentage.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/getWQStatusByWorkflow.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/parseUnifiedCampaigns.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/setrequeststatus.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/summaryWMStatsFailures.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/bin/adhoc-scripts/updateTotalStats.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/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.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/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
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/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.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Alarm.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/MathAlgos.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/MiscAlgos.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/ParseXMLFile.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Permissions.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/Singleton.py
RENAMED
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Algorithms/__init__.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Cache/GenericDataCache.py
RENAMED
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/Cache/WMConfigCache.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{reqmgr2ms-output-2.3.2rc5 → reqmgr2ms-output-2.3.2rc6}/src/python/WMCore/DataStructs/File.py
RENAMED
File without changes
|