Skip to content

Mock Event Generator

The Mock Event Generator (MEG) is a tool that allows you to re-upload past GW events to a given GraceDB instance.

Installation

We provide a simple Helm chart to install MEG on your Kubernetes cluster. The chart allows the following configuraion parameters:

Key Description Type Default
meg.storageClassName Storage class name for persistent storage. string "standard"
meg.image Docker image and tag. string "containers.ligo.org/emfollow/mock-event-generator:1.4.18"
meg.gracedb.caSecret Name of the Secret containing the CA certificate of your local graceDB instance. string "gracedb-ca"
meg.gracedb.hostAliases Hostname/IP mapping for GraceDB. list - ip: 10.100.100.10
  hostnames:
    - gracedb.default.svc.cluster.local

To install the chart:

helm upgrade --install -n default \
--set meg.storageClassName=local-path \
--set meg.gracedb.hostAliases=false \
meg ./meg
helm upgrade --install -n default \
meg ./meg

Connection

Initizialize auth token with kerberos

To initialize the authentication token one have to initializate the kerberos keytab and then execute htgettoken command. Inside the meg-0 pod the commands are

$ ktutil 
ktutil: add_entry -password -p <albert.einstein>@LIGO.ORG -k 0 -e "aes128-sha1" 
Password for <albert.einstein>@LIGO.ORG: 
ktutil: write_kt /tmp/<albert.einstein>.keytab 
ktutil: quit 
$ kinit -k -t /tmp/<albert.einstein>.keytab <albert.einstein>@LIGO.ORG 
$ rm $XDG_RUNTIME_DIR/bt_u1000 
$ rm /tmp/vt_u1000 
$ htgettoken -a vault.ligo.org -i igwn --scopes=gracedb.read  --nooidc --credkey=<albert.einstein>

alternatevely a script for this is available under utility folder

./utility/init-kerberos-in-meg.sh <albert.einstein>

Initizialize auth token with web-browser

inside the meg pod execute

htgettoken -a vault.ligo.org -i igwn
The command prompt on the screen is a website address: copy and open it on a web browser and authenticate yourself with LIGO account. Then, come back to shell and press return, and authentication should succeed.

Testing the conntection to gracedb

to test that connection works well, inside the pod execute the follow command.

$ gracedb credentials server
that must return something like:
{
    "username": "<albert.einstein>@ligo.org",
    "first_name": "<albert>",
    "last_name": "<einstein>",
    "email": "<albert.einstein>@ligo.org",
    "is_internal_user": true,
    "upload_to_pipeline": []
}

Event generation

MEG interact with your GraceDB instance, thus ensure that you have a valid authetication token before to proceed.

Please refer to the MEG documentation for more information on how to replay events. We provide only some useful example here.

Create single events

In order to re-crate all G-events belonging to a given Superevent present in the production GraceDB instance, run the following command:

meg create --source production --target https://<graceDB-server-name>/  --original-search S240428dr
where <graceDB-server-name> is, in the case of the LDAS fluxuser machines:
grecedb-dev<X>.ldas.cit

or, in all other cases:

gracedb.default.svc.cluster.local

In the minikube case, a tunnel should be opened on a separate teminal if you did not do it already:

minikube tunnel

The meg create command should give you a similar output:

2025-01-23 08:43:59 INFO     Replay of S240428dr using provided gps time 1421657057.556796 (now()=1421657057.57132)
2025-01-23 08:43:59 INFO     The uploads to GraceDB will take 83.94s, like the original schedule. (full 85.94s)
2025-01-23 08:43:59 INFO     G-event G478660 with delay of 83.94s (83.94)
2025-01-23 08:43:59 INFO     G-event G478659 with delay of 78.65s (78.65)
2025-01-23 08:43:59 INFO     G-event G478658 with delay of 22.71s (22.71)
2025-01-23 08:43:59 INFO     G-event G478657 with delay of 21.72s (21.72)
2025-01-23 08:43:59 INFO     G-event G478656 with delay of 13.56s (13.56)
2025-01-23 08:43:59 INFO     G-event G478655 with delay of 12.70s (12.70)
2025-01-23 08:44:12 INFO     Created G478655 -> G0346  gstlal       CBC            AllSky         1421657057.557223
2025-01-23 08:44:13 INFO     Created G478656 -> G0347  gstlal       CBC            AllSky         1421657057.557337
2025-01-23 08:44:21 INFO     Created G478657 -> G0348  gstlal       CBC            AllSky         1421657057.557337
2025-01-23 08:44:21 INFO     Uploaded file for event G0347: gstlal.p_astro.json,0
2025-01-23 08:44:21 INFO     Written label for event G0347: PASTRO_READY
2025-01-23 08:44:22 INFO     Created G478658 -> G0349  gstlal       CBC            AllSky         1421657057.557223
2025-01-23 08:44:22 INFO     Uploaded file for event G0348: gstlal.p_astro.json,0
2025-01-23 08:44:22 INFO     Written label for event G0348: PASTRO_READY
2025-01-23 08:44:32 INFO     Uploaded file for event G0346: gstlal.p_astro.json,0
2025-01-23 08:44:32 INFO     Written label for event G0346: PASTRO_READY
2025-01-23 08:44:33 INFO     Uploaded file for event G0349: gstlal.p_astro.json,0
2025-01-23 08:44:33 INFO     Written label for event G0349: PASTRO_READY
2025-01-23 08:45:18 INFO     Created G478659 -> G0350  gstlal       CBC            AllSky         1421657057.556796
2025-01-23 08:45:22 INFO     Uploaded file for event G0350: gstlal.p_astro.json,0
2025-01-23 08:45:22 INFO     Written label for event G0350: PASTRO_READY
2025-01-23 08:45:24 INFO     Created G478660 -> G0351  gstlal       CBC            AllSky         1421657057.556796
2025-01-23 08:45:26 INFO     Uploaded file for event G0351: gstlal.p_astro.json,0
2025-01-23 08:45:26 INFO     Written label for event G0351: PASTRO_READY

Uninstall

helm uninstall meg
kubectl delete pvc meg-data-meg-0