Skip to content

Commit

Permalink
hack on mars writer
Browse files Browse the repository at this point in the history
  • Loading branch information
TomHodson committed Dec 18, 2023
1 parent fba7b4b commit b81be8f
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 10 deletions.
14 changes: 14 additions & 0 deletions src/ionbeam/core/aviso.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,23 @@
import requests
from typing import Any
from datetime import datetime
import logging

logger = logging.getLogger(__name__)
aviso_keys = {"date", "database", "class", "expver", "time", "stream", "type", "obsgroup", "obstype", "reportype"}


def send_aviso_notification(request: dict[str, Any]):
# Hack, fixme
request |= dict(obstype=5)

try:
request = {k: request[k] for k in aviso_keys}
except KeyError as e:
raise KeyError(f"AVISO Schema requires missing key. {e}")

logger.debug(f"Sending notification to AVISO: {request}")

notification = {
"type": "aviso",
"data": {"event": "iot-data", "request": request},
Expand Down
2 changes: 1 addition & 1 deletion src/ionbeam/core/config_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ def parse_config(config_dir: Path, schema=Config, offline=None):
YamlIncludeConstructor.add_to_loader_class(loader_class=SafeLineLoader, base_dir=str(config_dir))

logger.warning(f"Configuration Directory: {config_dir}")
logger.warning("Global config file: {global_config_file}")
logger.warning(f"Global config file: {global_config_file}")

if not global_config_file.exists():
raise ConfigError(f"Could not find config.yaml in {config_dir}")
Expand Down
9 changes: 5 additions & 4 deletions src/ionbeam/writers/aviso_notifier.py
Original file line number Diff line number Diff line change
Expand Up @@ -35,14 +35,15 @@ def process(self, message: FileMessage | FinishMessage) -> Iterable[Message]:
if isinstance(message, FinishMessage):
return

request = {"database": "fdbdev", "class": "rd", "source": message.metadata.filepath}
odb_keys = {k.key: k.value for k in message.metadata.mars_keys if not k.reason == "Skipped"}
request = {"database": "fdbdev", "class": "rd"}
odb_keys = {k.key: k.value for k in message.metadata.mars_keys}
request = odb_keys | request
request = {k: mars_value_formatters.get(k, str)(v) for k, v in request.items()}

# Send a notification to AVISO that we put this data into the DB
response = send_aviso_notification(request)
logger.debug("Aviso response {response}")
logger.debug("Sending to aviso {request}")
# response = send_aviso_notification(request)
# logger.debug("Aviso response {response}")

# TODO: the explicit mars_keys should not be necessary here.
metadata = self.generate_metadata(message, mars_keys=message.metadata.mars_keys)
Expand Down
10 changes: 5 additions & 5 deletions src/ionbeam/writers/mars_client_writer.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,14 @@ def process(self, message: FileMessage | FinishMessage) -> Iterable[Message]:

request = construct_mars_request(message)

with tempfile.NamedTemporaryFile() as fp:
mars_request = write_temp_mars_request(request, file=fp.name)
logger.debug(mars_request)
run_temp_mars_request(file=fp.name)
# with tempfile.NamedTemporaryFile() as fp:
# mars_request = write_temp_mars_request(request, file=fp.name)
# logger.debug(mars_request)
# run_temp_mars_request(file=fp.name)

# Send a notification to AVISO that we put this data into the DB
response = send_aviso_notification(request)
logger.debug("Aviso response {response}")
# logger.debug("Aviso respose {response}")

# TODO: the explicit mars_keys should not be necessary here.
metadata = self.generate_metadata(message, mars_keys=message.metadata.mars_keys)
Expand Down

0 comments on commit b81be8f

Please sign in to comment.