diff --git a/workflowwebtools/__init__.py b/workflowwebtools/__init__.py index 28b7412..d25593e 100644 --- a/workflowwebtools/__init__.py +++ b/workflowwebtools/__init__.py @@ -4,6 +4,6 @@ :author: Daniel Abercrombie """ -__version__ = '0.9.1' +__version__ = '0.9.2' __all__ = [] diff --git a/workflowwebtools/actionshistorylink.py b/workflowwebtools/actionshistorylink.py index a679c73..0eeb7f2 100644 --- a/workflowwebtools/actionshistorylink.py +++ b/workflowwebtools/actionshistorylink.py @@ -34,7 +34,8 @@ def dump_json(file_name=None): for workflow in actions: for subtask in history.get_step_list(workflow): - if actions[workflow]['Action'] in ['acdc', 'recovery']: + action = actions[workflow]['Action'] + if action in ['acdc', 'recovery']: parameters = actions[workflow]['Parameters'].get( '/'.join(subtask.split('/')[2:]), {}) else: @@ -52,7 +53,10 @@ def dump_json(file_name=None): 'parameters': parameters } - output[subtask]['parameters']['action'] = actions[workflow]['Action'] + + output[subtask]['parameters']['action'] = \ + action if action != 'special' else \ + actions[workflow]['Parameters']['action'] if file_name: with open(file_name, 'w') as output_file: diff --git a/workflowwebtools/errorutils.py b/workflowwebtools/errorutils.py index 7c664dd..f7d7c18 100644 --- a/workflowwebtools/errorutils.py +++ b/workflowwebtools/errorutils.py @@ -59,7 +59,6 @@ def open_location(data_location): "SELECT NAME FROM CMS_UNIFIED_ADMIN.workflow WHERE lower(STATUS) LIKE '%manual%'") wkfs = [row for row, in oracle_cursor] oracle_db_conn.close() - cherrypy.log('Number of workflows from database: %i' % len(wkfs)) return errors_from_list(wkfs) raw = None diff --git a/workflowwebtools/workflowinfo.py b/workflowwebtools/workflowinfo.py index aa0e446..50065fc 100644 --- a/workflowwebtools/workflowinfo.py +++ b/workflowwebtools/workflowinfo.py @@ -385,7 +385,8 @@ def site_to_run(self, task): for site in site_set: clean_site = re.sub(r'_(ECHO_)?(Disk|MSS)$', '', site) if clean_site not in out_list and clean_site and \ - clean_site in all_site_list: + clean_site in all_site_list and \ + 'T0_' not in clean_site: out_list.append(clean_site) out_list.sort() @@ -450,6 +451,22 @@ def get_prep_id(self): return str(self.get_workflow_parameters().get('PrepID', 'NoPrepID')) + def get_monitoring_info(self): + """ + :returns: the information to send to CMSMONIT + :rtype: dict + """ + # Dummy call to get self.explanations filled + self.get_explanation(0) + + return { + 'errors': self.get_errors(True), + 'prepID': self.get_prep_id(), + 'params': self.get_workflow_parameters(), + 'recovery': self.get_recovery_info(), + 'logs': self.explanations + } + class PrepIDInfo(Info): """