import logging from datetime import datetime, timedelta import processors import modules import XnatUtils import task import cluster import bin from task import Task from dax_settings import DAX_Settings DAX_SETTINGS = DAX_Settings() RESULTS_DIR = DAX_SETTINGS.get_results_dir() DEFAULT_ROOT_JOB_DIR = DAX_SETTINGS.get_root_job_dir() DEFAULT_QUEUE_LIMIT = DAX_SETTINGS.get_queue_limit() DEFAULT_MAX_AGE = DAX_SETTINGS.get_max_age() UPDATE_PREFIX = 'updated--' UPDATE_FORMAT = "%Y-%m-%d %H:%M:%S" BUILD_SUFFIX = 'BUILD_RUNNING.txt' UPDATE_SUFFIX = 'UPDATE_RUNNING.txt' LAUNCH_SUFFIX = 'LAUNCHER_RUNNING.txt' #Logger to print logs LOGGER = logging.getLogger('dax') class Launcher(object): """ Launcher object to manage a list of projects from a settings file """ def __init__(self, project_process_dict, project_modules_dict, priority_project=None, queue_limit=DEFAULT_QUEUE_LIMIT, root_job_dir=DEFAULT_ROOT_JOB_DIR, xnat_user=None, xnat_pass=None, xnat_host=None,