예제 #1
0
 def __init__(self, appname):
     parser = self.parser = argparse.ArgumentParser(prog='work_generator')
     parser.add_argument('--cushion',
                         nargs=1,
                         default=[2000],
                         type=int,
                         help='number of unsent jobs to keep')
     parser.add_argument(
         '--max_jobs_create',
         nargs=1,
         default=[50],
         type=int,
         help=
         'maximum number jobs to create in one pass, before waiting for transitioner'
     )
     parser.add_argument('--sleep_interval',
                         nargs=1,
                         default=[5],
                         type=int,
                         help='how many seconds to sleep between passes')
     parser.add_argument('--debug',
                         action='store_true',
                         default=False,
                         help='print out debug messages')
     self.add_args(parser)
     self.args = vars(parser.parse_args())
     self.appname = appname
     self.log = SchedMessages()
     self.log.set_debug_level(DEBUG if self.args['debug'] else NORMAL)
예제 #2
0
import boinc_path_config
from sched_messages import SchedMessages, CRITICAL
from subprocess import CalledProcessError, check_output as _check_output, STDOUT
from itertools import chain
import os, os.path as osp
from uuid import uuid4
from time import time
import argparse
import re

log = SchedMessages()


class CheckOutputError(Exception):
    pass


projdir = osp.realpath(osp.join(osp.dirname(__file__), '..', '..'))


def _get_create_work_args():
    try:
        _check_output([osp.join(projdir, 'bin', 'create_work')], stderr=STDOUT)
    except CalledProcessError as e:
        doc = e.output
    matches = [
        g.groups()
        for g in [re.search('--(.*?) (.*?) ', l) for l in doc.splitlines()]
        if g
    ]
    args = {k: {'n': int, 'x': float}.get(v, str) for k, v in matches}