|
|
|
This page is intended to provide an overview of the codebase for `asimov`.
|
|
|
|
The code is split into to groups: the library itself, which is contained within the `asimov` subdirectory of this repository, and a number of scripts which make use of the library, but which are not (yet) incorporated with the main codebase; these are in the `scripts` directory.
|
|
|
|
|
|
|
|
# Library
|
|
|
|
The main library contains the code for interacting with `gitlab`, which is used to aggregate event information, `htcondor` for scheduling compute jobs, and the individual pipelines.
|
|
|
|
|
|
|
|
## `condor.py`
|
|
|
|
Contains the code for interacting with htcondor; largely unchanged since O3a review; does not directly handle results or configurations
|
|
|
|
|
|
|
|
## `event.py`
|
|
|
|
Handles event information (Event class) and production information (Production class); extensively changed compared to O3a; handles data for configurations
|
|
|
|
|
|
|
|
## `git.py`
|
|
|
|
Handles interactions with git repositories. Somewhat changed compared to O3a (since plan for results storage is reduced); file handling of data, but no result manipulation
|
|
|
|
|
|
|
|
## `gitlab.py`
|
|
|
|
Handles interactions with the gitlab issue tracker. Somewhat changed compared to O3a, but most of the changes are in fact in the `event.py` file. Handles data retrieval but performs no data manipulation.
|
|
|
|
|
|
|
|
## `ini.py`
|
|
|
|
Handles lalinference ini files. This is almost unchanged since O3a and is now mostly unused. Handles some configuration options for `LALInference` such as determining the accounting user.
|
|
|
|
|
|
|
|
## `logging.py`
|
|
|
|
Handles logging interface. No handling of results or configuration
|
|
|
|
|
|
|
|
## `mattermost.py`
|
|
|
|
Handles interaction with the mattermost chat server. No handling of results or configurations. Unchanged compared to O3a.
|
|
|
|
|
|
|
|
## `pipeline.py`
|
|
|
|
Provides the base class for other pipeline classes. Contains the code for calling `PESummary` and the storage of results files.
|
|
|
|
|
|
|
|
## `storage.py`
|
|
|
|
Implements storage API for asimov including file hashing and assured storage. Handles data files, but only performs file-level manipulations.
|
|
|
|
|
|
|
|
## `locutus.py`
|
|
|
|
Provides cli interface to asimov data stores
|
|
|
|
|
|
|
|
## `olivaw.py`
|
|
|
|
Coordinates the various stages of producing, submitting and monitoring PE jobs.
|
|
|
|
This is the most important script in terms of the actual running of the bot, and implements what we think of as "the bot", however, most of the heavy lifting is done through code in the main library.
|
|
|
|
|
|
|
|
## `pipelines/{rift, bayeswave, lalinference, bilby}.py`
|
|
|
|
Pipeline specific code for producing configs and DAG files.
|
|
|
|
|
|
|
|
# Scripts
|
|
|
|
|
|
|
|
## `add_configurator.py`
|
|
|
|
Read configurator jsons, convert them into asimov yaml format, and add to event issue on gitlab.
|
|
|
|
|
|
|
|
## `batch_add.py`
|
|
|
|
Read a YAML file and add the values from it to an event issue on gitlab.
|
|
|
|
|
|
|
|
## `check-ifo.py`
|
|
|
|
Compare the list of IFOs on an event issue to the available data
|
|
|
|
|
|
|
|
## `find_calibration.py`
|
|
|
|
Find the calibration files for an event, copy them and commit them to the event repo. Partially reviewed (https://git.ligo.org/daniel-williams/supervisor/-/wikis/Calibration-review)
|
|
|
|
|
|
|
|
## `make_events.py`
|
|
|
|
Make event issues from a GraceDB query
|
|
|
|
|
|
|
|
## `make_ini.py`
|
|
|
|
Add data to an event from a LALInference config file (for importing O3a configurations to O3a final events)
|
|
|
|
|
|
|
|
## `tidy.py`
|
|
|
|
Tidies extraneous error messages from the robot which are added to event issues. |
|
|
|
\ No newline at end of file |