reqmgr2ms-output 2.3.2rc9__tar.gz → 2.3.4__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (275) hide show
  1. {reqmgr2ms-output-2.3.2rc9/src/python/reqmgr2ms_output.egg-info → reqmgr2ms-output-2.3.4}/PKG-INFO +1 -1
  2. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/checkStuckLQE.py +2 -4
  3. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/drainAgent.py +1 -2
  4. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/getWQStatusByWorkflow.py +1 -3
  5. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/dbsbuffer-file-fix.py +1 -1
  6. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/kill-workflow-in-agent +2 -6
  7. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/kill-workflow-in-global +2 -6
  8. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-couchapp-init +41 -8
  9. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/setup_dependencies.py +5 -0
  10. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/IteratorTools.py +12 -0
  11. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/Rucio/Rucio.py +27 -16
  12. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/TagCollector/XMLUtils.py +2 -2
  13. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/__init__.py +1 -1
  14. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4/src/python/reqmgr2ms_output.egg-info}/PKG-INFO +1 -1
  15. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/LICENSE +0 -0
  16. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/MANIFEST.in +0 -0
  17. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/NOTICE +0 -0
  18. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/README.md +0 -0
  19. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/HWMon/wmcore-SysStat +0 -0
  20. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/acdcserver-tools +0 -0
  21. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/ParseSpecCmsswdist.py +0 -0
  22. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/adjustMongoDocs.py +0 -0
  23. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/checkDsetFileCount.py +0 -0
  24. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/createPileupObjects.py +0 -0
  25. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/fixWorkflowParentage.py +0 -0
  26. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/injectUnified.py +0 -0
  27. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/mongoInit.py +0 -0
  28. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/parseUnifiedCampaigns.py +0 -0
  29. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/setrequeststatus.py +0 -0
  30. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/summaryWMStatsFailures.py +0 -0
  31. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/updatePileupObjects.py +0 -0
  32. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/updateTotalStats.py +0 -0
  33. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/adhoc-scripts/workflowCompletion.py +0 -0
  34. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/attempt-to-patch.sh +0 -0
  35. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/buildrelease.sh +0 -0
  36. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/check-ACDC-parentage +0 -0
  37. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/check-phedex-dbs-status +0 -0
  38. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/check-request-wq-status +0 -0
  39. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/clean-oracle +0 -0
  40. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/combineMinifyWMStats.py +0 -0
  41. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/couch-thrash.py +0 -0
  42. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/couch_archiver.py +0 -0
  43. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/create-iam-token.sh +0 -0
  44. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/createStoreResults.py +0 -0
  45. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/deploy-rpm-to-jenkins.sh +0 -0
  46. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/fix-dbs-parentage +0 -0
  47. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/inject-to-config-cache +0 -0
  48. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/make-local-clones.sh +0 -0
  49. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/outputmodules-from-config +0 -0
  50. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/patchComponent.sh +0 -0
  51. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/paused-jobs +0 -0
  52. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/purgeDeletedCouchDoc.py +0 -0
  53. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/reqmgr-put-default-config +0 -0
  54. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/reqmgr-sw-update +0 -0
  55. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/vaildateCMSSWMergeVersion +0 -0
  56. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-delete-couchdb-workflow +0 -0
  57. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-mod-config +0 -0
  58. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-resource-control +0 -0
  59. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-unregister-wmstats +0 -0
  60. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-upload-config +0 -0
  61. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmagent-workqueue +0 -0
  62. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmc-dist-patch +0 -0
  63. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmc-dist-unpatch +0 -0
  64. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmc-httpd +0 -0
  65. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmcore-db-init +0 -0
  66. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmcore-new-config +0 -0
  67. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmcore-new-flow +0 -0
  68. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/bin/wmcoreD +0 -0
  69. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/requirements.txt +0 -0
  70. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/setup.cfg +0 -0
  71. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/setup.py +0 -0
  72. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/setup_build.py +0 -0
  73. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/CPMetrics.py +0 -0
  74. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/CertTools.py +0 -0
  75. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/EmailAlert.py +0 -0
  76. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/ExtendedUnitTestCase.py +0 -0
  77. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/FileTools.py +0 -0
  78. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/MathUtils.py +0 -0
  79. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/MemoryCache.py +0 -0
  80. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Patterns.py +0 -0
  81. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Pipeline.py +0 -0
  82. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/PortForward.py +0 -0
  83. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/ProcessStats.py +0 -0
  84. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/PythonVersion.py +0 -0
  85. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Signals.py +0 -0
  86. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/TemporaryEnvironment.py +0 -0
  87. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Throttled.py +0 -0
  88. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Timers.py +0 -0
  89. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Timestamps.py +0 -0
  90. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/TokenManager.py +0 -0
  91. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Tracing.py +0 -0
  92. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/TwPrint.py +0 -0
  93. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/Utilities.py +0 -0
  94. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/Utils/__init__.py +0 -0
  95. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/Alarm.py +0 -0
  96. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/MathAlgos.py +0 -0
  97. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/MiscAlgos.py +0 -0
  98. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/ParseXMLFile.py +0 -0
  99. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/Permissions.py +0 -0
  100. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/Singleton.py +0 -0
  101. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/SubprocessAlgos.py +0 -0
  102. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Algorithms/__init__.py +0 -0
  103. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Cache/GenericDataCache.py +0 -0
  104. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Cache/WMConfigCache.py +0 -0
  105. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Cache/__init__.py +0 -0
  106. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Configuration.py +0 -0
  107. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DAOFactory.py +0 -0
  108. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/File.py +0 -0
  109. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Fileset.py +0 -0
  110. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Job.py +0 -0
  111. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/JobGroup.py +0 -0
  112. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/JobPackage.py +0 -0
  113. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/LumiList.py +0 -0
  114. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Mask.py +0 -0
  115. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +0 -0
  116. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +0 -0
  117. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/MathStructs/SummaryHistogram.py +0 -0
  118. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/MathStructs/__init__.py +0 -0
  119. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Pickleable.py +0 -0
  120. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Run.py +0 -0
  121. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Subscription.py +0 -0
  122. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/WMObject.py +0 -0
  123. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/WorkUnit.py +0 -0
  124. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/Workflow.py +0 -0
  125. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/DataStructs/__init__.py +0 -0
  126. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/CMSCouch.py +0 -0
  127. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/ConfigDBMap.py +0 -0
  128. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/CouchUtils.py +0 -0
  129. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/DBCore.py +0 -0
  130. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/DBCreator.py +0 -0
  131. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/DBExceptionHandler.py +0 -0
  132. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/DBFactory.py +0 -0
  133. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/DBFormatter.py +0 -0
  134. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/Dialects.py +0 -0
  135. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/ExecuteDAO.py +0 -0
  136. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/MongoDB.py +0 -0
  137. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/MySQL/Destroy.py +0 -0
  138. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/MySQL/ListUserContent.py +0 -0
  139. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/MySQL/__init__.py +0 -0
  140. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/MySQLCore.py +0 -0
  141. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/Oracle/Destroy.py +0 -0
  142. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/Oracle/ListUserContent.py +0 -0
  143. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/Oracle/__init__.py +0 -0
  144. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/ResultSet.py +0 -0
  145. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/Transaction.py +0 -0
  146. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/__init__.py +0 -0
  147. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Database/ipy_profile_couch.py +0 -0
  148. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/CouchObject.py +0 -0
  149. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/Decorators.py +0 -0
  150. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/Group.py +0 -0
  151. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/Interface.py +0 -0
  152. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/User.py +0 -0
  153. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/GroupUser/__init__.py +0 -0
  154. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Lexicon.py +0 -0
  155. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py +0 -0
  156. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/CherryPyThreads/__init__.py +0 -0
  157. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/DataStructs/DefaultStructs.py +0 -0
  158. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/DataStructs/__init__.py +0 -0
  159. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSCore/MSAuth.py +0 -0
  160. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSCore/MSCore.py +0 -0
  161. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSCore/MSManager.py +0 -0
  162. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSCore/TaskManager.py +0 -0
  163. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSCore/__init__.py +0 -0
  164. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSOutput/MSOutput.py +0 -0
  165. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSOutput/MSOutputStreamer.py +0 -0
  166. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSOutput/MSOutputTemplate.py +0 -0
  167. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSOutput/RelValPolicy.py +0 -0
  168. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/MSOutput/__init__.py +0 -0
  169. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Service/Data.py +0 -0
  170. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Service/RestApiHub.py +0 -0
  171. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Service/__init__.py +0 -0
  172. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Tools/Common.py +0 -0
  173. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Tools/PycurlRucio.py +0 -0
  174. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/Tools/__init__.py +0 -0
  175. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/WebGui/FrontPage.py +0 -0
  176. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/MicroService/WebGui/__init__.py +0 -0
  177. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Auth.py +0 -0
  178. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/CherryPyPeriodicTask.py +0 -0
  179. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Error.py +0 -0
  180. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Format.py +0 -0
  181. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/HeartbeatMonitorBase.py +0 -0
  182. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Main.py +0 -0
  183. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Server.py +0 -0
  184. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Services.py +0 -0
  185. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Test.py +0 -0
  186. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Tools.py +0 -0
  187. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/Validation.py +0 -0
  188. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/REST/__init__.py +0 -0
  189. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py +0 -0
  190. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/ReqMgr/DataStructs/RequestType.py +0 -0
  191. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/ReqMgr/DataStructs/__init__.py +0 -0
  192. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/ReqMgr/__init__.py +0 -0
  193. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/AlertManager/AlertManagerAPI.py +0 -0
  194. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/AlertManager/__init__.py +0 -0
  195. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/CRIC/CRIC.py +0 -0
  196. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/CRIC/__init__.py +0 -0
  197. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBS3Reader.py +0 -0
  198. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBSConcurrency.py +0 -0
  199. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBSErrors.py +0 -0
  200. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBSReader.py +0 -0
  201. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBSUtils.py +0 -0
  202. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/DBSWriterObjects.py +0 -0
  203. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/ProdException.py +0 -0
  204. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/DBS/__init__.py +0 -0
  205. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/FWJRDB/FWJRDBAPI.py +0 -0
  206. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/FWJRDB/__init__.py +0 -0
  207. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/HTTPS/HTTPSAuthHandler.py +0 -0
  208. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/HTTPS/__init__.py +0 -0
  209. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/LogDB/LogDB.py +0 -0
  210. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/LogDB/LogDBBackend.py +0 -0
  211. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/LogDB/LogDBExceptions.py +0 -0
  212. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/LogDB/LogDBReport.py +0 -0
  213. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/LogDB/__init__.py +0 -0
  214. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/MSPileup/MSPileupUtils.py +0 -0
  215. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/MSPileup/__init__.py +0 -0
  216. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/McM/McM.py +0 -0
  217. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/McM/__init__.py +0 -0
  218. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/MonIT/Grafana.py +0 -0
  219. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/MonIT/__init__.py +0 -0
  220. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/PyCondor/PyCondorAPI.py +0 -0
  221. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/PyCondor/PyCondorUtils.py +0 -0
  222. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/PyCondor/__init__.py +0 -0
  223. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/ReqMgr/ReqMgr.py +0 -0
  224. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/ReqMgr/__init__.py +0 -0
  225. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/ReqMgrAux/ReqMgrAux.py +0 -0
  226. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/ReqMgrAux/__init__.py +0 -0
  227. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/RequestDB/RequestDBReader.py +0 -0
  228. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/RequestDB/RequestDBWriter.py +0 -0
  229. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/RequestDB/__init__.py +0 -0
  230. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/Requests.py +0 -0
  231. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/Rucio/RucioUtils.py +0 -0
  232. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/Rucio/__init__.py +0 -0
  233. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/RucioConMon/RucioConMon.py +0 -0
  234. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/RucioConMon/__init__.py +0 -0
  235. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/Service.py +0 -0
  236. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/StompAMQ/__init__.py +0 -0
  237. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/TagCollector/TagCollector.py +0 -0
  238. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/TagCollector/__init__.py +0 -0
  239. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/UUIDLib.py +0 -0
  240. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/UserFileCache/UserFileCache.py +0 -0
  241. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/UserFileCache/__init__.py +0 -0
  242. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMAgent/WMAgent.py +0 -0
  243. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMAgent/__init__.py +0 -0
  244. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMArchive/CMSSWMetrics.py +0 -0
  245. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMArchive/DataMap.py +0 -0
  246. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMArchive/WMArchive.py +0 -0
  247. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMArchive/__init__.py +0 -0
  248. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMBS/WMBS.py +0 -0
  249. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMBS/__init__.py +0 -0
  250. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +0 -0
  251. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
  252. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/WMStatsPycurl.py +0 -0
  253. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/WMStatsReader.py +0 -0
  254. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/WMStatsWriter.py +0 -0
  255. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStats/__init__.py +0 -0
  256. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStatsServer/WMStatsServer.py +0 -0
  257. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WMStatsServer/__init__.py +0 -0
  258. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WorkQueue/WorkQueue.py +0 -0
  259. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/WorkQueue/__init__.py +0 -0
  260. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/__init__.py +0 -0
  261. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Services/pycurl_manager.py +0 -0
  262. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMBase.py +0 -0
  263. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMConnectionBase.py +0 -0
  264. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMException.py +0 -0
  265. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMExceptions.py +0 -0
  266. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMFactory.py +0 -0
  267. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMInit.py +0 -0
  268. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/WMLogging.py +0 -0
  269. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Wrappers/JsonWrapper/JSONThunker.py +0 -0
  270. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Wrappers/JsonWrapper/__init__.py +0 -0
  271. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/WMCore/Wrappers/__init__.py +0 -0
  272. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/reqmgr2ms_output.egg-info/SOURCES.txt +0 -0
  273. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/reqmgr2ms_output.egg-info/dependency_links.txt +0 -0
  274. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/reqmgr2ms_output.egg-info/requires.txt +0 -0
  275. {reqmgr2ms-output-2.3.2rc9 → reqmgr2ms-output-2.3.4}/src/python/reqmgr2ms_output.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: reqmgr2ms-output
