Пример #1
0
 async def _call_controller(self, method):
     remote = AsyncioClient()
     await remote.connect_rpc(self.host, self.port, None)
     try:
         targets, _ = remote.get_rpc_id()
         remote.select_rpc_target(targets[0])
         r = await getattr(remote, method)()
     finally:
         remote.close_rpc()
     return r
Пример #2
0
 async def call(self, method, *args, **kwargs):
     remote = AsyncioClient()
     await remote.connect_rpc(self.host, self.port, None)
     try:
         targets, _ = remote.get_rpc_id()
         await remote.select_rpc_target(targets[0])
         r = await getattr(remote, method)(*args, **kwargs)
     finally:
         remote.close_rpc()
     return r
Пример #3
0
 async def call(self, method, *args, **kwargs):
     remote = AsyncioClient()
     await remote.connect_rpc(self.host, self.port, None)
     try:
         targets, _ = remote.get_rpc_id()
         remote.select_rpc_target(targets[0])
         r = await getattr(remote, method)(*args, **kwargs)
     finally:
         remote.close_rpc()
     return r
Пример #4
0
 async def _call_controller(self, method):
     remote = AsyncioClient()
     await remote.connect_rpc(self.host, self.port, None)
     try:
         targets, _ = remote.get_rpc_id()
         remote.select_rpc_target(targets[0])
         r = await getattr(remote, method)()
     finally:
         remote.close_rpc()
     return r
Пример #5
0
 async def _set_dataset_impl(self, key, value):
     logger.info("Setting '%s' to %s", key, value)
     try:
         remote = AsyncioClient()
         await remote.connect_rpc(self.args.server, self.args.port_control,
                                  "master_dataset_db")
         try:
             await remote.set(key, value, persist=True)
         finally:
             remote.close_rpc()
     except Exception:
         logger.error("Failed to set dataset '%s'", key, exc_info=True)
Пример #6
0
def main():
    args = get_argparser().parse_args()

    db = FlatFileDB(args.db_file, default_data=dict())
    lmgr = LayoutManager(db)

    asyncio.set_event_loop_policy(gbulb.GtkEventLoopPolicy())
    loop = asyncio.get_event_loop()
    atexit.register(lambda: loop.close())

    # share the schedule control and repository connections
    schedule_ctl = AsyncioClient()
    loop.run_until_complete(
        schedule_ctl.connect_rpc(args.server, args.port_control,
                                 "master_schedule"))
    atexit.register(lambda: schedule_ctl.close_rpc())
    repository = AsyncioClient()
    loop.run_until_complete(
        repository.connect_rpc(args.server, args.port_control,
                               "master_repository"))
    atexit.register(lambda: repository.close_rpc())

    scheduler_win = lmgr.create_window(SchedulerWindow, "scheduler",
                                       schedule_ctl)
    loop.run_until_complete(
        scheduler_win.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(scheduler_win.sub_close()))

    parameters_win = lmgr.create_window(ParametersWindow, "parameters")
    loop.run_until_complete(
        parameters_win.sub_connect(args.server, args.port_notify))
    atexit.register(
        lambda: loop.run_until_complete(parameters_win.sub_close()))

    explorer_win = lmgr.create_window(ExplorerWindow, "explorer", schedule_ctl,
                                      repository)
    loop.run_until_complete(explorer_win.load_controls())
    scheduler_win.show_all()
    parameters_win.show_all()
    explorer_win.show_all()

    def exit(*args):
        lmgr.save()
        Gtk.main_quit(*args)

    explorer_win.connect("delete-event", exit)

    rtr = RTResults()
    loop.run_until_complete(rtr.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(rtr.sub_close()))

    loop.run_forever()
Пример #7
0
 async def _upload_dataset(self, name, value,):
     logger.info("Uploading dataset '%s' to master...", name)
     try:
         remote = RPCClient()
         await remote.connect_rpc(self.master_host, self.master_port,
                                  "master_dataset_db")
         try:
             await remote.set(name, value)
         finally:
             remote.close_rpc()
     except:
         logger.error("Failed uploading dataset '%s'",
                      name, exc_info=True)
     else:
         logger.info("Finished uploading dataset '%s'", name)
Пример #8
0
 async def _upload_dataset(
     self,
     name,
     value,
 ):
     logger.info("Uploading dataset '%s' to master...", name)
     try:
         remote = RPCClient()
         await remote.connect_rpc(self.master_host, self.master_port,
                                  "master_dataset_db")
         try:
             await remote.set(name, value)
         finally:
             remote.close_rpc()
     except:
         logger.error("Failed uploading dataset '%s'", name, exc_info=True)
     else:
         logger.info("Finished uploading dataset '%s'", name)
Пример #9
0
def main():
    args = get_argparser().parse_args()
    init_logger(args)

    app = QtGui.QApplication([])
    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)
    atexit.register(lambda: loop.close())

    smgr = StateManager(args.db_file)

    schedule_ctl = AsyncioClient()
    loop.run_until_complete(
        schedule_ctl.connect_rpc(args.server, args.port_control,
                                 "master_schedule"))
    atexit.register(lambda: schedule_ctl.close_rpc())

    win = MainWindow(app, args.server)
    area = dockarea.DockArea()
    smgr.register(area)
    smgr.register(win)
    win.setCentralWidget(area)
    status_bar = QtGui.QStatusBar()
    status_bar.showMessage("Connected to {}".format(args.server))
    win.setStatusBar(status_bar)

    d_explorer = ExplorerDock(win, status_bar, schedule_ctl)
    smgr.register(d_explorer)
    loop.run_until_complete(
        d_explorer.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_explorer.sub_close()))

    d_datasets = DatasetsDock(win, area)
    smgr.register(d_datasets)
    loop.run_until_complete(
        d_datasets.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_datasets.sub_close()))

    if os.name != "nt":
        d_ttl_dds = MonInj()
        loop.run_until_complete(d_ttl_dds.start(args.server, args.port_notify))
        atexit.register(lambda: loop.run_until_complete(d_ttl_dds.stop()))

    if os.name != "nt":
        area.addDock(d_ttl_dds.dds_dock, "top")
        area.addDock(d_ttl_dds.ttl_dock, "above", d_ttl_dds.dds_dock)
        area.addDock(d_datasets, "above", d_ttl_dds.ttl_dock)
    else:
        area.addDock(d_datasets, "top")
    area.addDock(d_explorer, "above", d_datasets)

    d_schedule = ScheduleDock(status_bar, schedule_ctl)
    loop.run_until_complete(
        d_schedule.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_schedule.sub_close()))

    d_log = LogDock()
    smgr.register(d_log)
    loop.run_until_complete(d_log.sub_connect(args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_log.sub_close()))

    dataset_db = AsyncioClient()
    loop.run_until_complete(
        dataset_db.connect_rpc(args.server, args.port_control,
                               "master_dataset_db"))
    atexit.register(lambda: dataset_db.close_rpc())

    def _set_dataset(k, v):
        asyncio.ensure_future(dataset_db.set(k, v))

    def _del_dataset(k):
        asyncio.ensure_future(dataset_db.delete(k))

    d_console = ConsoleDock(d_datasets.get_dataset, _set_dataset, _del_dataset)

    area.addDock(d_console, "bottom")
    area.addDock(d_log, "above", d_console)
    area.addDock(d_schedule, "above", d_log)

    smgr.load()
    smgr.start()
    atexit.register(lambda: loop.run_until_complete(smgr.stop()))
    win.show()
    loop.run_until_complete(win.exit_request.wait())
Пример #10
0
def main():
    args = get_argparser().parse_args()
    init_logger(args)

    app = QtGui.QApplication([])
    loop = QEventLoop(app)
    asyncio.set_event_loop(loop)
    atexit.register(lambda: loop.close())

    smgr = StateManager(args.db_file)

    schedule_ctl = AsyncioClient()
    loop.run_until_complete(schedule_ctl.connect_rpc(
        args.server, args.port_control, "master_schedule"))
    atexit.register(lambda: schedule_ctl.close_rpc())

    win = MainWindow(app, args.server)
    area = dockarea.DockArea()
    smgr.register(area)
    smgr.register(win)
    win.setCentralWidget(area)
    status_bar = QtGui.QStatusBar()
    status_bar.showMessage("Connected to {}".format(args.server))
    win.setStatusBar(status_bar)

    d_explorer = ExplorerDock(win, status_bar, schedule_ctl)
    smgr.register(d_explorer)
    loop.run_until_complete(d_explorer.sub_connect(
        args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_explorer.sub_close()))

    d_datasets = DatasetsDock(win, area)
    smgr.register(d_datasets)
    loop.run_until_complete(d_datasets.sub_connect(
        args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_datasets.sub_close()))

    if os.name != "nt":
        d_ttl_dds = MonInj()
        loop.run_until_complete(d_ttl_dds.start(args.server, args.port_notify))
        atexit.register(lambda: loop.run_until_complete(d_ttl_dds.stop()))

    if os.name != "nt":
        area.addDock(d_ttl_dds.dds_dock, "top")
        area.addDock(d_ttl_dds.ttl_dock, "above", d_ttl_dds.dds_dock)
        area.addDock(d_datasets, "above", d_ttl_dds.ttl_dock)
    else:
        area.addDock(d_datasets, "top")
    area.addDock(d_explorer, "above", d_datasets)

    d_schedule = ScheduleDock(status_bar, schedule_ctl)
    loop.run_until_complete(d_schedule.sub_connect(
        args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_schedule.sub_close()))

    d_log = LogDock()
    smgr.register(d_log)
    loop.run_until_complete(d_log.sub_connect(
        args.server, args.port_notify))
    atexit.register(lambda: loop.run_until_complete(d_log.sub_close()))

    dataset_db = AsyncioClient()
    loop.run_until_complete(dataset_db.connect_rpc(
        args.server, args.port_control, "master_dataset_db"))
    atexit.register(lambda: dataset_db.close_rpc())
    def _set_dataset(k, v):
        asyncio.ensure_future(dataset_db.set(k, v))
    def _del_dataset(k):
        asyncio.ensure_future(dataset_db.delete(k))
    d_console = ConsoleDock(
        d_datasets.get_dataset,
        _set_dataset,
        _del_dataset)

    area.addDock(d_console, "bottom")
    area.addDock(d_log, "above", d_console)
    area.addDock(d_schedule, "above", d_log)

    smgr.load()
    smgr.start()
    atexit.register(lambda: loop.run_until_complete(smgr.stop()))
    win.show()
    loop.run_until_complete(win.exit_request.wait())