reqmgr2ms-output 2.3.8rc8__tar.gz → 2.3.8rc10__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (277) hide show
  1. {reqmgr2ms-output-2.3.8rc8/src/python/reqmgr2ms_output.egg-info → reqmgr2ms-output-2.3.8rc10}/PKG-INFO +1 -1
  2. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSOutput/MSOutput.py +36 -8
  3. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Service/RestApiHub.py +4 -0
  4. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WorkQueue/WorkQueue.py +34 -28
  5. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/__init__.py +1 -1
  6. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10/src/python/reqmgr2ms_output.egg-info}/PKG-INFO +1 -1
  7. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/LICENSE +0 -0
  8. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/MANIFEST.in +0 -0
  9. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/NOTICE +0 -0
  10. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/README.md +0 -0
  11. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/HWMon/wmcore-SysStat +0 -0
  12. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/acdcserver-tools +0 -0
  13. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/ParseSpecCmsswdist.py +0 -0
  14. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/adjustMongoDocs.py +0 -0
  15. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/checkDsetFileCount.py +0 -0
  16. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/checkStuckLQE.py +0 -0
  17. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/createPileupObjects.py +0 -0
  18. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/drainAgent.py +0 -0
  19. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/fixWorkflowParentage.py +0 -0
  20. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/getWQStatusByWorkflow.py +0 -0
  21. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/injectUnified.py +0 -0
  22. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/mongoInit.py +0 -0
  23. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/parseUnifiedCampaigns.py +0 -0
  24. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/setrequeststatus.py +0 -0
  25. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/summaryWMStatsFailures.py +0 -0
  26. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/updatePileupObjects.py +0 -0
  27. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/updateTotalStats.py +0 -0
  28. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/adhoc-scripts/workflowCompletion.py +0 -0
  29. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/attempt-to-patch.sh +0 -0
  30. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/buildrelease.sh +0 -0
  31. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/check-ACDC-parentage +0 -0
  32. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/check-phedex-dbs-status +0 -0
  33. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/check-request-wq-status +0 -0
  34. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/clean-oracle +0 -0
  35. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/combineMinifyWMStats.py +0 -0
  36. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/couch-thrash.py +0 -0
  37. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/couch_archiver.py +0 -0
  38. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/create-iam-token.sh +0 -0
  39. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/createStoreResults.py +0 -0
  40. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/dbsbuffer-file-fix.py +0 -0
  41. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/deploy-rpm-to-jenkins.sh +0 -0
  42. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/docker.sh +0 -0
  43. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/fix-dbs-parentage +0 -0
  44. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/inject-to-config-cache +0 -0
  45. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/kill-workflow-in-agent +0 -0
  46. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/kill-workflow-in-global +0 -0
  47. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/make-local-clones.sh +0 -0
  48. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/outputmodules-from-config +0 -0
  49. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/patchComponent.sh +0 -0
  50. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/paused-jobs +0 -0
  51. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/purgeDeletedCouchDoc.py +0 -0
  52. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/reqmgr-put-default-config +0 -0
  53. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/reqmgr-sw-update +0 -0
  54. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/vaildateCMSSWMergeVersion +0 -0
  55. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-component-standalone +0 -0
  56. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-couchapp-init +0 -0
  57. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-delete-couchdb-workflow +0 -0
  58. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-mod-config +0 -0
  59. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-resource-control +0 -0
  60. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-unregister-wmstats +0 -0
  61. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-upload-config +0 -0
  62. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmagent-workqueue +0 -0
  63. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmc-dist-patch +0 -0
  64. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmc-dist-unpatch +0 -0
  65. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmc-httpd +0 -0
  66. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmcore-db-init +0 -0
  67. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmcore-new-config +0 -0
  68. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmcore-new-flow +0 -0
  69. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/bin/wmcoreD +0 -0
  70. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/requirements.txt +0 -0
  71. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/setup.cfg +0 -0
  72. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/setup.py +0 -0
  73. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/setup_build.py +0 -0
  74. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/setup_dependencies.py +0 -0
  75. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/CPMetrics.py +0 -0
  76. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/CertTools.py +0 -0
  77. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/EmailAlert.py +0 -0
  78. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/ExtendedUnitTestCase.py +0 -0
  79. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/FileTools.py +0 -0
  80. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/IteratorTools.py +0 -0
  81. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/MathUtils.py +0 -0
  82. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/MemoryCache.py +0 -0
  83. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Patterns.py +0 -0
  84. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Pipeline.py +0 -0
  85. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/PortForward.py +0 -0
  86. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/ProcessStats.py +0 -0
  87. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/PythonVersion.py +0 -0
  88. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Signals.py +0 -0
  89. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/TemporaryEnvironment.py +0 -0
  90. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Throttled.py +0 -0
  91. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Timers.py +0 -0
  92. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Timestamps.py +0 -0
  93. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/TokenManager.py +0 -0
  94. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Tracing.py +0 -0
  95. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/TwPrint.py +0 -0
  96. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/Utilities.py +0 -0
  97. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/Utils/__init__.py +0 -0
  98. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/Alarm.py +0 -0
  99. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/MathAlgos.py +0 -0
  100. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/MiscAlgos.py +0 -0
  101. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/ParseXMLFile.py +0 -0
  102. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/Permissions.py +0 -0
  103. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/Singleton.py +0 -0
  104. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/SubprocessAlgos.py +0 -0
  105. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Algorithms/__init__.py +0 -0
  106. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Cache/GenericDataCache.py +0 -0
  107. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Cache/WMConfigCache.py +0 -0
  108. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Cache/__init__.py +0 -0
  109. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Configuration.py +0 -0
  110. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DAOFactory.py +0 -0
  111. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/File.py +0 -0
  112. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Fileset.py +0 -0
  113. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Job.py +0 -0
  114. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/JobGroup.py +0 -0
  115. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/JobPackage.py +0 -0
  116. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/LumiList.py +0 -0
  117. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Mask.py +0 -0
  118. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/ContinuousSummaryHistogram.py +0 -0
  119. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/DiscreteSummaryHistogram.py +0 -0
  120. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/SummaryHistogram.py +0 -0
  121. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/MathStructs/__init__.py +0 -0
  122. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Pickleable.py +0 -0
  123. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Run.py +0 -0
  124. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Subscription.py +0 -0
  125. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/WMObject.py +0 -0
  126. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/WorkUnit.py +0 -0
  127. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/Workflow.py +0 -0
  128. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/DataStructs/__init__.py +0 -0
  129. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/CMSCouch.py +0 -0
  130. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/ConfigDBMap.py +0 -0
  131. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/CouchUtils.py +0 -0
  132. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/DBCore.py +0 -0
  133. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/DBCreator.py +0 -0
  134. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/DBExceptionHandler.py +0 -0
  135. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/DBFactory.py +0 -0
  136. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/DBFormatter.py +0 -0
  137. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/Dialects.py +0 -0
  138. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/ExecuteDAO.py +0 -0
  139. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/MongoDB.py +0 -0
  140. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/MySQL/Destroy.py +0 -0
  141. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/MySQL/ListUserContent.py +0 -0
  142. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/MySQL/__init__.py +0 -0
  143. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/MySQLCore.py +0 -0
  144. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/Oracle/Destroy.py +0 -0
  145. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/Oracle/ListUserContent.py +0 -0
  146. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/Oracle/__init__.py +0 -0
  147. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/ResultSet.py +0 -0
  148. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/Transaction.py +0 -0
  149. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/__init__.py +0 -0
  150. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Database/ipy_profile_couch.py +0 -0
  151. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/CouchObject.py +0 -0
  152. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/Decorators.py +0 -0
  153. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/Group.py +0 -0
  154. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/Interface.py +0 -0
  155. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/User.py +0 -0
  156. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/GroupUser/__init__.py +0 -0
  157. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Lexicon.py +0 -0
  158. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/CherryPyThreads/HeartbeatMonitor.py +0 -0
  159. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/CherryPyThreads/__init__.py +0 -0
  160. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/DataStructs/DefaultStructs.py +0 -0
  161. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/DataStructs/__init__.py +0 -0
  162. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSAuth.py +0 -0
  163. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSCore.py +0 -0
  164. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/MSManager.py +0 -0
  165. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/TaskManager.py +0 -0
  166. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSCore/__init__.py +0 -0
  167. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSOutput/MSOutputStreamer.py +0 -0
  168. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSOutput/MSOutputTemplate.py +0 -0
  169. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSOutput/RelValPolicy.py +0 -0
  170. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/MSOutput/__init__.py +0 -0
  171. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Service/Data.py +0 -0
  172. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Service/__init__.py +0 -0
  173. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Tools/Common.py +0 -0
  174. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Tools/PycurlRucio.py +0 -0
  175. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/Tools/__init__.py +0 -0
  176. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/WebGui/FrontPage.py +0 -0
  177. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/MicroService/WebGui/__init__.py +0 -0
  178. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Auth.py +0 -0
  179. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/CherryPyPeriodicTask.py +0 -0
  180. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Error.py +0 -0
  181. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Format.py +0 -0
  182. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/HeartbeatMonitorBase.py +0 -0
  183. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Main.py +0 -0
  184. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Server.py +0 -0
  185. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Services.py +0 -0
  186. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Test.py +0 -0
  187. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Tools.py +0 -0
  188. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/Validation.py +0 -0
  189. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/REST/__init__.py +0 -0
  190. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/RequestStatus.py +0 -0
  191. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/RequestType.py +0 -0
  192. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/ReqMgr/DataStructs/__init__.py +0 -0
  193. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/ReqMgr/__init__.py +0 -0
  194. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/AlertManager/AlertManagerAPI.py +0 -0
  195. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/AlertManager/__init__.py +0 -0
  196. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/CRIC/CRIC.py +0 -0
  197. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/CRIC/__init__.py +0 -0
  198. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBS3Reader.py +0 -0
  199. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSConcurrency.py +0 -0
  200. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSErrors.py +0 -0
  201. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSReader.py +0 -0
  202. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSUtils.py +0 -0
  203. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/DBSWriterObjects.py +0 -0
  204. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/ProdException.py +0 -0
  205. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/DBS/__init__.py +0 -0
  206. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/FWJRDB/FWJRDBAPI.py +0 -0
  207. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/FWJRDB/__init__.py +0 -0
  208. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/HTTPS/HTTPSAuthHandler.py +0 -0
  209. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/HTTPS/__init__.py +0 -0
  210. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDB.py +0 -0
  211. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBBackend.py +0 -0
  212. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBExceptions.py +0 -0
  213. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/LogDB/LogDBReport.py +0 -0
  214. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/LogDB/__init__.py +0 -0
  215. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/MSPileup/MSPileupUtils.py +0 -0
  216. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/MSPileup/__init__.py +0 -0
  217. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/McM/McM.py +0 -0
  218. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/McM/__init__.py +0 -0
  219. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/MonIT/Grafana.py +0 -0
  220. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/MonIT/__init__.py +0 -0
  221. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/PyCondor/PyCondorAPI.py +0 -0
  222. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/PyCondor/PyCondorUtils.py +0 -0
  223. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/PyCondor/__init__.py +0 -0
  224. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/ReqMgr/ReqMgr.py +0 -0
  225. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/ReqMgr/__init__.py +0 -0
  226. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/ReqMgrAux/ReqMgrAux.py +0 -0
  227. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/ReqMgrAux/__init__.py +0 -0
  228. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/RequestDB/RequestDBReader.py +0 -0
  229. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/RequestDB/RequestDBWriter.py +0 -0
  230. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/RequestDB/__init__.py +0 -0
  231. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/Requests.py +0 -0
  232. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/Rucio/Rucio.py +0 -0
  233. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/Rucio/RucioUtils.py +0 -0
  234. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/Rucio/__init__.py +0 -0
  235. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/RucioConMon/RucioConMon.py +0 -0
  236. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/RucioConMon/__init__.py +0 -0
  237. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/Service.py +0 -0
  238. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/StompAMQ/__init__.py +0 -0
  239. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/TagCollector/TagCollector.py +0 -0
  240. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/TagCollector/XMLUtils.py +0 -0
  241. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/TagCollector/__init__.py +0 -0
  242. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/UUIDLib.py +0 -0
  243. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/UserFileCache/UserFileCache.py +0 -0
  244. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/UserFileCache/__init__.py +0 -0
  245. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMAgent/WMAgent.py +0 -0
  246. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMAgent/__init__.py +0 -0
  247. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMArchive/CMSSWMetrics.py +0 -0
  248. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMArchive/DataMap.py +0 -0
  249. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMArchive/WMArchive.py +0 -0
  250. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMArchive/__init__.py +0 -0
  251. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMBS/WMBS.py +0 -0
  252. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMBS/__init__.py +0 -0
  253. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/DataStruct/RequestInfoCollection.py +0 -0
  254. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/DataStruct/__init__.py +0 -0
  255. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsPycurl.py +0 -0
  256. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsReader.py +0 -0
  257. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/WMStatsWriter.py +0 -0
  258. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStats/__init__.py +0 -0
  259. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStatsServer/WMStatsServer.py +0 -0
  260. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WMStatsServer/__init__.py +0 -0
  261. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/WorkQueue/__init__.py +0 -0
  262. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/__init__.py +0 -0
  263. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Services/pycurl_manager.py +0 -0
  264. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMBase.py +0 -0
  265. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMConnectionBase.py +0 -0
  266. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMException.py +0 -0
  267. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMExceptions.py +0 -0
  268. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMFactory.py +0 -0
  269. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMInit.py +0 -0
  270. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/WMLogging.py +0 -0
  271. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Wrappers/JsonWrapper/JSONThunker.py +0 -0
  272. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Wrappers/JsonWrapper/__init__.py +0 -0
  273. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/WMCore/Wrappers/__init__.py +0 -0
  274. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/reqmgr2ms_output.egg-info/SOURCES.txt +0 -0
  275. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/reqmgr2ms_output.egg-info/dependency_links.txt +0 -0
  276. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/src/python/reqmgr2ms_output.egg-info/requires.txt +0 -0
  277. {reqmgr2ms-output-2.3.8rc8 → reqmgr2ms-output-2.3.8rc10}/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.8rc8