3
- Version: 2.3.2rc9
3
+ Version: 2.3.4
4
4
  Summary: UNKNOWN
5
5
  Home-page: https://github.com/dmwm/WMCore
6
6
  Maintainer: CMS DMWM Group
@@ -72,10 +72,8 @@ def commonDataLocation(element):
72
72
  return commonLoc
73
73
 
74
74
  def main():
75
- if 'WMAGENT_CONFIG' not in os.environ:
76
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
77
- config = loadConfigurationFile(os.environ["WMAGENT_CONFIG"])
78
-
75
+ config = loadConfigurationFile(os.environ.get('WMA_CONFIG_FILE', '/data/srv/wmagent/current/config/config.py'))
76
+
79
77
  if len(sys.argv) != 2:
80
78
  print("You must provide a request name")
81
79
  sys.exit(1)
@@ -366,8 +366,7 @@ def main():
366
366
  twiki = ('<pre>', '</pre>') if args.twiki else ('', '')
367
367
  print(twiki[0])
368
368
 
369
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
370
- config = loadConfigurationFile(os.environ["WMAGENT_CONFIG"])
369
+ config = loadConfigurationFile(os.environ.get('WMA_CONFIG_FILE', '/data/srv/wmagent/current/config/config.py'))
371
370
 
372
371
  gmtTimeNow = strftime("%a, %d %b %Y %H:%M:%S +0000", gmtime())
