Skip to content

Commit f9739aa

Browse files
Load RabbitMQ credentials directly using PikaTransport object (#434)
* Use PikaTransport object directly to load RabbitMQ credentials * Ignore unknown arguments when starting up Murfey server from command line * Fixed demo mode need RabbitMQ credentials --------- Co-authored-by: Dan Hatton <[email protected]>
1 parent 1dc1ea8 commit f9739aa

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

src/murfey/server/__init__.py

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,12 @@
1111
from importlib.resources import files
1212
from pathlib import Path
1313
from threading import Thread
14-
from typing import Any, Dict, List, NamedTuple, Tuple
14+
from typing import Any, Dict, List, Literal, NamedTuple, Tuple
1515

1616
import graypy
1717
import mrcfile
1818
import numpy as np
1919
import uvicorn
20-
import workflows
2120
from backports.entry_points_selectable import entry_points
2221
from fastapi import Request
2322
from fastapi.templating import Jinja2Templates
@@ -42,6 +41,7 @@
4241
from sqlalchemy.orm.exc import ObjectDeletedError
4342
from sqlmodel import Session, create_engine, select
4443
from werkzeug.utils import secure_filename
44+
from workflows.transport.pika_transport import PikaTransport
4545

4646
import murfey
4747
import murfey.server.ispyb
@@ -225,6 +225,7 @@ def respond_with_template(
225225

226226

227227
def run():
228+
# Set up argument parser
228229
parser = argparse.ArgumentParser(description="Start the Murfey server")
229230
parser.add_argument(
230231
"--host",
@@ -273,28 +274,29 @@ def run():
273274
help="Increase logging output verbosity",
274275
default=0,
275276
)
277+
# Parse and separate known and unknown args
278+
args, unknown = parser.parse_known_args()
276279

280+
# Load the security configuration
277281
security_config = get_security_config()
278-
# setup logging
282+
283+
# Set up GrayLog handler if provided in the configuration
279284
if security_config.graylog_host:
280285
handler = graypy.GELFUDPHandler(
281286
security_config.graylog_host, security_config.graylog_port, level_names=True
282287
)
283288
root_logger = logging.getLogger()
284289
root_logger.addHandler(handler)
285-
286290
# Install a log filter to all existing handlers.
287291
LogFilter.install()
288292

289-
workflows.transport.load_configuration_file(security_config.rabbitmq_credentials)
290-
291-
args = parser.parse_args()
292-
293-
# Set up Zocalo connection
294293
if args.demo:
294+
# Run in demo mode with no connections set up
295295
os.environ["MURFEY_DEMO"] = "1"
296296
else:
297-
_set_up_transport(args.transport)
297+
# Load RabbitMQ configuration and set up the connection
298+
PikaTransport().load_configuration_file(security_config.rabbitmq_credentials)
299+
_set_up_transport("PikaTransport")
298300

299301
# Set up logging now that the desired verbosity is known
300302
_set_up_logging(quiet=args.quiet, verbosity=args.verbose)
@@ -393,7 +395,7 @@ def _set_up_logging(quiet: bool, verbosity: int):
393395
logging.getLogger(logger_name).setLevel(log_level)
394396

395397

396-
def _set_up_transport(transport_type):
398+
def _set_up_transport(transport_type: Literal["PikaTransport"]):
397399
global _transport_object
398400
_transport_object = TransportManager(transport_type)
399401

src/murfey/server/ispyb.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import datetime
44
import logging
55
import os
6-
from typing import Callable, List, Optional
6+
from typing import Callable, List, Literal, Optional
77

88
import ispyb
99

@@ -55,7 +55,7 @@ def _send_using_new_connection(transport_type: str, queue: str, message: dict) -
5555

5656

5757
class TransportManager:
58-
def __init__(self, transport_type):
58+
def __init__(self, transport_type: Literal["PikaTransport"]):
5959
self._transport_type = transport_type
6060
self.transport = workflows.transport.lookup(transport_type)()
6161
self.transport.connect()

0 commit comments

Comments
 (0)