3
+ Version: 2.3.8rc10
4
4
  Summary: UNKNOWN
5
5
  Home-page: https://github.com/dmwm/WMCore
6
6
  Maintainer: CMS DMWM Group
@@ -519,6 +519,7 @@ class MSOutput(MSCore):
519
519
  (msPipelineNonRelVal, self.msOutNonRelValColl)]
520
520
  for pipeColl in pipeCollections:
521
521
  wfCounters = 0
522
+ wfCountersOk = 0
522
523
  pipeLine = pipeColl[0]
523
524
  dbColl = pipeColl[1]
524
525
  pipeLineName = pipeLine.getPipelineName()
@@ -526,8 +527,10 @@ class MSOutput(MSCore):
526
527
  # FIXME:
527
528
  # To redefine those exceptions as MSoutputExceptions and
528
529
  # start using those here so we do not mix with general errors
530
+ wfCounters += 1
529
531
  try:
530
532
  pipeLine.run(docOut)
533
+ wfCountersOk += 1
531
534
  except (KeyError, TypeError) as ex:
532
535
  msg = "%s Possibly malformed record in MongoDB. Err: %s. " % (pipeLineName, str(ex))
533
536
  msg += "Continue to the next document."
@@ -542,10 +545,12 @@ class MSOutput(MSCore):
542
545
  msg = "%s General error from pipeline. Err: %s. " % (pipeLineName, str(ex))