373
372
  print("Drain check time: %s\n" % gmtTimeNow)
@@ -37,9 +37,7 @@ def createElementsSummary(reqName, elements, queueUrl):
37
37
 
38
38
 
39
39
  def main():
40
- if 'WMAGENT_CONFIG' not in os.environ:
41
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
42
- config = loadConfigurationFile(os.environ["WMAGENT_CONFIG"])
40
+ config = loadConfigurationFile(os.environ.get('WMA_CONFIG_FILE', '/data/srv/wmagent/current/config/config.py'))
43
41
 
44
42
  if len(sys.argv) != 2:
45
43
  print("You must provide a request name")
@@ -9,7 +9,7 @@ from WMCore.Database.DBFormatter import DBFormatter
9
9
  from WMCore.WMInit import connectToDB
10
10
 
11
11
  def fixDBSmissingFileAssoc():
12
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
12
+ os.environ['WMA_CONFIG_FILE'] = '/data/srv/wmagent/current/config/config.py'
13
13
  connectToDB()
14
14
  myThread = threading.currentThread()
15
15
  formatter = DBFormatter(logging, myThread.dbi)
@@ -16,12 +16,8 @@ def killWorkflowAgent(WorkflowName):
16
16
  """
17
17
  Cancel work for a given workflow - delete in wmbs, delete from workqueue db, set canceled in inbox
18
18
  """
