Exemplo n.º 1
0
def update_env_json(env, negative_env, envfile):
    f = open(envfile, 'r')
    try:
        new_env = json.load(f)
    finally:
        f.close()
    for key in new_env.keys():  # pylint: disable=E1103
        update_env(env, negative_env, key, new_env[key])
Exemplo n.º 2
0
def update_env_json(env, negative_env, envfile):
    f = open(envfile, "r")
    try:
        new_env = json.load(f)
    finally:
        f.close()
    for key in new_env.keys():  # pylint: disable=E1103
        update_env(env, negative_env, key, new_env[key])
Exemplo n.º 3
0
def recipe_builder(job_id, recipeset_id, recipefile, overrides, fqdn):
    global runtime
    log.debug("recipe_builder(%r, %r, %r, %r, %r)" %
              (job_id, recipeset_id, recipefile, overrides, fqdn))
    f = find_open(recipefile)
    try:
        recipexml, machines, tasks, args = json.load(f)
    finally:
        f.close()
    f = find_open(recipexml)
    try:
        recipe = f.read()
    finally:
        f.close()
    args['beah_root'] = beah.tools.get_data_root().next()  # pylint: disable=E1101
    args['beah_py_root'] = beah.tools.get_root()
    args.update(overrides)
    args['job_id'] = job_id
    args['recipeset_id'] = recipeset_id
    recipe_id = args.setdefault('recipe_id', 99)
    for task in tasks:
        args.setdefault('task%d_stat' % task, 'Waiting')
        args.setdefault('task%d_res' % task, 'None')
    for machine_ix in range(len(machines)):
        machine = machines[machine_ix]
        args.setdefault('machine%d' % machine_ix, machine)
        args.setdefault('machine%d_stat' % machine_ix, 'None')
    rtargs = runtimes.TypeDict(
        runtime, 'args/%s/%s/%s' % (job_id, recipeset_id, recipe_id))
    for k, v in args.items():
        rtargs.setdefault(k, v)
    for machine_ix in range(len(machines)):
        if rtargs.get('machine%d' % machine_ix, '') == fqdn:
            log.debug("recipe_builder: found %r as %r" % (fqdn, machine_ix))
            break
    else:
        log.debug("recipe_builder: %r not found, using machine 0" % (fqdn, ))
        rtargs['machine0'] = fqdn
    log.debug("recipe_builder: args=%r" % (dict(rtargs), ))
    for machine_ix in range(len(machines)):
        machine = rtargs.get('machine%d' % machine_ix, '')
        if machine == '' or machine == 'machine%d' % machine_ix:
            log.warning("Machine %d was not specified.", machine_ix)
    schedule(fqdn, recipe_id, recipe, rtargs, tasks)
    return recipe_id
Exemplo n.º 4
0
def recipe_builder(job_id, recipeset_id, recipefile, overrides, fqdn):
    global runtime
    log.debug("recipe_builder(%r, %r, %r, %r, %r)" % (job_id, recipeset_id,
        recipefile, overrides, fqdn))
    f = find_open(recipefile)
    try:
        recipexml, machines, tasks, args = json.load(f)
    finally:
        f.close()
    f = find_open(recipexml)
    try:
        recipe = f.read()
    finally:
        f.close()
    args['beah_root'] = beah.tools.get_data_root().next() # pylint: disable=E1101
    args['beah_py_root'] = beah.tools.get_root()
    args.update(overrides)
    args['job_id'] = job_id
    args['recipeset_id'] = recipeset_id
    recipe_id = args.setdefault('recipe_id', 99)
    for task in tasks:
        args.setdefault('task%d_stat' % task, 'Waiting')
        args.setdefault('task%d_res' % task, 'None')
    for machine_ix in range(len(machines)):
        machine = machines[machine_ix]
        args.setdefault('machine%d' % machine_ix, machine)
        args.setdefault('machine%d_stat' % machine_ix, 'None')
    rtargs = runtimes.TypeDict(runtime, 'args/%s/%s/%s' % (job_id,
        recipeset_id, recipe_id))
    for k, v in args.items():
        rtargs.setdefault(k, v)
    for machine_ix in range(len(machines)):
        if rtargs.get('machine%d' % machine_ix, '') == fqdn:
            log.debug("recipe_builder: found %r as %r" % (fqdn, machine_ix))
            break
    else:
        log.debug("recipe_builder: %r not found, using machine 0" % (fqdn,))
        rtargs['machine0'] = fqdn
    log.debug("recipe_builder: args=%r" % (dict(rtargs),))
    for machine_ix in range(len(machines)):
        machine = rtargs.get('machine%d' % machine_ix, '')
        if machine == '' or machine == 'machine%d' % machine_ix:
            log.warning("Machine %d was not specified.", machine_ix)
    schedule(fqdn, recipe_id, recipe, rtargs, tasks)
    return recipe_id