543
546
  msg += "Will retry again in the next cycle."
544
547
  self.logger.exception(msg)
545
- break
546
- wfCounters += 1
547
- self.logger.info("Processed %d workflows from pipeline: %s", wfCounters, pipeLineName)
548
- wfCounterTotal += wfCounters
548
+ workflowname = docOut.get("_id", "")
549
+ self.alertGenericError(self.mode, workflowname, msg, str(ex), str(docOut))
550
+ continue
551
+ self.logger.info("Successfully processed %d workflows from pipeline: %s", wfCountersOk, pipeLineName)
552
+ self.logger.info("Failed to proccess %d workflows from pipeline: %s", wfCounters - wfCountersOk, pipeLineName)
553
+ wfCounterTotal += wfCountersOk
549
554
 
550
555
  return wfCounterTotal
551
556
 
@@ -579,12 +584,12 @@ class MSOutput(MSCore):
579
584
  Functor(self.docCleaner)])
580
585
  # TODO:
581
586
  # To generate the object from within the Function scope see above.
582
- counter = 0
587
+ counterOk = 0
583
588
  for request in requestRecords:
584
- counter += 1
585
589
  pipeLineName = msPipeline.getPipelineName()
586
590
  try:
587
591
  msPipeline.run(request)
592
+ counterOk += 1
588
593
  except (KeyError, TypeError) as ex:
