From 33f454917cd9e96f4ee0c2e58865b5574b6d1169 Mon Sep 17 00:00:00 2001 From: Valentin Kuznetsov Date: Mon, 6 Jan 2025 13:50:17 -0500 Subject: [PATCH] Switch updateSiteList to updateElementsByWorkflow API --- .../WorkflowUpdater/SiteListPoller.py | 3 +- .../WMCore/Services/WorkQueue/WorkQueue.py | 29 ------------------- 2 files changed, 2 insertions(+), 30 deletions(-) diff --git a/src/python/WMComponent/WorkflowUpdater/SiteListPoller.py b/src/python/WMComponent/WorkflowUpdater/SiteListPoller.py index a49eeb8c77..078eae45a7 100755 --- a/src/python/WMComponent/WorkflowUpdater/SiteListPoller.py +++ b/src/python/WMComponent/WorkflowUpdater/SiteListPoller.py @@ -127,7 +127,8 @@ def algorithm(self, parameters=None): self.logger.info(" siteBlackList %s => %s", wmaBlackList, siteBlackList) try: # update local WorkQueue first - self.localWQ.updateSiteLists(wflow, siteWhiteList, siteBlackList) + params = {'SiteWhitelist': siteWhiteList, 'SiteBlacklist': siteBlackList} + self.localWQ.updateElementsByWorkflow(wHelper, params, status=['Available']) self.logger.info("successfully updated workqueue elements for workflow %s", wflow) except Exception as ex: logging.exception("Unexpected exception while updating elements in local workqueue Details:\n%s", str(ex)) diff --git a/src/python/WMCore/Services/WorkQueue/WorkQueue.py b/src/python/WMCore/Services/WorkQueue/WorkQueue.py index edbf52d474..4b575dbff5 100644 --- a/src/python/WMCore/Services/WorkQueue/WorkQueue.py +++ b/src/python/WMCore/Services/WorkQueue/WorkQueue.py @@ -237,34 +237,6 @@ def cancelWorkflow(self, wf): elements = [x['id'] for x in data.get('rows', []) if x['key'][1] not in nonCancelableElements] return self.updateElements(*elements, Status='CancelRequested') - def updateSiteLists(self, wf, siteWhiteList=None, siteBlackList=None): - """ - Update site list parameters in elements matching a given workflow and a list of element statuse - - :param wf: workflow name - :param siteWhiteList: optional list of strings, new site white list - :param siteBlackList: optional list of strings, new site black list - :return: None - """ - # Update elements in Available status - data = self.db.loadView('WorkQueue', 'jobStatusByRequest', - {'reduce': False}) - states = ['Available'] - elementsToUpdate = [x['id'] for x in data.get('rows', []) if x['key'][-1] in states and wf in x['key']] - if elementsToUpdate: - self.logger.info("Updating %d elements in status %s for workflow %s", len(elementsToUpdate), states, wf) - self.updateElements(*elementsToUpdate, SiteWhiteList=siteWhiteList, SiteBlackList=siteBlackList) - # Update the spec, if it exists - if self.db.documentExists(wf): - wmspec = WMWorkloadHelper() - # update local workqueue couchDB - wmspec.load(self.hostWithAuth + "/%s/%s/spec" % (self.db.name, wf)) - wmspec.setSiteWhiteList(siteWhiteList) - wmspec.setSiteBlackList(siteBlackList) - dummy_values = {'name': wmspec.name()} - wmspec.saveCouch(self.hostWithAuth, self.db.name, dummy_values) - return - def updatePriority(self, wf, priority): """Update priority of a workflow, this implies updating the spec and the priority of the Available elements""" @@ -318,7 +290,6 @@ def updateElementsByWorkflow(self, workload, updateParams, status=None): workload.saveCouchUrl(workload.specUrl()) return - def getWorkflowNames(self, inboxFlag=False): """Get workflow names from workqueue db""" if inboxFlag: