lucasheld / uptime-kuma-api

A Python wrapper for the Uptime Kuma Socket.IO API
https://uptime-kuma-api.readthedocs.io
MIT License
247 stars 19 forks source link

Inconsistant Status calls using get_monitor_status #52

Open bikrdotnet opened 1 year ago

bikrdotnet commented 1 year ago

I drafted a quick and dirty python blob to test the ability to retrieve a monitor status but am getting very inconsistent results.

`import time from uptime_kuma_api import UptimeKumaApi from uptime_kuma_api.exceptions import UptimeKumaException import argparse

UPTIME_KUMA_URL = 'http://192.168.22.2' UPTIME_KUMA_USER = 'MYUSER' UPTIME_KUMA_PASSWORD = 'MYPASSSWORD'

def poll_monitor_status(monitor_id): api = UptimeKumaApi(UPTIME_KUMA_URL) api.login(UPTIME_KUMA_USER, UPTIME_KUMA_PASSWORD)

try:
    monitor_status_response = api.get_monitor_status(monitor_id)
    monitor_status = monitor_status_response.name  # Correctly retrieve status
    print(f"Monitor ID {monitor_id} Status: {monitor_status}")

except UptimeKumaException as ex:
    print(f"An error occurred for monitor ID {monitor_id}: {ex}")

    # Detailed logging lines
    if hasattr(ex, 'response'):
        print("Error response content:", ex.response.content)
api.disconnect()
time.sleep(1)

if name == "main": parser = argparse.ArgumentParser(description="Poll monitor status from Uptime Kuma API") parser.add_argument("monitor_id", type=int, help="ID of the monitor to check") args = parser.parse_args()

poll_monitor_status(args.monitor_id)

`

Below is me running the command a few times to show the inconsistency.

printer1@floorplan % python3 test.py 59 An error occurred for monitor ID 59: monitor does not exist printer1@floorplan % python3 test.py 59 An error occurred for monitor ID 59: monitor does not exist printer1@floorplan % python3 test.py 59 Monitor ID 59 Status: UP printer1@floorplan % python3 test.py 59 An error occurred for monitor ID 59: monitor does not exist

These commands were run within 5 seconds of each other, with no changes in network status , no changes of anything inside the script etc..

Any help troubleshooting would be greatly appreciated.

kafisatz commented 8 months ago

I am running into this as well. Besides monitor does not exist I also get list indices must be integers or slices, not str. Although, as a python novice, I am not 100% certain if this stems from my code or the underyling code