#!/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()))
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()