589
594
  msg = "%s Possibly broken read from ReqMgr2 API or other. Err: %s." % (pipeLineName, str(ex))
590
595
  msg += " Continue to the next document."
@@ -594,8 +599,10 @@ class MSOutput(MSCore):
594
599
  msg = "%s General Error from pipeline. Err: %s. " % (pipeLineName, str(ex))
595
600
  msg += "Giving up Now."
596
601
  self.logger.exception(str(ex))
597
- break
598
- return counter
602
+ workflowname = request.get("_id", "")
603
+ self.alertGenericError(self.mode, workflowname, msg, str(ex), str(request))
604
+ continue
605
+ return counterOk
599
606
 
600
607
  def docTransformer(self, doc):
601
608
  """
@@ -1023,3 +1030,24 @@ class MSOutput(MSCore):
1023
1030
  self.logger.critical(alertDescription)
1024
1031
  if self.msConfig["sendNotification"] and not isRelVal:
1025
1032
  self.sendAlert(alertName, alertSeverity, alertSummary, alertDescription, self.alertServiceName)
1033
+
1034
+ def alertGenericError(self, caller, workflowname, msg, exMsg, document):
1035
+ """
1036
+ Send an alert to Prometheus in the case of a generic error with ms-output
1037
+
1038
+ :param caller: str, indicates if the error comes from Producer or Consumer
1039
+ :param workflowname: str, representing the workflow name
1040
+ :param msg: str, context about the error
1041
+ :param exMsg: str, excetpion message
1042
+ :param document: str, serialized mongodb document
1043
+ :return: none
1044
+ """
1045
+ alertName = "ms-output: Generic MSOutput error inside {} while processing workflow '{}'".format(caller, workflowname)
1046
+ alertSeverity = "high"
1047
+ alertSummary = "[MSOutput] Generic MSOutput error inside {} while processing workflow '{}'".format(caller, workflowname)
1048
+ alertDescription = "wf: {}\n\nmsg: {}\n\nex: {}\n\n{}".format(workflowname, msg, exMsg, document)
1049
+ self.logger.error("%s\n%s\n%s", alertName, alertSummary, alertDescription)
1050
+ if self.msConfig["sendNotification"]:
1051
+ self.sendAlert(alertName, alertSeverity, alertSummary, alertDescription, self.alertServiceName)
1052
+
1053
+
@@ -39,4 +39,8 @@ class RestApiHub(RESTApi):
39
39
  # the mount point should match service configuration, e.g. in MSPileup we define
40
40
  # mount point as /ms-pileup/data, e.g. http://.../ms-pileup/data
41
41
  if 'ms-pileup' in mount:
42
+ # add new API "pileup" and it will be accessible as /ms-pileup/data/pileup
42
43
  self._add({"pileup": Data(app, self, config, mount)})
44
+ elif 'ms-transferor' in mount:
45
+ # add new API "transferor" and it will be accessible as /ms-transferor/data/transferor
46
+ self._add({"transferor": Data(app, self, config, mount)})
@@ -237,34 +237,6 @@ class WorkQueue(object):
237
237
  elements = [x['id'] for x in data.get('rows', []) if x['key'][1] not in nonCancelableElements]
238
238
  return self.updateElements(*elements, Status='CancelRequested')
239
239
 
240
- def updateSiteLists(self, wf, siteWhiteList=None, siteBlackList=None):
241
- """
242
- Update site list parameters in elements matching a given workflow and a list of element statuse
243
-
244
- :param wf: workflow name
245
- :param siteWhiteList: optional list of strings, new site white list
246
- :param siteBlackList: optional list of strings, new site black list
247
- :return: None
248
- """
249
- # Update elements in Available status
250
- data = self.db.loadView('WorkQueue', 'jobStatusByRequest',
251
- {'reduce': False})
252
- states = ['Available']
253
- elementsToUpdate = [x['id'] for x in data.get('rows', []) if x['key'][-1] in states and wf in x['key']]
254
- if elementsToUpdate:
255
- self.logger.info("Updating %d elements in status %s for workflow %s", len(elementsToUpdate), states, wf)
256
- self.updateElements(*elementsToUpdate, SiteWhiteList=siteWhiteList, SiteBlackList=siteBlackList)
257
- # Update the spec, if it exists
258
- if self.db.documentExists(wf):
259
- wmspec = WMWorkloadHelper()
260
- # update local workqueue couchDB
261
- wmspec.load(self.hostWithAuth + "/%s/%s/spec" % (self.db.name, wf))
262
- wmspec.setSiteWhiteList(siteWhiteList)
263
- wmspec.setSiteBlackList(siteBlackList)
264
- dummy_values = {'name': wmspec.name()}
265
- wmspec.saveCouch(self.hostWithAuth, self.db.name, dummy_values)
266
- return
267
-
268
240
  def updatePriority(self, wf, priority):
269
241
  """Update priority of a workflow, this implies
