Skip to content
This repository was archived by the owner on Sep 12, 2024. It is now read-only.

Python3 Migration Notes

Amanda Goldani edited this page Aug 13, 2021 · 9 revisions

This page is intended to show the differences between the old version of the code and the new one.

Note that all Python3 top levels are located in src/python/, this was omitted in the details for convenience.


Cache

Includes all cache functions and classes from utils.py.

Details
Python 2Python 3testednotes
utils.py/cacheInfo.from_fileCache/CacheManager.py/CacheManager._getFromFile* called in get
utils.py/cacheInfo._file_keyCache/CacheManager.py/CacheManager._getKeyFilePath* called in get
utils.py/cacheInfo.getCache/CacheManager.py/CacheManager.get
utils.py/cacheInfo.purgeCache/CacheManager.py/CacheManager.purge
utils.py/cacheInfo.storeCache/CacheManager.py/CacheManager.set
utils.py/docCache.getCache/DataCacheLoader.py/DataCacheLoader.get
utils.py/docCache.__init__.cacheCache/DocumentCache.py* each possible document cache key became a class with the corresponding get method. The DataCacheLoader makes the mapping and loads the document data when required
Cache/CacheManager.py/CacheManager._buildMongoDocument* called in set
Cache/CacheManager.py/CacheManager._setMongoCollection* required by the MongoClient

Databases

Includes the helper function from utils.py that creates the connection to MongoDB, as well as the migration of the file that creates the connection to OracleDB.

Details
Python 2Python 3testednotes
utils.py/mongo_clientDatabases/Mongo/MongoClient.py* this is an abstract class where the mongo collection must be defined in the child classes
Unified/assignSession.pyDatabases/Oracle/OracleClient.py* tested through the OracleDB test file
Unified/assignSchema.pyDatabases/Oracle/OracleDB.py

MongoControllers

Includes all the helper classes from utils.py controlling a MongoDB collection.

AgentController:

Details
Python 2Python 3testednotes
utils.py/agentInfoDBMongoControllers/AgentController.py/AgentController._setMongoCollection* required by the MongoClient
utils.py/agentInfo.agentStatusMongoControllers/AgentController.py/AgentController.get* this will return all the agent's data, use result.get("status") to keep the same behavior
utils.py/agentInfo.speed_drainingMongoControllers/AgentController.py/AgentController.getAgents(speeddrain=True)
utils.py/agentInfo.pollMongoControllers/AgentController.py/AgentController.poll
utils.py/agentInfo.change_statusMongoControllers/AgentController.py/AgentController.set
utils.py/agentInfo.getStatusMongoControllers/AgentController.py/AgentController.syncToProduction
utils.py/agentInfo.checkTrelloMongoControllers/AgentController.py/AgentController.syncToTrello
MongoControllers/AgentController.py/AgentController.updateTrelloBoard
* split because the Trello board was updated or the collection was sync to the board (never both!)
MongoControllers/AgentController.py/AgentController._areRunningOverThreshold* called in poll
MongoControllers/AgentController.py/AgentController._bootAgent* called in poll
MongoControllers/AgentController.py/AgentController._buildMongoDocument* called in set
MongoControllers/AgentController.py/AgentController._countAgentsWithReleaseStatus* called in poll
MongoControllers/AgentController.py/AgentController._countJobsAndCpus* called in poll
MongoControllers/AgentController.py/AgentController._drainAgent* called in poll
MongoControllers/AgentController.py/AgentController._initializePollParams* called in poll
MongoControllers/AgentController.py/AgentController._isLight* called in poll
MongoControllers/AgentController.py/AgentController._isStuffed* called in poll
MongoControllers/AgentController.py/AgentController._newRelease* called in poll
MongoControllers/AgentController.py/AgentController._retireAgent* called in poll
MongoControllers/AgentController.py/AgentController._setCandidatesForDraining* called in poll
MongoControllers/AgentController.py/AgentController._setCandidatesForOpenDraining* called in poll
MongoControllers/AgentController.py/AgentController._setCandidatesForSpeedDraining* called in poll
MongoControllers/AgentController.py/AgentController._setCandidatesForWakingUp* called in poll
MongoControllers/AgentController.py/AgentController._setLastestAndOldestReleases* called in poll
MongoControllers/AgentController.py/AgentController._setRecentAgents* called in poll
MongoControllers/AgentController.py/AgentController._setSpeedDrainingPriority* called in poll
MongoControllers/AgentController.py/AgentController._sumRunningCapacity* called in poll
MongoControllers/AgentController.py/AgentController._syncAgentStatus* called in syncToProduction
MongoControllers/AgentController.py/AgentController._tell* called in poll
MongoControllers/AgentController.py/AgentController._updateAgentConfig* called in poll
MongoControllers/AgentController.py/AgentController.getAgents

