import asyncio from datetime import datetime, timedelta, timezone from reboot_detector import get_reboot def lambda_handler(event, context): cluster_id = event["kwargs"]["cluster_id"] start = datetime.fromtimestamp(event["kwargs"]["start_ts"]) end = datetime.fromtimestamp(event["kwargs"]["end_ts"]) tenant_id = event["kwargs"]["tenant_id"] project_id = event["kwargs"]["project_id"] clinic_org_id = event["kwargs"]["clinic_org_id"] provider = event["kwargs"]["provider"] region_name = event["kwargs"]["region_name"] reboot_events = asyncio.run( get_reboot( cluster_id, start, end, tenant_id, project_id, clinic_org_id, region_name, provider ) ) return { "time_range": f"{start.strftime('%Y-%m-%d, %H:%M:%S')} to {end.strftime('%Y-%m-%d, %H:%M:%S')}", "reboot_event_count": len(reboot_events), } if __name__ == "__main__": import asyncio start = int(datetime(2022, 12, 14, 16, 50, 0, tzinfo=timezone(timedelta(hours=8))).timestamp()) end = start + 1800 cluster_id = "1379661944637854363" tenant_id = "1372813089187791289" project_id = "1372813089202551283" event = { "kwargs": { "cluster_id": cluster_id, "start_ts": start, "end_ts": end, "tenant_id": tenant_id, "project_id": project_id, } } async def lambda_handler(event, context): cluster_id = event["kwargs"]["cluster_id"] start = datetime.fromtimestamp(event["kwargs"]["start_ts"]) end = datetime.fromtimestamp(event["kwargs"]["end_ts"]) tenant_id = event["kwargs"]["tenant_id"] project_id = event["kwargs"]["project_id"] clinic_org_id = event["kwargs"]["clinic_org_id"] provider = event["kwargs"]["provider"] region_name = event["kwargs"]["region_name"] reboot_events = await get_reboot( cluster_id, start, end, tenant_id, project_id, clinic_org_id, region_name, provider ) return reboot_events reboot_events = asyncio.run(lambda_handler(event, None)) for reboot_event in reboot_events: print( datetime.fromtimestamp(reboot_event.calibration_time) .replace(tzinfo=timezone.utc) .astimezone(timezone(timedelta(hours=8))), ": ", reboot_event.payload.get("summary"), )