#!/usr/bin/env python3
from ligo.gracedb.rest import GraceDb, HTTPError

client = GraceDb()

try:
    r = client.ping()
except HTTPError as e:
    print(e.message)

print("Response code: {}".format(r.status))
print("Response content: {}".format(r.json()))
예제 #2
0
def create(name, oldname=None, gid=None, superevent=None, repo=None):
    """
    Create a new event record in the ledger..

    Parameters
    ----------
    superevent : str
       The ID of the superevent to be used from GraceDB
    name : str
       The name of the event to be recorded in the issue tracker
    names : path, optional
        The path to the name file which maps between old and new super event IDs
    oldname: str, optional
        The old name of the event.
    """
    import pathlib

    if gid or superevent:
        from ligo.gracedb.rest import GraceDb, HTTPError
        client = GraceDb(service_url=config.get("gracedb", "url"))
        r = client.ping()
    if superevent:
        data = client.superevent(superevent).json()
        event_data = client.event(data['preferred_event']).json()
        gid = data['preferred_event']
        interferometers = event_data['instruments'].split(",")
    elif gid:
        event_data = client.event(gid).json()
        interferometers = event_data['instruments'].split(",")
    else:
        event_data = None
        interferometers = []

    if gid or superevent:
        event_url = f"{config.get('gracedb', 'url')}/events/{gid}/view/"

    if not repo:
        repo = None
        #repo = f"[email protected]:pe/O3/{name}"

    event = Event(
        name=name,
        repository=repo,
        calibration={},
        interferometers=interferometers,
    )

    if oldname:
        event.meta['old superevent'] = oldname
    if gid:
        event.meta['event time'] = event_data['gpstime']
        event.meta['gid'] = gid

    working_dir = os.path.join(config.get('general', 'rundir_default'), name)

    event.meta['working directory'] = working_dir
    pathlib.Path(working_dir).mkdir(parents=True, exist_ok=True)

    if config.get("ledger", "engine") == "gitlab":
        _, repository = connect_gitlab()
        from pkg_resources import resource_filename
        issue_template = resource_filename('asimov', 'gitlabissue.md')
        gitlab.EventIssue.create_issue(repository,
                                       event,
                                       issue_template=issue_template)

    elif config.get("ledger", "engine") == "yamlfile":
        ledger = Ledger(config.get("ledger", "location"))
        ledger.add_event(event)
        ledger.save()