BatchController

Details
Python 2Python 3testednotes
utils.py/batchInfo.contentMongoControllers/BatchController.py/BatchController.get
utils.py/batchInfo.allMongoControllers/BatchController.py/BatchController.getBatches
utils.py/batchInfo.popMongoControllers/BatchController.py/BatchController.pop
utils.py/batchInfo.update
utils.py/batchInfo.add
MongoControllers/BatchController.py/BatchController.set* unified because add is only called inside update
MongoControllers/BatchController.py/BatchController._buildMongoDocument* called in set
MongoControllers/BatchController.py/BatchController._setMongoCollection* required by the MongoClient

CampaignController

Details
Python 2Python 3testednotes
utils.py/campaignInfo.contentMongoControllers/CampaignController.py/CampaignController.get
utils.py/campaignInfo.allMongoControllers/CampaignController.py/CampaignController.getCampaigns
utils.py/campaignInfo.parametersMongoControllers/CampaignController.py/CampaignController.getCampaignParameters
utils.py/campaignInfo.allSecondariesMongoControllers/CampaignController.py/CampaignController.getSecondaries
utils.py/campaignInfo.getMongoControllers/CampaignController.py/CampaignController.getCampaignValue
utils.py/campaignInfo.goMongoControllers/CampaignController.py/CampaignController.go
utils.py/campaignInfo.popMongoControllers/CampaignController.py/CampaignController.pop
utils.py/campaignInfo.update
utils.py/campaignInfo.add
MongoControllers/CampaignController.py/CampaignController.set* unified because add is only called inside update
MongoControllers/CampaignController.py/CampaignController._buildMongoDocument* called in set
MongoControllers/CampaignController.py/CampaignController._setCampaigns* called when instantiated
MongoControllers/CampaignController.py/CampaignController._setMongoCollection* required by the MongoClient

CloseoutController

Details
Python 2Python 3testednotes
utils.py/closeoutInfo.one_lineMongoControllers/CloseoutController.py/CloseoutController._buildHtmlRow* called in assistance and summary
utils.py/closeoutInfo.assistanceMongoControllers/CloseoutController.py/CloseoutController.assistance
utils.py/closeoutInfo.popMongoControllers/CloseoutController.py/CloseoutController.clean
utils.py/closeoutInfo.getMongoControllers/CloseoutController.py/CloseoutController.get
utils.py/closeoutInfo.htmlMongoControllers/CloseoutController.py/CloseoutController.html
utils.py/closeoutInfo.updateMongoControllers/CloseoutController.py/CloseoutController.set
utils.py/closeoutInfo.summaryMongoControllers/CloseoutController.py/CloseoutController.summary
utils.py/closeoutInfo.table_headerIncluded in the CloseoutController templates
MongoControllers/CloseoutController.py/CloseoutController._buildMongoDocument* called in set
MongoControllers/CloseoutController.py/CloseoutController._renderAssistanceHtml* called in assistance
MongoControllers/CloseoutController.py/CloseoutController._renderSummaryHtml* called in summary
MongoControllers/CloseoutController.py/CloseoutController._setMongoCollection* required by the MongoClient
MongoControllers/CloseoutController.py/CloseoutController.getWorkflows

