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()
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)
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)
def _init() -> IpcEventBus: if _bus_container: raise ValueError("already called") if _invalid: raise ValueError("expired init function") bus = pymq.init(config) _bus_container.append(bus) return bus
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
def test_late_expose(self): def remote_fn(): pass pymq.expose(remote_fn, channel="late_channel") bus: MockedEventBus = pymq.init(MockedEventBus) try: assert (remote_fn, "late_channel") in bus.exposed_methods finally: pymq.shutdown()
def test_lazy_topic_subscribe(self): topic = pymq.topic("my_topic") def callback(): pass assert topic.subscribe(callback) is None bus: MockedEventBus = pymq.init(MockedEventBus) try: assert (callback, "my_topic", False) in bus.subscribers finally: pymq.shutdown()
def test_lazy_topic_publish(self): topic = pymq.topic("my_topic") assert "my_topic" == topic.name assert not topic.is_pattern assert topic.publish("does_nothing") is None bus: MockedEventBus = pymq.init(MockedEventBus) try: topic.publish("some_event") assert 1 == len( bus.published_events), "expected one event to be published" assert ("some_event", "my_topic") in bus.published_events finally: pymq.shutdown()
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 }
def init_rds(self): self.redis_resource.setUp() pymq.init(RedisConfig(self.redis_resource.rds)) return self.redis_resource.rds
def setUp(self) -> None: self.redis_resource.setUp() self.eventbus = pymq.init(RedisConfig(self.redis_resource.rds))