diff --git a/docs/source/AdministratorGuide/ServerInstallations/scalingAndLimitations.rst b/docs/source/AdministratorGuide/ServerInstallations/scalingAndLimitations.rst index 7646d95edb8..885b43b76c7 100644 --- a/docs/source/AdministratorGuide/ServerInstallations/scalingAndLimitations.rst +++ b/docs/source/AdministratorGuide/ServerInstallations/scalingAndLimitations.rst @@ -223,6 +223,4 @@ Agents | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.StalledJobAgent` | | | + +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ | | :mod:`~DIRAC.WorkloadManagementSystem.Agent.StatesAccountingAgent` | NO | | -+ +---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ -| | :mod:`~DIRAC.WorkloadManagementSystem.Agent.StatesMonitoringAgent` | NO | | +--------------------+---------------------------------------------------------------------------------------------------+---------------+-----------------------------------------------------------------------------------+ diff --git a/src/DIRAC/ConfigurationSystem/Client/Utilities.py b/src/DIRAC/ConfigurationSystem/Client/Utilities.py index 0e6b39eb522..4ff7131e7e8 100644 --- a/src/DIRAC/ConfigurationSystem/Client/Utilities.py +++ b/src/DIRAC/ConfigurationSystem/Client/Utilities.py @@ -20,7 +20,6 @@ from DIRAC.ConfigurationSystem.Client.PathFinder import getDatabaseSection from DIRAC.Core.Utilities.Grid import getBdiiCEInfo from DIRAC.Core.Utilities.SiteSEMapping import getSEHosts -from DIRAC.Core.Utilities.Decorators import deprecated from DIRAC.DataManagementSystem.Utilities.DMSHelpers import DMSHelpers @@ -42,37 +41,6 @@ def getGridVOs(): return S_OK(voNames) -@deprecated("Will disappear (see https://github.com/DIRACGrid/DIRAC/issues/3908)") -def getSEsFromCS(protocol='srm'): - """ Get all the SEs defined in the CS - - :param str protocol: storage protocol - - :return: S_OK(dict)/S_ERROR() - """ - knownSEs = {} - result = gConfig.getSections('/Resources/StorageElements') - if not result['OK']: - return result - ses = result['Value'] - for se in ses: - seSection = '/Resources/StorageElements/%s' % se - result = gConfig.getSections(seSection) - if not result['OK']: - continue - accesses = result['Value'] - for access in accesses: - seProtocol = gConfig.getValue(cfgPath(seSection, access, 'Protocol'), '') - if seProtocol.lower() == protocol.lower() or protocol == 'any': - host = gConfig.getValue(cfgPath(seSection, access, 'Host'), '') - knownSEs.setdefault(host, []) - knownSEs[host].append(se) - else: - continue - - return S_OK(knownSEs) - - def getGridCEs(vo, bdiiInfo=None, ceBlackList=None, hostURL=None, glue2=False): """ Get all the CEs available for a given VO and having queues in Production state @@ -353,26 +321,6 @@ def addToChangeSet(entry, changeSet): return S_OK(changeSet) -@deprecated("Used nowhere") -def getDIRACSesForHostName(hostName): - """ returns the DIRAC SEs that share the same hostName - - :param str hostName: host name, e.g. 'storm-fe-lhcb.cr.cnaf.infn.it' - :return: S_OK with list of DIRAC SE names, or S_ERROR - """ - - seNames = DMSHelpers().getStorageElements() - - resultDIRACSEs = [] - for seName in seNames: - res = getSEHosts(seName) - if not res['OK']: - return res - if hostName in res['Value']: - resultDIRACSEs.extend(seName) - - return S_OK(resultDIRACSEs) - def getDBParameters(fullname): """ Retrieve Database parameters from CS diff --git a/src/DIRAC/ConfigurationSystem/test/Test_agentOptions.py b/src/DIRAC/ConfigurationSystem/test/Test_agentOptions.py index c4e06c8b278..3e67bacf2e8 100644 --- a/src/DIRAC/ConfigurationSystem/test/Test_agentOptions.py +++ b/src/DIRAC/ConfigurationSystem/test/Test_agentOptions.py @@ -73,7 +73,6 @@ 'StalledJobsTolerantSites', 'Enable']}), ('DIRAC.WorkloadManagementSystem.Agent.StatesAccountingAgent', {}), - ('DIRAC.WorkloadManagementSystem.Agent.StatesMonitoringAgent', {}), ('DIRAC.WorkloadManagementSystem.Agent.SiteDirector', {'SpecialMocks': {'findGenericPilotCredentials': S_OK(('a', 'b'))}}), ] diff --git a/src/DIRAC/Core/scripts/dirac-agent.py b/src/DIRAC/Core/scripts/dirac-agent.py deleted file mode 100755 index e4cbd9b650e..00000000000 --- a/src/DIRAC/Core/scripts/dirac-agent.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -""" This is a script to launch DIRAC agents -""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -__RCSID__ = "$Id$" - -# pylint fails as it doesn't realise this file is only used as a script -import dirac_agent # pylint: disable=import-error - -print("NOTE:", __file__, "is deprecated and will be removed in v7r3, for details see", - "https://github.com/DIRACGrid/DIRAC/wiki/DIRAC-v7r2#rename-of-scripts") - - -if __name__ == "__main__": - dirac_agent.main() diff --git a/src/DIRAC/Core/scripts/dirac-executor.py b/src/DIRAC/Core/scripts/dirac-executor.py deleted file mode 100755 index f2e0bc18113..00000000000 --- a/src/DIRAC/Core/scripts/dirac-executor.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python -""" This is a script to launch DIRAC executors -""" -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -__RCSID__ = "$Id$" - -# pylint fails as it doesn't realise this file is only used as a script -import dirac_executor # pylint: disable=import-error - -print("NOTE:", __file__, "is deprecated and will be removed in v7r3, for details see", - "https://github.com/DIRACGrid/DIRAC/wiki/DIRAC-v7r2#rename-of-scripts") - - -if __name__ == "__main__": - dirac_executor.main() diff --git a/src/DIRAC/Core/scripts/dirac-service.py b/src/DIRAC/Core/scripts/dirac-service.py deleted file mode 100755 index 9653aef574c..00000000000 --- a/src/DIRAC/Core/scripts/dirac-service.py +++ /dev/null @@ -1,16 +0,0 @@ -#!/usr/bin/env python -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -__RCSID__ = "$Id$" - -# pylint fails as it doesn't realise this file is only used as a script -import dirac_service # pylint: disable=import-error - -print("NOTE:", __file__, "is deprecated and will be removed in v7r3, for details see", - "https://github.com/DIRACGrid/DIRAC/wiki/DIRAC-v7r2#rename-of-scripts") - - -if __name__ == "__main__": - dirac_service.main() diff --git a/src/DIRAC/Core/scripts/install_full.cfg b/src/DIRAC/Core/scripts/install_full.cfg index 29a0c4a50c6..227069e6288 100755 --- a/src/DIRAC/Core/scripts/install_full.cfg +++ b/src/DIRAC/Core/scripts/install_full.cfg @@ -151,7 +151,6 @@ LocalInstallation Agents += WorkloadManagement/JobCleaningAgent Agents += WorkloadManagement/StalledJobAgent Agents += WorkloadManagement/StatesAccountingAgent - Agents += WorkloadManagement/StatesMonitoringAgent Agents += Configuration/Bdii2CSAgent Agents += Configuration/VOMS2CSAgent Agents += RequestManagement/RequestExecutingAgent diff --git a/src/DIRAC/FrameworkSystem/Client/NotificationClient.py b/src/DIRAC/FrameworkSystem/Client/NotificationClient.py index d3267456a74..41ec38e0ad1 100644 --- a/src/DIRAC/FrameworkSystem/Client/NotificationClient.py +++ b/src/DIRAC/FrameworkSystem/Client/NotificationClient.py @@ -25,7 +25,7 @@ def __init__(self, **kwargs): self.setServer('Framework/Notification') def sendMail(self, addresses, subject, body, - fromAddress=None, localAttempt=True, html=False, avoidSpam=False): + fromAddress=None, localAttempt=True, html=False): """ Send an e-mail with subject and body to the specified address. Try to send from local area before central service by default. """ @@ -59,7 +59,7 @@ def sendMail(self, addresses, subject, body, 'Could not send mail with the following message:\n%s\n will attempt to send via NotificationService' % result['Message']) - result = self._getRPC().sendMail(address, subject, body, str(fromAddress), avoidSpam) + result = self._getRPC().sendMail(address, subject, body, str(fromAddress)) if not result['OK']: self.log.error('Could not send mail via central Notification service', result['Message']) return result diff --git a/src/DIRAC/FrameworkSystem/Service/NotificationHandler.py b/src/DIRAC/FrameworkSystem/Service/NotificationHandler.py index 3f4971cce79..eba2e7d61a8 100644 --- a/src/DIRAC/FrameworkSystem/Service/NotificationHandler.py +++ b/src/DIRAC/FrameworkSystem/Service/NotificationHandler.py @@ -52,14 +52,13 @@ def initialize(self): ########################################################################### types_sendMail = [six.string_types, six.string_types, six.string_types, six.string_types, bool] - def export_sendMail(self, address, subject, body, fromAddress, avoidSpam=False): + def export_sendMail(self, address, subject, body, fromAddress): """ Send an email with supplied body to the specified address using the Mail utility. :param six.string_types address: recipient addresses :param six.string_types subject: subject of letter :param six.string_types body: body of letter :param six.string_types fromAddress: sender address, if None, will be used default from CS - :param bool avoidSpam: Deprecated :return: S_OK(six.string_types)/S_ERROR() -- six.string_types is status message """ diff --git a/src/DIRAC/Interfaces/API/Job.py b/src/DIRAC/Interfaces/API/Job.py index a32994aff9d..0369635352f 100755 --- a/src/DIRAC/Interfaces/API/Job.py +++ b/src/DIRAC/Interfaces/API/Job.py @@ -42,7 +42,6 @@ from DIRAC.Core.Workflow.Parameter import Parameter from DIRAC.Core.Workflow.Workflow import Workflow from DIRAC.Core.Utilities.ClassAd.ClassAdLight import ClassAd -from DIRAC.Core.Utilities.Decorators import deprecated from DIRAC.Core.Utilities.Subprocess import systemCall from DIRAC.Core.Utilities.List import uniqueElements from DIRAC.Core.Utilities.ObjectLoader import ObjectLoader @@ -881,32 +880,6 @@ def _getParameters(self): wfParams[par.getName()] = par.getValue() return wfParams - ############################################################################# - @deprecated("Unused") - def _dumpParameters(self, showType=None): - """Developer function. - Method to print the workflow parameters. - """ - paramsDict = {} - paramList = self.workflow.parameters - for param in paramList: - paramsDict[param.getName()] = {'type': param.getType(), 'value': param.getValue()} - self.log.info('--------------------------------------') - self.log.info('Workflow parameter summary: ') - self.log.info('--------------------------------------') - # print self.workflow.parameters - # print params.getParametersNames() - for name, _props in paramsDict.items(): - ptype = paramsDict[name]['type'] - value = paramsDict[name]['value'] - if showType: - if ptype == showType: - self.log.info('NAME: %s\nTYPE: %s\nVALUE: %s ' % (name, ptype, value)) - self.log.info('--------------------------------------') - else: - self.log.info('NAME: %s\nTYPE: %s\nVALUE: %s ' % (name, ptype, value)) - self.log.info('--------------------------------------') - ############################################################################# def __setJobDefaults(self): diff --git a/src/DIRAC/MonitoringSystem/Client/Types/WMSHistory.py b/src/DIRAC/MonitoringSystem/Client/Types/WMSHistory.py index b108bc79406..9f3419d9480 100644 --- a/src/DIRAC/MonitoringSystem/Client/Types/WMSHistory.py +++ b/src/DIRAC/MonitoringSystem/Client/Types/WMSHistory.py @@ -1,7 +1,7 @@ """ Definition for WMSHistory Monitoring type. Drop-in replacement for the Accounting/WMSHistory accounting type. - Filled by the agent "WorkloadManagement/StatesMonitoringAgent" + Filled by the agent "WorkloadManagement/StatesAccountingAgent" """ from __future__ import absolute_import from __future__ import division diff --git a/src/DIRAC/WorkloadManagementSystem/Agent/StatesMonitoringAgent.py b/src/DIRAC/WorkloadManagementSystem/Agent/StatesMonitoringAgent.py deleted file mode 100644 index bf581b6aa7a..00000000000 --- a/src/DIRAC/WorkloadManagementSystem/Agent/StatesMonitoringAgent.py +++ /dev/null @@ -1,107 +0,0 @@ -''' StatesMonitoringAgent - sends periodically numbers of jobs in various states for various - sites to the Monitoring system to create monitoring plots. - - As of DIRAC v7r2, this agent is an almost exact copy of StatesAccountingAgent, - the only difference being that it will only use the Monitoring System - as its backend (and so ElasticSearch). - This agent will be removed from DIRAC v7r3. - -.. literalinclude:: ../ConfigTemplate.cfg - :start-after: ##BEGIN StatesMonitoringAgent - :end-before: ##END - :dedent: 2 - :caption: StatesMonitoringAgent options - -''' -from __future__ import absolute_import -from __future__ import division -from __future__ import print_function - -__RCSID__ = "$Id$" - -from DIRAC import S_OK -from DIRAC.Core.Base.AgentModule import AgentModule -from DIRAC.Core.Utilities import Time -from DIRAC.MonitoringSystem.Client.MonitoringReporter import MonitoringReporter -from DIRAC.WorkloadManagementSystem.DB.JobDB import JobDB - - -class StatesMonitoringAgent(AgentModule): - """ - """ - - __summaryKeyFieldsMapping = ['Status', - 'Site', - 'User', - 'UserGroup', - 'JobGroup', - 'JobType', - 'ApplicationStatus', - 'MinorStatus'] - __summaryDefinedFields = [('ApplicationStatus', 'unset'), - ('MinorStatus', 'unset')] - __summaryValueFieldsMapping = ['Jobs', - 'Reschedules'] - __renameFieldsMapping = {'JobType': 'JobSplitType'} - - __jobDBFields = [] - - jobDB = None - monitoringReporter = None - - def initialize(self): - """ Standard initialization - """ - - self.jobDB = JobDB() - - self.am_setOption("PollingTime", 900) - self.messageQueue = self.am_getOption('MessageQueue', 'dirac.wmshistory') - - self.monitoringReporter = MonitoringReporter( - monitoringType="WMSHistory", - failoverQueueName=self.messageQueue) - - for field in self.__summaryKeyFieldsMapping: - if field == 'User': - field = 'Owner' - elif field == 'UserGroup': - field = 'OwnerGroup' - self.__jobDBFields.append(field) - - return S_OK() - - def execute(self): - """ Main execution method - """ - # Get the WMS Snapshot! - result = self.jobDB.getSummarySnapshot(self.__jobDBFields) - now = Time.dateTime() - if not result['OK']: - self.log.error("Can't get the JobDB summary", "%s: won't commit at this cycle" % result['Message']) - else: - values = result['Value'][1] - - self.log.info("Start sending records") - for record in values: - record = record[1:] - rD = {} - for fV in self.__summaryDefinedFields: - rD[fV[0]] = fV[1] - for iP in range(len(self.__summaryKeyFieldsMapping)): - fieldName = self.__summaryKeyFieldsMapping[iP] - rD[self.__renameFieldsMapping.get(fieldName, fieldName)] = record[iP] - record = record[len(self.__summaryKeyFieldsMapping):] - for iP in range(len(self.__summaryValueFieldsMapping)): - rD[self.__summaryValueFieldsMapping[iP]] = int(record[iP]) - rD['timestamp'] = int(Time.toEpoch(now)) - self.monitoringReporter.addRecord(rD) - - retVal = self.monitoringReporter.commit() - if retVal['OK']: - self.log.info("Records sent", "(%s)" % retVal['Value']) - else: - self.log.error("Failed to insert the records, it will be retried in the next iteration", retVal['Message']) - - return S_OK() diff --git a/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg b/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg index c2fca408ef8..6da81bd435e 100644 --- a/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg +++ b/src/DIRAC/WorkloadManagementSystem/ConfigTemplate.cfg @@ -248,13 +248,6 @@ Agents MessageQueue = dirac.wmshistory } ##END - ##BEGIN StatesMonitoringAgent - StatesMonitoringAgent - { - # the name of the message queue used for the failover - MessageQueue = dirac.wmshistory - } - ##END } Executors { diff --git a/src/DIRAC/WorkloadManagementSystem/DB/JobDB.py b/src/DIRAC/WorkloadManagementSystem/DB/JobDB.py index 72b0fdd7920..1e9fafee9da 100755 --- a/src/DIRAC/WorkloadManagementSystem/DB/JobDB.py +++ b/src/DIRAC/WorkloadManagementSystem/DB/JobDB.py @@ -35,7 +35,6 @@ from DIRAC.Core.Utilities.ReturnValues import S_OK, S_ERROR from DIRAC.Core.Utilities import Time from DIRAC.Core.Utilities.DErrno import EWMSSUBM -from DIRAC.Core.Utilities.Decorators import deprecated from DIRAC.Core.Utilities.ObjectLoader import ObjectLoader from DIRAC.ResourceStatusSystem.Client.SiteStatus import SiteStatus from DIRAC.WorkloadManagementSystem.Client.JobState.JobManifest import JobManifest @@ -148,112 +147,6 @@ def getDistinctJobAttributes(self, attribute, condDict=None, older=None, return self.getDistinctAttributeValues('Jobs', attribute, condDict=condDict, older=older, newer=newer, timeStamp=timeStamp) -############################################################################# - @deprecated("Unused") - def traceJobParameter(self, site, localID, parameter, date=None, until=None): - ret = self.traceJobParameters(site, localID, [parameter], None, date, until) - if not ret['OK']: - return ret - returnDict = {} - for jobID in ret['Value']: - returnDict[jobID] = ret['Value'][jobID].get(parameter) - return S_OK(returnDict) - -############################################################################# - @deprecated("Unused, and broken in case the job parameters are on ElasticSearch") - def traceJobParameters(self, site, localIDs, paramList=None, attributeList=None, date=None, until=None): - import datetime - exactTime = False - if not attributeList: - attributeList = [] - attributeList = list(set(attributeList) | set(['StartExecTime', 'SubmissionTime', 'HeartBeatTime', - 'EndExecTime', 'JobName', 'OwnerDN', 'OwnerGroup'])) - try: - if isinstance(localIDs, (list, dict)): - localIDs = [int(localID) for localID in localIDs] - else: - localIDs = [int(localIDs)] - except Exception: - return S_ERROR("localIDs must be integers") - now = datetime.datetime.utcnow() - if until: - if until.lower() == 'now': - until = now - else: - try: - until = datetime.datetime.strptime(until, '%Y-%m-%d') - except Exception: - return S_ERROR("Error in format for 'until', expected '%Y-%m-%d'") - if not date: - until = now - since = until - datetime.timedelta(hours=24) - else: - since = None - for dFormat in ('%Y-%m-%d', '%Y-%m-%d %H:%M', '%Y-%m-%d %H:%M:%S'): - try: - since = datetime.datetime.strptime(date, dFormat) - break - except Exception: - exactTime = True - if not since: - return S_ERROR('Error in date format') - if exactTime: - exactTime = since - if not until: - until = now - else: - if not until: - until = since + datetime.timedelta(hours=24) - if since > now: - return S_ERROR('Cannot find jobs in the future') - if until > now: - until = now - result = self.selectJobs({'Site': site}, older=str(until), newer=str(since)) - if not result['OK']: - return result - if not result['Value']: - return S_ERROR('No jobs found at %s for date %s' % (site, date)) - resultDict = {'Successful': {}, 'Failed': {}} - for jobID in result['Value']: - if jobID: - ret = self.getJobParameter(jobID, 'LocalJobID') - if not ret['OK']: - return ret - localID = ret['Value'] - if localID and int(localID) in localIDs: - attributes = self.getJobAttributes(jobID, attributeList) - if not attributes['OK']: - return attributes - attributes = attributes['Value'] - if exactTime: - for att in ('StartExecTime', 'SubmissionTime'): - startTime = attributes.get(att) - if startTime == 'None': - startTime = None - if startTime: - break - startTime = datetime.datetime.strptime(startTime, '%Y-%m-%d %H:%M:%S') if startTime else now - for att in ('EndExecTime', 'HeartBeatTime'): - lastTime = attributes.get(att) - if lastTime == 'None': - lastTime = None - if lastTime: - break - lastTime = datetime.datetime.strptime(lastTime, '%Y-%m-%d %H:%M:%S') if lastTime else now - okTime = (exactTime >= startTime and exactTime <= lastTime) - else: - okTime = True - if okTime: - ret = self.getJobParameters(jobID, paramList=paramList) - if not ret['OK']: - return ret - attributes.update(ret['Value'].get(jobID, {})) - resultDict['Successful'].setdefault(int(localID), {})[int(jobID)] = attributes - for localID in localIDs: - if localID not in resultDict['Successful']: - resultDict['Failed'][localID] = 'localID not found' - return S_OK(resultDict) - ############################################################################# def getJobParameters(self, jobID, paramList=None): """ Get Job Parameters defined for jobID. diff --git a/src/DIRAC/WorkloadManagementSystem/Service/JobMonitoringHandler.py b/src/DIRAC/WorkloadManagementSystem/Service/JobMonitoringHandler.py index 4a38ed13574..6580eb9cb72 100755 --- a/src/DIRAC/WorkloadManagementSystem/Service/JobMonitoringHandler.py +++ b/src/DIRAC/WorkloadManagementSystem/Service/JobMonitoringHandler.py @@ -587,24 +587,6 @@ def export_getJobParameters(cls, jobIDs, parName=None): return cls.jobDB.getJobParameters(jobIDs, parName) -############################################################################## - types_traceJobParameter = [six.string_types, six.string_types + (list, ) + six.integer_types, - six.string_types, six.string_types + (None,), - six.string_types + (None,)] - - @classmethod - def export_traceJobParameter(cls, site, localID, parameter, date, until): - return cls.jobDB.traceJobParameter(site, localID, parameter, date, until) - -############################################################################## - types_traceJobParameters = [six.string_types, six.string_types + (list, ) + six.integer_types, - [list, None], [list, None], - six.string_types + (None,), six.string_types + (None,)] - - @classmethod - def export_traceJobParameters(cls, site, localID, parameterList, attributeList, date, until): - return cls.jobDB.traceJobParameters(site, localID, parameterList, attributeList, date, until) - ############################################################################## types_getAtticJobParameters = [list(six.integer_types)] diff --git a/src/DIRAC/WorkloadManagementSystem/Service/JobStateUpdateHandler.py b/src/DIRAC/WorkloadManagementSystem/Service/JobStateUpdateHandler.py index f6133af5164..958719d51f6 100755 --- a/src/DIRAC/WorkloadManagementSystem/Service/JobStateUpdateHandler.py +++ b/src/DIRAC/WorkloadManagementSystem/Service/JobStateUpdateHandler.py @@ -26,7 +26,6 @@ from DIRAC.WorkloadManagementSystem.DB.ElasticJobParametersDB import ElasticJobParametersDB from DIRAC.WorkloadManagementSystem.DB.JobLoggingDB import JobLoggingDB from DIRAC.WorkloadManagementSystem.Client import JobStatus -from DIRAC.Core.Utilities.Decorators import deprecated class JobStateUpdateHandler(RequestHandler): @@ -100,21 +99,6 @@ def export_setJobStatus(cls, jobID, status='', minorStatus='', source='Unknown', return cls.__setJobStatus( int(jobID), status=status, minorStatus=minorStatus, source=source, datetime=datetime) - ########################################################################### - types_setJobsStatus = [list] - - @classmethod - @deprecated("unused") - def export_setJobsStatus(cls, jobIDs, status='', minorStatus='', source='Unknown', datetime=None): - """ Set the major and minor status for job specified by its JobId. - Set optionally the status date and source component which sends the - status information. - """ - for jobID in jobIDs: - cls.__setJobStatus( - int(jobID), status=status, minorStatus=minorStatus, source=source, datetime=datetime) - return S_OK() - @classmethod def __setJobStatus(cls, jobID, status=None, minorStatus=None, appStatus=None, source=None, datetime=None): """ update the job provided statuses (major, minor and application) diff --git a/tests/Jenkins/utilities.sh b/tests/Jenkins/utilities.sh index eb7f79bf775..0c4dedc0e4d 100644 --- a/tests/Jenkins/utilities.sh +++ b/tests/Jenkins/utilities.sh @@ -870,7 +870,7 @@ diracUninstallServices(){ diracAgents(){ echo '==> [diracAgents]' - local agents=$(cut -d '.' -f 1 < agents | grep -v MyProxy | grep -v CAUpdate | grep -v CE2CSAgent | grep -v GOCDB2CS | grep -v Bdii2CS | grep -v CacheFeeder | grep -v NetworkAgent | grep -v FrameworkSystem | grep -v DiracSiteAgent | grep -v StatesMonitoringAgent | grep -v DataProcessingProgressAgent | grep -v RAWIntegrityAgent | grep -v GridSiteWMSMonitoringAgent | grep -v HCAgent | grep -v GridCollectorAgent | grep -v HCProxyAgent | grep -v Nagios | grep -v AncestorFiles | grep -v BKInputData | grep -v LHCbPRProxyAgent | sed 's/System / /g' | sed 's/ /\//g') + local agents=$(cut -d '.' -f 1 < agents | grep -v MyProxy | grep -v CAUpdate | grep -v CE2CSAgent | grep -v GOCDB2CS | grep -v Bdii2CS | grep -v CacheFeeder | grep -v NetworkAgent | grep -v FrameworkSystem | grep -v DataProcessingProgressAgent | grep -v RAWIntegrityAgent | grep -v GridSiteWMSMonitoringAgent | grep -v HCAgent | grep -v GridCollectorAgent | grep -v HCProxyAgent | grep -v Nagios | grep -v AncestorFiles | grep -v BKInputData | grep -v LHCbPRProxyAgent | sed 's/System / /g' | sed 's/ /\//g') for agent in $agents; do if [[ $agent == *" JobAgent"* ]]; then