ModuleLockController

Details
Python 2Python 3testednotes
utils.py/moduleLock.checkMongoControllers/ModuleLockController.py/ModuleLockController.check
utils.py/moduleLock.cleanMongoControllers/ModuleLockController.py/ModuleLockController.clean
utils.py/moduleLock.all_locksMongoControllers/ModuleLockController.py/ModuleLockController.get
MongoControllers/ModuleLockController.py/ModuleLockController._buildMongoDocument* called in set
MongoControllers/ModuleLockController.py/ModuleLockController._setMongoCollection* required by the MongoClient
MongoControllers/ModuleLockController.py/ModuleLockController.go
MongoControllers/ModuleLockController.py/ModuleLockController.pop
MongoControllers/ModuleLockController.py/ModuleLockController.set

RemainingDatasetController

Details
Python 2Python 3testednotes
utils.py/remainingDatasetInfo.cleanMongoControllers/RemainingDatasetController.py/RemainingDatasetController.clean
utils.py/remainingDatasetInfo.getMongoControllers/RemainingDatasetController.py/RemainingDatasetController.get
utils.py/remainingDatasetInfo.sitesMongoControllers/RemainingDatasetController.py/RemainingDatasetController.getSites
utils.py/remainingDatasetInfo.purgeMongoControllers/RemainingDatasetController.py/RemainingDatasetController.purge
utils.py/remainingDatasetInfo.setMongoControllers/RemainingDatasetController.py/RemainingDatasetController.set
utils.py/remainingDatasetInfo.syncMongoControllers/RemainingDatasetController.py/RemainingDatasetController.sync
MongoControllers/RemainingDatasetController.py/RemainingDatasetController.syncSite
* split to let explicit if one site or all sites are being sync
utils.py/remainingDatasetInfo.tellMongoControllers/RemainingDatasetController.py/RemainingDatasetController.tell
MongoControllers/RemainingDatasetController.py/RemainingDatasetController._buildMongoDocument* called in set
MongoControllers/RemainingDatasetController.py/RemainingDatasetController._setMongoCollection* required by the MongoClient

ReportController

Details
Python 2Python 3testednotes
utils.py/reportInfo._convertMongoControllers/ReportController.py/ReportController._convertValues* called in set
utils.py/reportInfo.getMongoControllers/ReportController .py/ReportController.get
utils.py/reportInfo.purgeMongoControllers/ReportController .py/ReportController.purge
MongoControllers/ReportController .py/ReportController.clean
MongoControllers/ReportController .py/ReportController.cleanWorkflow
* split because the old function would do different things depending os the input params
utils.py/reportInfo._putMongoControllers/ReportController.py/ReportController.set
utils.py/reportInfo.set_blocksMongoControllers/ReportController.py/ReportController.setWorkflowBlocks
utils.py/reportInfo.set_errorsMongoControllers/ReportController.py/ReportController.setWorkflowErrors
utils.py/reportInfo.set_filesMongoControllers/ReportController.py/ReportController.setWorkflowFiles
utils.py/reportInfo.set_IOMongoControllers/ReportController.py/ReportController.setWorkflowIO
utils.py/reportInfo.set_logsMongoControllers/ReportController.py/ReportController.setWorkflowLogs
utils.py/reportInfo.set_missingMongoControllers/ReportController.py/ReportController.setWorkflowMissing
utils.py/reportInfo._set_for_taskMongoControllers/ReportController.py/ReportController.setWorkflowTask
utils.py/reportInfo.set_ufilesMongoControllers/ReportController.py/ReportController.setWorkflowUFiles
MongoControllers/ReportController.py/ReportController._buildMongoDocument* called in set
MongoControllers/ReportController.py/ReportController._setMongoCollection* required by the MongoClient

StartStopTimeController

Details
Python 2Python 3testednotes
utils.py/StartStopInfo.getMongoControllers/StartStopTimeController.py/StartStopTimeController.get
utils.py/StartStopInfo.purgeMongoControllers/StartStopTimeController.py/StartStopTimeController.purge
utils.py/StartStopInfo.pushStartStopTimeMongoControllers/StartStopTimeController.py/StartStopTimeController.set
MongoControllers/StartStopTimeController.py/StartStopTimeController._buildMongoDocument* called in set
MongoControllers/StartStopTimeController.py/StartStopTimeController._setMongoCollection* required by the MongoClient

StatusHistoryController

Details
Python 2Python 3testednotes
utils.py/statusHistory.py/statusHistory.contentMongoControllers/StatusHistoryController.py/StatusHistoryController.get
utils.py/statusHistory.py/statusHistory.trimMongoControllers/StatusHistoryController.py/StatusHistoryController.purge
utils.py/statusHistory.py/statusHistory.addMongoControllers/StatusHistoryController.py/StatusHistoryController.set
MongoControllers/StatusHistoryController.py/StatusHistoryController._buildMongoDocument* called in set
MongoControllers/StatusHistoryController.py/StatusHistoryController._setMongoCollection* required by the MongoClient

WTCController

Details
Python 2Python 3testednotes
utils.py/wtcInfo.cleanMongoControllers/WTCController.py/WTCController.clean
utils.py/wtcInfo.removeMongoControllers/WTCController.py/WTCController.cleanKeyword
utils.py/wtcInfo._getMongoControllers/WTCController.py/WTCController.get
utils.py/wtcInfo.getBypassMongoControllers/WTCController.py/WTCController.getBypass
utils.py/wtcInfo.getForceMongoControllers/WTCController.py/WTCController.getForce
utils.py/wtcInfo.getHoldMongoControllers/WTCController.py/WTCController.getHold
utils.py/wtcInfo.addMongoControllers/WTCController.py/WTCController.set
MongoControllers/WTCController.py/WTCController._buildMongoDocument* called in set
MongoControllers/WTCController.py/WTCController._setMongoCollection* required by the MongoClient

Services

Includes all helper functions from utils.py talking to a service.

ACDC

Details
Python 2Python 3testednotes
utils.py/workflowInfo.getRecoveryDocServices/ACDC/ACDCReader.py/ACDCReader.getRecoveryDocs* input arg collection_name was switched by the workflow name because it was never used

DBS

Details
Python 2Python 3testednotes
utils.py/componentCheck.check_dbsServices/DBS/DBSReader.py/DBSReader.check
utils.py/getFileBlockServices/DBS/DBSReader.py/DBSReader.getBlockName
utils.py/getDatasetBlocksServices/DBS/DBSReader.py/DBSReader.getDatasetBlockNames
Services/DBS/DBSReader.py/DBSReader.getDatasetBlockNamesByLumis
Services/DBS/DBSReader.py/DBSReader.getDatasetBlockNamesByRuns
* split because the block names were filtered by runs or by lumis (never both!)
utils.py/getDatasetEventsAndLumisServices/DBS/DBSReader.py/DBSReader.getDatasetEventsAndLumis
Services/DBS/DBSReader.py/DBSReader.getBlocksEventsAndLumis
* split because events and lumis were got by dataset or blocks (never both!)
utils.py/getDatasetEventsPerLumisServices/DBS/DBSReader.py/DBSReader.getDatasetEventsPerLumis
utils.py/getDatasetFileArrayServices/DBS/DBSReader.py/DBSReader.getDatasetFiles* input args use_array and cache_timeout were removed because were not used
utils.py/getDatasetLumisAndFilesServices/DBS/DBSReader.py/DBSReader.getDatasetLumisAndFiles* only does the request, input args runs and lumilist were removed but the helper functions Utilities/DataTools.py/filterLumisAndFilesByRuns or filterLumisAndFilesByLumis can be used if needed
utils.py/getDatasetsServices/DBS/DBSReader.py/DBSReader.getDatasetNames
utils.py/findParentServices/DBS/DBSReader.py/DBSReader.getDatasetParent
utils.py/getDatasetRunsServices/DBS/DBSReader.py/DBSReader.getDatasetRuns
utils.py/getDatasetSizeServices/DBS/DBSReader.py/DBSReader.getDatasetSize
utils.py/getDatasetStatusServices/DBS/DBSReader.py/DBSReader.getDBSStatus
utils.py/getFilesWithLumiInRunServices/DBS/DBSReader.py/DBSReader.getFilesWithLumiInRun
utils.py/getLFNbaseServices/DBS/DBSReader.py/DBSReader.getLFNBase
utils.py/setDatasetStatusServices/DBS/DBSWriter.py/DBSWriter.setDatasetStatus
utils.py/setFileStatusServices/DBS/DBSWriter.py/DBSWriter.setFileStatus
Services/DBS/DBSReader.py/DBSReader._getBlockFileLumis* called in getBlocksLumisAndFilesForCaching
Services/DBS/DBSReader.py/DBSReader._getFileLumiArray* called in getFilesWithLumiInRun
Services/DBS/DBSReader.py/DBSReader.getBlocksLumisAndFilesForCaching
Services/DBS/DBSReader.py/DBSReader.getRecoveryBlocksAndLocations

