From 85b285464083e19f09469220fb4c05f7af7c7cfd Mon Sep 17 00:00:00 2001 From: Suthep Pomjaksilp Date: Tue, 15 Jul 2025 12:38:01 +0200 Subject: [PATCH 1/2] Add heros realm configuration --- src/atomiq/frontend/atomiq_master.py | 9 ++++++++- src/atomiq/heros.py | 3 ++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/atomiq/frontend/atomiq_master.py b/src/atomiq/frontend/atomiq_master.py index 474241e..bc5029b 100644 --- a/src/atomiq/frontend/atomiq_master.py +++ b/src/atomiq/frontend/atomiq_master.py @@ -7,6 +7,7 @@ if heros is not None: from heros.zenoh import session_manager _instance_name = None + _heros_realm = "heros" _ArtiqScheduler = artiq.master.scheduler.Scheduler @@ -17,6 +18,7 @@ if heros is not None: def __init__(self, *args, **kwargs): global _instance_name + global _realm _ArtiqScheduler.__init__(self, *args, **kwargs) self._worker_handlers.update({ @@ -26,7 +28,7 @@ if heros is not None: }) postfix = f"-{_instance_name}" if _instance_name is not None else "" - LocalHERO.__init__(self, f"atomiq-scheduler{postfix}") + LocalHERO.__init__(self, f"atomiq-scheduler{postfix}", realm=_heros_realm) @event def run_created(self, rid, metadata={}): @@ -72,6 +74,9 @@ if __name__ == '__main__': parser.add_argument("--heros-connect", help="zenoh host to connect to for discovery" "of heros") + parser.add_argument("--heros-realm", + default="heros", + help='realm under which the atomiq should be exposed') return parser @@ -84,5 +89,7 @@ if __name__ == '__main__': session_manager.update_config({"connect": {"endpoints": [args.heros_connect]}}) if "name" in args: _instance_name = args.name + if "heros_realm" in args: + _heros_realm = args.heros_realm artiq_master.main() diff --git a/src/atomiq/heros.py b/src/atomiq/heros.py index 23f3e80..727eece 100644 --- a/src/atomiq/heros.py +++ b/src/atomiq/heros.py @@ -44,12 +44,13 @@ class AtomiqHERO(LocalHERO): chunksize = -1 def __init__(self, experiment): + global _heros_realm self.experiment = experiment self.name = experiment.__class__.__name__ self.rid = experiment.scheduler.rid self.chunksize = experiment.CHUNKSIZE - super().__init__(f"atomiq-run-{self.experiment.scheduler.rid}") + super().__init__(f"atomiq-run-{self.experiment.scheduler.rid}", realm=_heros_realm) @property def step_counter(self): -- GitLab From 19071cebc221639a388193aaa2f512cdfcab4627 Mon Sep 17 00:00:00 2001 From: Suthep Pomjaksilp Date: Tue, 15 Jul 2025 17:55:58 +0200 Subject: [PATCH 2/2] Setting heros realm only works for scheduler --- src/atomiq/frontend/atomiq_master.py | 2 +- src/atomiq/heros.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/atomiq/frontend/atomiq_master.py b/src/atomiq/frontend/atomiq_master.py index bc5029b..cbeb2a5 100644 --- a/src/atomiq/frontend/atomiq_master.py +++ b/src/atomiq/frontend/atomiq_master.py @@ -18,7 +18,7 @@ if heros is not None: def __init__(self, *args, **kwargs): global _instance_name - global _realm + global _heros_realm _ArtiqScheduler.__init__(self, *args, **kwargs) self._worker_handlers.update({ diff --git a/src/atomiq/heros.py b/src/atomiq/heros.py index 727eece..9aa8664 100644 --- a/src/atomiq/heros.py +++ b/src/atomiq/heros.py @@ -50,7 +50,7 @@ class AtomiqHERO(LocalHERO): self.rid = experiment.scheduler.rid self.chunksize = experiment.CHUNKSIZE - super().__init__(f"atomiq-run-{self.experiment.scheduler.rid}", realm=_heros_realm) + super().__init__(f"atomiq-run-{self.experiment.scheduler.rid}") @property def step_counter(self): -- GitLab