From ca89b6d0ed86312eb12c5b6ffa87e0f68dcc31c6 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Tue, 7 Apr 2015 15:40:57 +0800 Subject: [PATCH] worker_db: support read-only mode --- artiq/language/db.py | 2 +- artiq/master/worker_db.py | 13 +++++++------ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/artiq/language/db.py b/artiq/language/db.py index 16f0fb4a5..025dc22d2 100644 --- a/artiq/language/db.py +++ b/artiq/language/db.py @@ -82,7 +82,7 @@ class AutoDB: raise KeyError("Device '{}' not found".format(k)) object.__setattr__(self, k, dev) self.build() - if self.dbh is not None: + if self.dbh is not None and self.realtime_results: self.dbh.add_rt_results(self.realtime_results) def __getattr__(self, name): diff --git a/artiq/master/worker_db.py b/artiq/master/worker_db.py index f53087bd8..e3c5865bc 100644 --- a/artiq/master/worker_db.py +++ b/artiq/master/worker_db.py @@ -84,17 +84,18 @@ def _create_device(desc, dbh): class DBHub: """Connects device, parameter and result databases to experiment. Handle device driver creation and destruction. - """ - def __init__(self, ddb, pdb, rdb): + def __init__(self, ddb, pdb, rdb, read_only=False): self.ddb = ddb self.active_devices = OrderedDict() self.get_parameter = pdb.request - self.set_parameter = pdb.set - self.add_rt_results = rdb.add_rt_results - self.get_result = rdb.request - self.set_result = rdb.set + + if not read_only: + self.set_parameter = pdb.set + self.add_rt_results = rdb.add_rt_results + self.get_result = rdb.request + self.set_result = rdb.set def get_device(self, name): if name in self.active_devices: