コード例 #1
0
ファイル: experimentd.py プロジェクト: edgerun/galileo
def main():
    signal.signal(signal.SIGTERM, handle_sigterm)
    parser = argparse.ArgumentParser()
    parser.add_argument('--logging', required=False,
                        help='set log level (DEBUG|INFO|WARN|...) to activate logging',
                        default=os.getenv('galileo_logging_level'))
    args = parser.parse_args()

    if args.logging:
        logging.basicConfig(level=logging._nameToLevel[args.logging])

    rds = redis.Redis(
        host=os.getenv('galileo_redis_host', 'localhost'),
        password=os.getenv('galileo_redis_password', None),
        port=int(os.getenv('galileo_redis_port', 6379)),
        decode_responses=True
    )
    pymq.init(RedisConfig(rds))

    exp_db = create_experiment_database_from_env()
    exp_db.open()

    def recorder_factory(exp_id: str):
        return ExperimentTelemetryRecorder(rds, exp_db, exp_id)

    try:
        exp_controller = ExperimentController(rds)
        exp_service = SimpleExperimentService(exp_db)

        daemon = ExperimentDaemon(rds, recorder_factory, exp_controller, exp_service)
        daemon.run()
    finally:
        exp_db.close()
コード例 #2
0
def init_redis(redislite):
    from pymq.provider.redis import RedisConfig, RedisEventBus

    config = RedisConfig(redislite)

    _bus_container = []
    _invalid = False

    def _init() -> RedisEventBus:
        if _bus_container:
            raise ValueError("already called")
        if _invalid:
            raise ValueError("expired init function")

        bus = pymq.init(config)
        _bus_container.append(bus)
        return bus

    yield _init

    _invalid = True

    if _bus_container:
        pymq.shutdown()
        _bus_container[0].close()

    redislite.flushall()
コード例 #3
0
 def setUp(self) -> None:
     self.rds = self.init_rds()
     pymq.init(RedisConfig(self.rds))
     self.ectl = ExperimentController(self.rds)
     self.cctl = RedisClusterController(self.rds)
     self.rds.delete(RedisClusterController.worker_key,
                     ExperimentController.queue_key)
コード例 #4
0
ファイル: test_experimentd.py プロジェクト: edgerun/galileo
    def setUp(self) -> None:
        self.rds = self.init_rds()
        self.exp_db = self.init_db()
        pymq.init(RedisConfig(self.rds))

        self.recorder_factory = lambda exp_id: ExperimentTelemetryRecorder(
            self.rds, self.exp_db, exp_id)
        self.exp_ctrl = ExperimentController(self.rds)
        self.cctrl = RedisClusterController(self.rds)
        self.exp_service = SimpleExperimentService(self.exp_db)
コード例 #5
0
def init(rds) -> Dict[str, object]:
    eventbus = pymq.init(RedisConfig(rds))

    g = Galileo(RedisClusterController(rds))
    show = Show(g)
    rtbl = RoutingTableHelper(RedisRoutingTable(rds))
    exp = Experiment(rds)
    telemd = Telemd(TelemetryController(rds))

    return {
        'g': g,
        'show': show,
        'rtbl': rtbl,
        'exp': exp,
        'eventbus': eventbus,
        'telemd': telemd
    }
コード例 #6
0
ファイル: wsgi.py プロジェクト: edgerun/galileo
def create_context() -> AppContext:
    context = AppContext()

    context.rds = redis.Redis(host=os.getenv('galileo_redis_host',
                                             'localhost'),
                              password=os.getenv('galileo_redis_password',
                                                 None),
                              port=int(os.getenv('galileo_redis_port', 6379)),
                              decode_responses=True)
    pymq.init(RedisConfig(context.rds))

    context.ectrl = ExperimentController(context.rds)
    context.cctrl = RedisClusterController(context.rds)
    context.exp_db = create_experiment_database_from_env()
    context.exp_service = SimpleExperimentService(context.exp_db)
    context.repository = Repository(
        os.getenv('galileo_apps_repo_dir', os.path.abspath('./apps-repo')))

    return context
コード例 #7
0
ファイル: __init__.py プロジェクト: edgerun/galileo
 def init_rds(self):
     self.redis_resource.setUp()
     pymq.init(RedisConfig(self.redis_resource.rds))
     return self.redis_resource.rds
コード例 #8
0
ファイル: test_worker.py プロジェクト: edgerun/galileo
 def setUp(self) -> None:
     self.redis_resource.setUp()
     self.eventbus = pymq.init(RedisConfig(self.redis_resource.rds))