19
- # get configuration file path
20
- if "WMAGENT_CONFIG" not in os.environ:
21
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
22
-
23
- # load config
24
- wmConfig = loadConfigurationFile(os.environ['WMAGENT_CONFIG'])
19
+ # get configuration file path and load it
20
+ wmConfig = loadConfigurationFile(os.environ.get('WMA_CONFIG_FILE', '/data/srv/wmagent/current/config/config.py'))
25
21
  wqManager = wmConfig.section_('WorkQueueManager')
26
22
 
27
23
  couchUrl = wqManager.couchurl
@@ -25,12 +25,8 @@ def main():
25
25
  sys.exit(0)
26
26
  wflowName = args[0]
27
27
 
28
- # get configuration file path
29
- if "WMAGENT_CONFIG" not in os.environ:
30
- os.environ['WMAGENT_CONFIG'] = '/data/srv/wmagent/current/config/wmagent/config.py'
31
-
32
- # load config
33
- wmConfig = loadConfigurationFile(os.environ['WMAGENT_CONFIG'])
28
+ # get configuration file path and load it
29
+ wmConfig = loadConfigurationFile(os.environ.get('WMA_CONFIG_FILE', '/data/srv/wmagent/current/config/config.py'))
34
30
 
35
31
  gqService = WorkQueue(wmConfig.WorkloadSummary.couchurl,
36
32
  wmConfig.WorkQueueManager.dbname)
