import requests from dataclasses import dataclass class ClinicAPI: token = None def __init__(self, token): self.token = token def get_clinic_cluster_info(self, cluster_id: str): url = "https://clinic.pingcap.com/clinic/api/v1/dashboard/clusters2?cluster_id={}".format(cluster_id) headers = { 'authorization': 'Bearer {}'.format(self.token) } resp = requests.get(url, headers=headers) info = resp.json() if info is None: return None cluster = info['items'][0] return ClinicClusterInfo(cluster['orgID']) def get_events(self, org_id: str, cluster_id: str, begin_ts: int, end_ts: int): url = "https://clinic.pingcap.com/clinic/api/v1/activityhub/applications/{}/targets/{}/activities?begin_ts={}&end_ts={}".format( org_id, cluster_id, begin_ts, end_ts) headers = { 'authorization': 'Bearer {}'.format(self.token) } resp = requests.get(url, headers=headers) result = resp.json() if result is None: return None if 'error' in result: if result['error']: raise Exception("get events failed") return result['activities'] @dataclass class ClinicClusterInfo: orgID: str if __name__ == '__main__': token = '-' clinic = ClinicAPI(token) clusterID = '1379661944629574082' res = clinic.get_clinic_cluster_info(clusterID) events = clinic.get_events(res.orgID, clusterID, 1681631933, 1681631933)