EOS

Details
Python 2Python 3testednotes
utils.py/eosReadServices/EOS/EOSReader.py/EOSReader.read
utils.py/eosFile.closeServices/EOS/EOSWriter.py/EOSWriter.save
utils.py/eosFile.writeServices/EOS/EOSWriter.py/EOSWriter.write

GWMSMon

Details
Python 2Python 3testednotes
utils.py/workflowInfo.getGlideMonServices/GWMSMon/GWMSMonReader.py/GWMSMonReader.getRequestSummary* request return an error

ReqMgr

Details
Python 2Python 3testednotes
utils.py/getAgentConfigServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getAgentConfig
utils.py/getReqmgrInfoServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getReqmgrInfo
utils.py/getWorkflowByCampaignServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByCampaign
utils.py/getWorkflowByNameServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByNames
utils.py/getWorkflowByOutputServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByOutput* endpoint changed from CouchDB to the RESTful api
utils.py/getWorkflowByIdServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByPrepId* endpoint changed from CouchDB to the RESTful api
utils.py/getWorkflowsServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByStatus
utils.py/getWorkloadServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowSchema
utils.py/workflowInfo.getSchemaServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowSchema(makeCopy=True)
utils.py/workflowInfo.getSummaryServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkloadSummary
utils.py/workflowInfo.get_specServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getSpec
utils.py/workflowInfo.getSplittingsNewServices/ReqMgr/ReqMgrReader.py/ReqMgrReader.getSplittingsSchema* only does the request, input args strip and allTasks were removed but the helper functions Utilities/DataTools.py/filterSplittingsParam and filterSplittingsTaskTypes can be used if needed
utils.py/sendAgentConfigServices/ReqMgr/ReqMgrWriter.py/ReqMgrWriter.setAgentConfig
Services/ReqMgr/ReqMgrReader.py/ReqMgrReader.getWorkflowsByParam

Rucio

Details
Python 2Python 3testednotes
RucioClient.py/getFileCountBlockServices/Rucio/RucioReader.py/RucioReader.countBlockFiles
RucioClient.py/getFileCountDatasetServices/Rucio/RucioReader.py/RucioReader.countDatasetFiles
RucioClient.py/getFileCountPerBlockServices/Rucio/RucioReader.py/RucioReader.countDatasetFilesPerBlock
RucioClient.py/getBlockNamesDatasetServices/Rucio/RucioReader.py/RucioReader.getDatasetBlockNames
RucioClient.py/getFileNamesDatasetServices/Rucio/RucioReader.py/RucioReader.getDatasetFileNames
RucioClient.py/getDatasetLocationsByAccountServices/Rucio/RucioReader.py/RucioReader.getDatasetLocationsByAccount