270
242
  updating the spec and the priority of the Available elements"""
@@ -284,6 +256,40 @@ class WorkQueue(object):
284
256
  wmspec.saveCouch(self.hostWithAuth, self.db.name, dummy_values)
285
257
  return
286
258
 
259
+ def updateElementsByWorkflow(self, workload, updateParams, status=None):
260
+ """
261
+ Update all available WorkQueue elements of a given workflow with a set
262
+ of arguments provided through the `updateParams` dictionary
263
+ :param workload: A workflow spec
264
+ :param updateParams: A dictionary with parameters to be updated
265
+ :param status: A list of allowed WorkQueue elements statuses to be considered for updating
266
+ Default: None - do not filter by status
267
+ :return: No value, raises exceptions from internal methods in case of errors.
268
+ """
269
+ # Fetch the whole view with Workqueue elements per given workflow
270
+ wfName = workload.name()
271
+ data = self.db.loadView('WorkQueue', 'elementsDetailByWorkflowAndStatus',
272
+ {'startkey': [wfName], 'endkey': [wfName, {}],
273
+ 'reduce': False})
274
+
275
+ # Fetch only a list of WorkQueue element Ids && Filter them by allowed status
276
+ if status:
277
+ elementsToUpdate = [x['id'] for x in data.get('rows', []) if x['value']['Status'] in status]
278
+ else:
279
+ elementsToUpdate = [x['id'] for x in data.get('rows', [])]
280
+
281
+ # Update all WorkQueue elements with the parameters provided in a single push
282
+ if elementsToUpdate:
283
+ self.updateElements(*elementsToUpdate, **updateParams)
284
+
285
+ # Update the spec, if it exists
286
+ if self.db.documentExists(wfName):
287
+ # Update all workload parameters based on the full reqArgs dictionary
288
+ workload.updateWorkloadArgs(updateParams)
289
+ # Commit the changes of the current workload object to the database:
290
+ workload.saveCouchUrl(workload.specUrl())
291
+ return
292
+
287
293
  def getWorkflowNames(self, inboxFlag=False):
288
294
  """Get workflow names from workqueue db"""
289
295
  if inboxFlag:
@@ -6,5 +6,5 @@ Core libraries for Workload Management Packages
6
6
 
7
7
  """
8
8
 
9
- __version__ = '2.3.8rc8'
9
+ __version__ = '2.3.8rc10'
10
10
  __all__ = []
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 1.2
2
2
  Name: reqmgr2ms-output
3
- Version: 2.3.8rc8
3
+ Version: 2.3.8rc10
4
4
  Summary: UNKNOWN
5
5
  Home-page: https://github.com/dmwm/WMCore
6
6
  Maintainer: CMS DMWM Group