@@ -18,6 +18,19 @@ from WMCore.Configuration import loadConfigurationFile
18
18
  from WMCore.Lexicon import splitCouchServiceURL
19
19
  from WMCore.WMBase import getWMBASE
20
20
 
21
+ parser = argparse.ArgumentParser()
22
+ parser.add_argument("--skip-cron", dest = "cron",
23
+ default = True, action = "store_false",
24
+ help = "Do not install maintenance cron jobs")
25
+ parser.add_argument("--only-cron", dest = "pushApps",
26
+ default = True, action = "store_false",
27
+ help = "Install only maintenance cron jobs")
28
+ options = parser.parse_args()
29
+
30
+ if not options.cron and not options.pushApps:
31
+ print("Mutually excluding options: --skip-cron && --only-cron")
32
+ print("Chose only one of them.")
33
+ sys.exit(1)
21
34
 
22
35
  def couchAppRoot(couchapp):
23
36
  """Return parent path containing couchapp"""
@@ -31,7 +44,32 @@ def couchAppRoot(couchapp):
31
44
  return os.path.join(wmcoreroot, 'data', 'couchapps')
32
45
  raise OSError('Cannot find couchapp: %s' % couchapp)
33
46
 
34
-
47
+ # Defining a minimal decorator with parameter
48
+ def pushApps(pushAppsFlag):
49
+ """
50
+ Decorator with a single Bool parameter
51
+ :param pushApps: Bool parameter to check if the callFunc is to be executed or not
52
+ :return: The decorated function with call arguments if pushApps=True
53
+ """
54
+ def pushAppsDecorator(callFunc):
55
+ """
56
+ An Auxiliary simple decorator
57
+ """
58
+ def installCouchAppWrapper(*args, **kwargs):
59
+ """
60
+ The callFunc wrapper. To decide whether to return the call to the
61
+ wrapped function or not based on the decorator's pushAppsFlag
62
+ :*args: All parameters passed to the wrapped function call
63
+ :**kwargs: All keyword arguments passed to the wrapped function call
64
+ """
65
+ if pushAppsFlag:
66
+ return callFunc(*args, **kwargs)
67
+ else:
68
+ return
69
+ return installCouchAppWrapper
70
+ return pushAppsDecorator
71
+
72
+ @pushApps(options.pushApps)
35
73
  def installCouchApp(couchUrl, couchDBName, couchAppName, basePath=None):