Trello

Details
Python 2Python 3testednotes
TrelloClient.py/_getServices/Trello/TrelloClient.py/TrelloClient._getResponse* called in getBoard and getCard
TrelloClient.py/_putServices/Trello/TrelloClient.py/TrelloClient._sendResponse* called in setList
TrelloClient.py/getAgentsServices/Trello/TrelloClient.py/TrelloClient._syncAgents* called when instantiated
TrelloClient.py/getBoardServices/Trello/TrelloClient.py/TrelloClient.getBoard
TrelloClient.py/getCardServices/Trello/TrelloClient.py/TrelloClient.getCard
TrelloClient.py/changeListServices/Trello/TrelloClient.py/TrelloClient.setList
Services/Trello/TrelloClient.py/TrelloClient.getListId

WMStats

Details
Python 2Python 3testednotes
utils.py/getAllAgentsServices/WMStats/WMStatsReader.py/WMStatsReader.getAgents
utils.py/workflowInfo.getWMErrorsServices/WMStats/WMStatsReader.py/WMStatsReader.getWMErrors* only include the request of the original function — call WorkflowController.getWMErrors to keep the same behavior
utils.py/workflowInfo.getWMStatsServices/WMStats/WMStatsReader.py/WMStatsReader.getWMStats* only include the request of the original function — call WorkflowController.getWMStats to keep the same behavior
Services/WMStats/WMStatsReader.py/WMStatsReader.getProductionAgents

WorkQueue

Details
Python 2Python 3testednotes
utils.py/workflowInfo.getWorkQueueServices/WorkQueue/WorkQueueReader.py/WorkQueueReader.getWorkQueue

Utilities

Includes all helper functions from utils.py that are used for authentication, configuration, etc.

Details
Python 2Python 3testednotes
utils.py/make_x509_connUtilities/Authenticate.py/getX509Conn
utils.py/unifiedConfigurationUtilities/ConfigurationHandler.py/ConfigurationHandler
utils.py/workflowInfo._taskDescendingUtilities/DataTools/flattenTaskTree
utils.py/ThreadHandlerUtilities/Decorators.py/runWithMultiThreading
utils.py/runWithRetriesUtilities/Decorators.py/runWithRetries
utils.py/display_NUtilities/Logging/displayNumber
utils.py/display_timeUtilities/Logging/displayTime
utils.py/GETUtilities/WebTools.py/getResponse
Utilities/DataTools/filterFilesAndLocationsInDBS
Utilities/DataTools/filterLumisAndFilesByLumis
Utilities/DataTools/filterLumisAndFilesByRuns
Utilities/DataTools/filterRecoveryFilesAndLocations
Utilities/DataTools/filterSplittingsParam
Utilities/DataTools/filterSplittingsTaskTypes
Utilities/DataTools/sortByWakeUpPriority
Utilities/IteratorTools/filterKeys
Utilities/IteratorTools/mapKeys
Utilities/IteratorTools/mapValues
Utilities/IteratorTools/sortByKeys
Utilities/WebTools.py/sendResponse

WorkflowMgmt

Includes all helper functions from utils.py that are used for managing a workflow

WorkflowController

