Beispiel #1
0
def _execute(state):
    # Read backup config files
    err, msg = _execute_config(state)
    if err:
        _D.ERROR(__name__, "Error reading job config", "msg", msg)
        return 0, None

    # If no matching jobs then finish
    if not state.jobs:
        _D.WARNING(__name__, "No matching backup jobs found, exiting")
        return 0, None

    # Check jobs do not step on each other
    err, msg = _validate_jobs(state.jobs)
    if err:
        _D.ERROR(__name__, "Error validating jobs", "msg", msg)
        return 0, None

    # Empty temp directory before executing jobs
    fsutil.empty_dir(state.model.dir_temp)

    # Execute each job
    i = 0
    for job in state.jobs:
        i += 1
        err, msg = _exec_job(state, job, i, len(state.jobs))
        if err:
            _D.ERROR(__name__, "Error executing job", "msg", msg)
    # Done
    return 0, None
Beispiel #2
0
def _init_model(dir_resource, dir_work, filename):

    # Resource directory
    if not os.path.exists(dir_resource):
        return None, 1, "HTML Diags Resource directory does not exist: {}".format(dir_resource)

    # Working dir
    if not os.path.exists(dir_work):
        return None, 1, "HTML Diags Work directory does not exist: {}".format(dir_work)

    err, msg = fsutil.empty_dir(dir_work)
    if err:
        return None, err, "Diagnostic directory cannot be emptied: {}".format(msg)

    err, msg = fsutil.ensure_dir(dir_work)
    if err:
        return None, err, msg

    # HTML log filename
    if not filename:
        return None, 1, "HTML log filename must be provided"

    return Model(dir_resource, dir_work, filename), 0, None