def __init__(self, config, couchDbName=None): WMObject.__init__(self, config) WMConnectionBase.__init__(self, "WMCore.WMBS") if couchDbName is None: self.dbname = getattr(self.config.JobStateMachine, "couchDBName") else: self.dbname = couchDbName self.jobsdatabase = None self.fwjrdatabase = None self.jsumdatabase = None self.statsumdatabase = None self.couchdb = CouchServer(self.config.JobStateMachine.couchurl) self._connectDatabases() try: self.dashboardReporter = DashboardReporter(config) except Exception as ex: logging.error("Error setting up the dashboard reporter: %s", str(ex)) raise self.getCouchDAO = self.daofactory("Jobs.GetCouchID") self.setCouchDAO = self.daofactory("Jobs.SetCouchID") self.incrementRetryDAO = self.daofactory("Jobs.IncrementRetry") self.workflowTaskDAO = self.daofactory("Jobs.GetWorkflowTask") self.jobTypeDAO = self.daofactory("Jobs.GetType") self.updateLocationDAO = self.daofactory("Jobs.UpdateLocation") self.getWorkflowSpecDAO = self.daofactory("Workflow.GetSpecAndNameFromTask") self.maxUploadedInputFiles = getattr(self.config.JobStateMachine, 'maxFWJRInputFiles', 1000) self.workloadCache = {} return
class ChangeState(WMObject, WMConnectionBase): """ Propagate the state of a job through the JSM. """ def __init__(self, config, couchDbName=None): WMObject.__init__(self, config) WMConnectionBase.__init__(self, "WMCore.WMBS") if couchDbName == None: self.dbname = getattr(self.config.JobStateMachine, "couchDBName") else: self.dbname = couchDbName try: self.couchdb = CouchServer(self.config.JobStateMachine.couchurl) self.jobsdatabase = self.couchdb.connectDatabase("%s/jobs" % self.dbname, size=250) self.fwjrdatabase = self.couchdb.connectDatabase("%s/fwjrs" % self.dbname, size=250) self.jsumdatabase = self.couchdb.connectDatabase(getattr( self.config.JobStateMachine, 'jobSummaryDBName'), size=250) except Exception, ex: logging.error("Error connecting to couch: %s" % str(ex)) self.jobsdatabase = None self.fwjrdatabase = None self.jsumdatabase = None try: self.dashboardReporter = DashboardReporter(config) except Exception, ex: logging.error("Error setting up the \ dashboard reporter: %s" % str(ex))
def reportWorkflowToDashboard(self, dashboardActivity): """ _reportWorkflowToDashboard_ Gathers workflow information from the arguments and reports it to the dashboard """ try: #Create a fake config conf = ConfigSection() conf.section_('DashboardReporter') conf.DashboardReporter.dashboardHost = self.dashboardHost conf.DashboardReporter.dashboardPort = self.dashboardPort #Create the reporter reporter = DashboardReporter(conf) #Assemble the info workflow = {} workflow['name'] = self.workloadName workflow['application'] = self.frameworkVersion workflow['TaskType'] = dashboardActivity #Let's try to build information about the inputDataset dataset = 'DoesNotApply' if hasattr(self, 'inputDataset'): dataset = self.inputDataset workflow['datasetFull'] = dataset workflow['user'] = '******' #Send the workflow info reporter.addTask(workflow) except: #This is not critical, if it fails just leave it be logging.error("There was an error with dashboard reporting")
def setUp(self): """ _setUp_ Setup a dashboard reporter """ self.reporter = DashboardReporter(config=None) self.processingReport = ProcessingSample.report self.mergeReport = MergeSample.report self.errorReport = ErrorSample.report return
def __init__(self, config, couchDbName=None): WMObject.__init__(self, config) WMConnectionBase.__init__(self, "WMCore.WMBS") if couchDbName == None: self.dbname = getattr(self.config.JobStateMachine, "couchDBName") else: self.dbname = couchDbName self.couchdb = CouchServer(self.config.JobStateMachine.couchurl) self._connectDatabases() try: self.dashboardReporter = DashboardReporter(config) except Exception, ex: logging.error("Error setting up the \ - dashboard reporter: %s" % str(ex)) raise
def setUp(self): """ _setUp_ Setup a dashboard reporter """ self.reporter = DashboardReporter(config=None) self.processingReport = ProcessingSample.report self.mergeReport = MergeSample.report self.errorReport = ErrorSample.report self.fallbackReport = FallbackSample.report self.twoFileFallbackXmlPath = os.path.join( getTestBase(), "WMCore_t/FwkJobReport_t/CMSSWTwoFileRemote.xml") self.pileupXmlPath = os.path.join( getTestBase(), "WMCore_t/FwkJobReport_t/CMSSWPileup.xml") return