36
74
  """
37
75
  _installCouchApp_
@@ -273,11 +311,6 @@ files_needed_from_yui = [
273
311
 
274
312
 
275
313
  if __name__ == "__main__":
276
- parser = argparse.ArgumentParser()
277
- parser.add_argument("--skip-cron", dest = "cron",
278
- default = True, action = "store_false",
279
- help = "Do not install maintenance cron jobs")
280
- options = parser.parse_args()
281
314
 
282
315
  if "WMAGENT_CONFIG" not in os.environ:
283
316
  print("The WMAGENT_CONFIG environment variable needs to be set before")
@@ -285,7 +318,7 @@ if __name__ == "__main__":
285
318
  sys.exit(1)
286
319
 
287
320
  wmagentConfig = loadConfigurationFile(os.environ["WMAGENT_CONFIG"])
288
-
321
+
289
322
  if hasattr(wmagentConfig, "JobStateMachine") and hasattr(wmagentConfig.JobStateMachine, "couchDBName"):
290
323
  fwjrDumpName = urllib.parse.quote_plus("%s/fwjrs" % wmagentConfig.JobStateMachine.couchDBName)
291
324
  jobDumpName = urllib.parse.quote_plus("%s/jobs" % wmagentConfig.JobStateMachine.couchDBName)
@@ -355,7 +388,7 @@ if __name__ == "__main__":
355
388
  urlsplit(wmagentConfig.WorkloadSummary.couchurl).scheme == 'http':
356
389
  installCouchApp(wmagentConfig.ACDC.couchurl, wmagentConfig.ACDC.database, "ACDC")
357
390
  installCouchApp(wmagentConfig.ACDC.couchurl, wmagentConfig.ACDC.database, "GroupUser")
358
-
391
+
359
392
  if hasattr(wmagentConfig, "Tier0Feeder"):
360
393
  installCouchApp(wmagentConfig.JobStateMachine.couchurl, wmagentConfig.Tier0Feeder.requestDBName, "T0Request")
361
394
  centralWMStatsURL = wmagentConfig.General.centralWMStatsURL
@@ -186,6 +186,7 @@ dependencies = {
186
186
  'WMCore.BossAir+', 'WMCore.Credential',
187
187
  'WMCore.JobSplitting+', 'WMCore.ProcessPool',
188
188
  'WMCore.Services+', 'WMCore.WMSpec+',
189
+ 'WMCore.ReqMgr.DataStructs+', 'WMCore.ReqMgr.Tools+',
189
190
  'WMCore.WMBS+', 'WMCore.ResourceControl+'],
190
191
  'systems': ['wmc-web', 'wmc-database', 'global-workqueue', 'wmc-runtime'],
191
192
  'statics': ['bin+',
@@ -196,6 +197,10 @@ dependencies = {
196
197
  'src/couchapps/JobDump+',
197
198
  'src/couchapps/WMStatsAgent+',
198
199
  'src/couchapps/WorkQueue+',
200
+ 'src/couchapps/T0Request+',
201
+ 'src/couchapps/WMStats+',
202
+ 'src/couchapps/LogDB+',
203
+ 'src/couchapps/UserMonitoring+',
199
204
  'src/javascript/WMCore/WebTools/Agent',
200
205
  'src/javascript/WMCore/WebTools/WMBS',
201
206
  'src/javascript/external/graphael',
@@ -18,6 +18,18 @@ def grouper(iterable, n):
18
18
  return iter(lambda: list(islice(iterable, n)), [])
19
19
 
20
20
 
21
+ def getChunk(arr, step):
22
+ """
23
+ Return chunk of entries from given array and step, it is similar in behavior to grouper
24
+ function but instead of returning new list it provides a generator iterable object.
25
+ :param arr: input array of data
26
+ :param step: step to iterate
27
+ :return: generator, set of slices with number of entries equal to step of iteration
28
+ """
29
+ for i in range(0, len(arr), step):
30
+ yield arr[i:i + step]
31
+
32
+
21
33
  def flattenList(doubleList):
22
34
  """
23
35
  Make flat a list of lists.
@@ -18,6 +18,7 @@ from rucio.common.exception import (AccountNotFound, DataIdentifierNotFound, Acc
18
18
  DataIdentifierAlreadyExists, DuplicateContent, InvalidRSEExpression,
19
19
  UnsupportedOperation, FileAlreadyExists, RuleNotFound, RSENotFound)
20
20
  from Utils.MemoryCache import MemoryCache
21
+ from Utils.IteratorTools import grouper
21
22
  from WMCore.Services.Rucio.RucioUtils import (validateMetaData, weightedChoice,
22
23
  isTapeRSE, dropTapeRSEs)
23
24
  from WMCore.WMException import WMException
@@ -346,7 +347,7 @@ class Rucio(object):
346
347
  response = self.attachDIDs(kwargs.get('rse'), container, name, scope)
347
348
  return response
348
349
 
349
- def attachDIDs(self, rse, superDID, dids, scope='cms'):
350
+ def attachDIDs(self, rse, superDID, dids, scope='cms', chunkSize=1000):
350
351
  """
351
352
  _attachDIDs_
352
353
 
@@ -356,28 +357,38 @@ class Rucio(object):
356
357
  then it's a container name; if attaching files, then it's a block name)
357
358
  :param dids: either a string or a list of data identifiers (can be block or files)
358
359
  :param scope: string with the scope name
360
+ :param chunkSize: maximum number of dids to be attached in any single Rucio server call
359
361
  :return: a boolean to represent whether it succeeded or not
360
362
  """
361
363
  if not isinstance(dids, list):
362
364
  dids = [dids]
363
365
  # NOTE: the attaching dids do not create new container within a scope
364
366
  # and it is safe to use cms scope for it
365
- dids = [{'scope': 'cms', 'name': did} for did in dids]
367
+ alldids = [{'scope': 'cms', 'name': did} for did in sorted(dids)]
368
+
369
+ # report if we use chunk size in rucio attach_dids API call
370
+ if len(alldids) > chunkSize:
371
+ self.logger.info("Attaching a total of %d DIDs in chunk size of: %d", len(alldids), chunkSize)
372
+
373
+ for dids in grouper(alldids, chunkSize):
374
+ response = False
375
+ try:
376
+ response = self.cli.attach_dids(scope, superDID, dids=dids, rse=rse)
377
+ except DuplicateContent:
378
+ self.logger.warning("Dids: %s already attached to: %s", dids, superDID)
379
+ response = True
380
+ except FileAlreadyExists:
381
+ self.logger.warning("Failed to attach files already existent on block: %s", superDID)
382
+ response = True
383
+ except DataIdentifierNotFound:
384
+ self.logger.error("Failed to attach dids: %s. Parent DID %s does not exist.", dids, superDID)
385
+ except Exception as ex:
386
+ self.logger.error("Exception attaching %s dids to: %s. Error: %s. First 10 dids: %s",
387
+ len(dids), superDID, str(ex), dids[:10])
388
+ if not response:
389
+ # if we had failure with specific chunk of dids we'll return immediately
390
+ return response
366
391
 
367
- response = False
368
- try:
369
- response = self.cli.attach_dids(scope, superDID, dids=dids, rse=rse)
370
- except DuplicateContent:
371
- self.logger.warning("Dids: %s already attached to: %s", dids, superDID)
372
- response = True
373
- except FileAlreadyExists:
374
- self.logger.warning("Failed to attach files already existent on block: %s", superDID)
375
- response = True
376
- except DataIdentifierNotFound:
377
- self.logger.error("Failed to attach dids: %s. Parent DID %s does not exist.", dids, superDID)
378
- except Exception as ex:
379
- self.logger.error("Exception attaching dids: %s to: %s. Error: %s",
380
- dids, superDID, str(ex))
381
392
  return response
382
393
 
383
394
  def createReplicas(self, rse, files, block, scope='cms', ignoreAvailability=True):
@@ -71,7 +71,7 @@ def get_children(elem, event, row, key):
71
71
  row for given key. The change of notations can be applied during
72
72
  parsing step by using provided notations dictionary.
73
73
  """
74
- for child in elem.getchildren():
74
+ for child in list(elem):
75
75
  child_key = child.tag
76
76
  child_data = child.attrib
77
77
  if not child_data:
@@ -79,7 +79,7 @@ def get_children(elem, event, row, key):
79
79
  else:
80
80
  child_dict = child_data
81
81
 
82
- if child.getchildren(): # we got grand-children
82
+ if list(child): # we got grand-children
83
83
  if child_dict:
84
84
  row[key][child_key] = child_dict
85
85
  else:
@@ -6,5 +6,5 @@ Core libraries for Workload Management Packages
6
6
 
7
7
  """
8
8
 
9
- __version__ = '2.3.2rc9'
9
+ __version__ = '2.3.4'
10
10
  __all__ = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: reqmgr2ms-output
3
- Version: 2.3.2rc9
3
+ Version: 2.3.4
4
4
  Summary: UNKNOWN
5
5
  Home-page: https://github.com/dmwm/WMCore
6
6
  Maintainer: CMS DMWM Group