Details
Python 2Python 3testednotes
utils.py/workflowInfo.checkSplittingWorkflowMgmt/WorkflowController.py/WorkflowController.checkSplitting
utils.py/workflowInfo.getAgentsWorkflowMgmt/WorkflowController.py/WorkflowController.getAgents
utils.py/workflowInfo.getAllTasksWorkflowMgmt/WorkflowController.py/WorkflowController.getAllTasks
utils.py/workflowInfo.getBlocksWorkflowMgmt/WorkflowController.py/WorkflowController.getBlocks
utils.py/workflowInfo.getBlockWhiteListWorkflowMgmt/WorkflowController.py/WorkflowController.getBlockWhiteList
utils.py/workflowInfo.getBlowupFactorsWorkflowMgmt/WorkflowController.py/WorkflowController.getBlowupFactor* return only the factor, since the additional outputs were not used
utils.py/workflowInfo.getCampaignPerTaskWorkflowMgmt/WorkflowController.py/WorkflowController.getCampaignByTask
utils.py/workflowInfo.getConfigCacheIDWorkflowMgmt/WorkflowController.py/WorkflowController.getConfigCacheID
utils.py/workflowInfo.getCompletionFractionWorkflowMgmt/WorkflowController.py/WorkflowController.getCompletionFraction
utils.py/workflowInfo.getComputingTime`WorkflowMgmt/WorkflowController.py/WorkflowController.getComputingTime
utils.py/workflowInfo.getCorePerTaskWorkflowMgmt/WorkflowController.py/WorkflowController.getCoreByTask
utils.py/workflowInfo.getFamillyWorkflowMgmt/WorkflowController.py/WorkflowController.getFamily
utils.py/workflowInfo.getFilterEfficiencyWorkflowMgmt/WorkflowController.py/WorkflowController.getFilterEfficiencyByTask
utils.py/workflowInfo.firstTaskWorkflowMgmt/WorkflowController.py/WorkflowController.getFirstTask
utils.py/workflowInfo.getGlideMonWorkflowMgmt/WorkflowController.py/WorkflowController.getGlideWMSMonSummary
utils.py/workflowInfo.getMemoryPerTaskWorkflowMgmt/WorkflowController.py/WorkflowController.getMemoryByTask
utils.py/workflowInfo.getNCopiesWorkflowMgmt/WorkflowController.py/WorkflowController.getNCopies
utils.py/workflowInfo.getNextVersionWorkflowMgmt/WorkflowController.py/WorkflowController.getNextVersion
utils.py/workflowInfo.getOutputPerTaskWorkflowMgmt/WorkflowController.py/WorkflowController.getOutputDatasetsPerTask
utils.py/workflowInfo.getPrepIDsWorkflowMgmt/WorkflowController.py/WorkflowController.getPrepIDs
utils.py/workflowInfo.getRecoveryBlocksWorkflowMgmt/WorkflowController.py/WorkflowController.getRecoveryBlocks
utils.py/workflowInfo.getRecoveryInfoWorkflowMgmt/WorkflowController.py/WorkflowController.getRecoveryInfo
utils.py/workflowInfo.getRunWhiteListWorkflowMgmt/WorkflowController.py/WorkflowController.getRunWhiteList
utils.py/workflowInfo.getArchsWorkflowMgmt/WorkflowController.py/WorkflowController.getScramArches
utils.py/workflowInfo.getSiteWhiteListWorkflowMgmt/WorkflowController.py/WorkflowController.getSiteWhiteList
utils.py/workflowInfo.getSpplitingsWorkflowMgmt/WorkflowController.py/WorkflowController.getSpplitings
utils.py/workflowInfo.getSplittingsNewWorkflowMgmt/WorkflowController.py/WorkflowController.getSpplitingsSchema
utils.py/workflowInfo.getSummaryWorkflowMgmt/WorkflowController.py/WorkflowController.getSummary
utils.py/workflowInfo.getWMErrorsWorkflowMgmt/WorkflowController.py/WorkflowController.getWMErrors
utils.py/workflowInfo.getWMStatusWorkflowMgmt/WorkflowController.py/WorkflowController.getWMStatus
utils.py/workflowInfo.getWorkTasksWorkflowMgmt/WorkflowController.py/WorkflowController.getWorkTasks
utils.py/workflowInfo.goWorkflowMgmt/WorkflowController.py/WorkflowController.go
utils.py/workflowInfo.heavyReadWorkflowMgmt/WorkflowController.py/WorkflowController.isHeavyToReady
WorkflowMgmt/WorkflowController.py/WorkflowController._getAllowedSites* called in getSiteWhiteList
WorkflowMgmt/WorkflowController.py/WorkflowController._getFromFile* called in getWMStats and getWMErrors
WorkflowMgmt/WorkflowController.py/WorkflowController._getVersionByConflictingWorkflows* called in getNextVersion
WorkflowMgmt/WorkflowController.py/WorkflowController._getVersionByWildcardPattern* called in getNextVersion
WorkflowMgmt/WorkflowController.py/WorkflowController._getWorkloadHandler* called when instantiated
WorkflowMgmt/WorkflowController.py/WorkflowController._restrictAllowedSitesByBlowUpFactor* called in getSiteWhiteList
WorkflowMgmt/WorkflowController.py/WorkflowController._restrictAllowedSitesByCampaign* called in getSiteWhiteList
WorkflowMgmt/WorkflowController.py/WorkflowController._parseOutputProcessingString* called in getNextVersion
WorkflowMgmt/WorkflowController.py/WorkflowController._saveInFile* called in getWMStats and getWMErrors

WorkflowSchemaHandlers

Details
Python 2Python 3testednotes
utils.py/workflowInfo.acquisitionEraWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getAcquisitionEra
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getAcquisitionEra
utils.py/workflowInfo.campaignsWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getCampaigns
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getCampaigns
utils.py/workflowInfo.getCampaignsWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getCampaigns(details=False)
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getCampaigns(details=False)
utils.py/workflowInfo._collectinchain
utils.py/workflowInfo._collectin_uhm_chain
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getChainValues
utils.py/workflowInfo.getIOWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getIO
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getIO
utils.py/workflowInfo.getLumiWhiteListWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getLumiWhiteList
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getLumiWhiteList
utils.py/workflowInfo.getMemoryWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getMemory
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getMemory
utils.py/workflowInfo.getMulticoreWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getMulticore
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getMulticore
utils.py/workflowInfo.getMulticoresWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getMulticore(maxOnly=False)
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getMulticore(maxOnly=False)
utils.py/workflowInfo.processingStringWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getProcessingString
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getProcessingString
utils.py/workflowInfo.getRequestNumEventsWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getRequestNumEvents
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler.getRequestNumEvents
utils.py/workflowInfo.isGoodToConvertToStepChainWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.isGoodToConvertToStepChain
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler.isGoodToConvertToStepChain
utils.py/workflowInfo.producePremixWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.isProducingPremix
utils.py/workflowInfo.isRelValWorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.isRelVal
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getOutputSizeCorrectionFactor* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler._getTaskIO* called in getIO
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTimeInfo* called in isGoodToConvertToStepChain
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTaskEfficiencyFactor* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTaskMaxEventsBySize* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTaskMaxEventsByTime* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTaskMaxEventsPerLumiAndJob* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._getTaskSchema* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._hasAcceptableEfficiency* called in isGoodToConvertToStepChain
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._hasNonZeroEventStreams* called in isGoodToConvertToStepChain
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler._isBelowMinEventsPerLumi* called in checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler.checkSplitting
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.get
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getBlowupFactor
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler.getBlowupFactor
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getCampaignsAndLabels
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getCampaignsAndLabels
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getComputingTime
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getComputingTime
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getExpectedEventsPerTask
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getExpectedEventsPerTask
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getParamByTask
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getParamByTask
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getParamList
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getParamList
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getOutputDatasetsPerTask
WorkflowMgmt/WorkflowSchemaHandlers/StepChainWfSchemaHandler.py/StepChainWfSchemaHandler.getOutputDatasetsPerTask
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.getTasksPerOutputDatasets
WorkflowMgmt/WorkflowSchemaHandlers/BaseWfSchemaHandler.py/BaseWfSchemaHandler.writeDatasetPatternName
WorkflowMgmt/WorkflowSchemaHandlers/TaskChainWfSchemaHandler.py/TaskChainWfSchemaHandler.writeDatasetPatternName

Clone this wiki locally