Ë
    ˆàiæ  ã                   ó4   — d Z ddlmZ ddlmZ  G d„ d«      Zy)z
Health checks module
é    )ÚLogger)Ú	HTTPUtilsc                   óf   — e Zd ZdZddedefd„Zdefd„Zde	defd„Z
de	defd	„Zdefd
„Zdefd„Zy)ÚHealthCheckszCheck system health endpointsÚloggerÚbase_urlc                 ó4   — || _         t        ||«      | _        y )N)r   r   Ú
http_utils)Úselfr   r   s      ú:/home/factor_ks/STREAMA2026/tests/modules/health_checks.pyÚ__init__zHealthChecks.__init__   s   € ØˆŒÜ# F¨HÓ5ˆ�ó    Úreturnc                 óü  — | j                   j                  d«       | j                  j                  d«      \  }}}|s | j                   j	                  dd|› �«       y|dk(  r| j                   j	                  dd«       y| j                   j                  dd«       | j                  |«      sy| j                  |«      sy| j                  «       sy| j                  «       sy| j                   j                  dd	«       y
)zRun all health checkszHealth Checksz/api/healthÚHEALTHz&Backend health endpoint check failed: Fi÷  z"Backend health endpoint: unhealthyz Backend health endpoint: healthyzAll health checks passedT)
r   Ú	subheaderr
   ÚgetÚerrorÚsuccessÚ_check_database_healthÚ_check_redis_healthÚ_check_nginxÚ_check_caddy)r   r   Ústatus_codeÚhealth_responses       r   Úrun_all_checkszHealthChecks.run_all_checks   sê   € à�‰×Ñ˜oÔ.ð 15·±×0CÑ0CÀMÓ0RÑ-ˆ�˜oáØ�K‰K×Ñ˜hÐ*PÐQ\ÐP]Ð(^Ô_Øà˜#ÒØ�K‰K×Ñ˜hÐ(LÔMØà�‰×Ñ˜HÐ&HÔIð ×*Ñ*¨?Ô;Øð ×'Ñ'¨Ô8Øð × Ñ Ô"Øð × Ñ Ô"Øà�‰×Ñ˜HÐ&@ÔAØr   r   c                 óâ   — | j                   j                  dd«       |j                  dd«      }|dk(  r| j                   j                  dd«       y| j                   j	                  dd|› �«       y	)
zGCheck database connectivity via health endpoint (using cached response)r   z!Checking database connectivity...ÚdatabaseÚunknownÚokzDatabase: okTz
Database: F©r   Úinfor   r   r   )r   r   Ú	db_statuss      r   r   z#HealthChecks._check_database_health3   sf   € à�‰×Ñ˜Ð#FÔGà#×'Ñ'¨
°IÓ>ˆ	Ø˜ÒØ�K‰K×Ñ ¨.Ô9Øà�K‰K×Ñ˜h¨*°Y°KÐ(@ÔAØr   c                 óâ   — | j                   j                  dd«       |j                  dd«      }|dk(  r| j                   j                  dd«       y| j                   j	                  dd|› �«       y	)
zDCheck Redis connectivity via health endpoint (using cached response)r   zChecking Redis connectivity...Úredisr   r    z	Redis: okTzRedis: Fr!   )r   r   Úredis_statuss      r   r   z HealthChecks._check_redis_health?   sf   € à�‰×Ñ˜Ð#CÔDà&×*Ñ*¨7°IÓ>ˆØ˜4ÒØ�K‰K×Ñ ¨+Ô6Øà�K‰K×Ñ˜h¨'°,°Ð(@ÔAØr   c                 óæ   — | j                   j                  dd«       | j                  j                  dd«      r| j                   j	                  dd«       y| j                   j                  dd«       y)zCheck nginx accessibilityr   zChecking nginx accessibility...Ú	localhosti�  zNginx: accessible on port 8080Tz"Nginx: not accessible on port 8080©r   r"   r
   Úcheck_port_openr   Úwarning©r   s    r   r   zHealthChecks._check_nginxK   s[   € à�‰×Ñ˜Ð#DÔEà�?‰?×*Ñ*¨;¸Ô=Ø�K‰K×Ñ Ð*JÔKØà�K‰K×Ñ Ð*NÔOØr   c                 ó�  — | j                   j                  dd«       | j                  j                  dd«      r| j                   j	                  dd«       n| j                   j                  dd«       | j                  j                  dd«      r| j                   j	                  dd«       y
| j                   j                  dd	«       y
)zCheck caddy accessibilityr   zChecking Caddy accessibility...r(   éP   zCaddy: accessible on port 80z Caddy: not accessible on port 80i»  zCaddy: accessible on port 443z-Caddy: HTTPS not configured (expected in dev)Tr)   r,   s    r   r   zHealthChecks._check_caddyV   s¡   € à�‰×Ñ˜Ð#DÔEð �?‰?×*Ñ*¨;¸Ô;Ø�K‰K×Ñ Ð*HÕIà�K‰K×Ñ Ð*LÔMð �?‰?×*Ñ*¨;¸Ô<Ø�K‰K×Ñ Ð*IÔJð ð �K‰K×Ñ˜XÐ'VÔWàr   N)zhttp://localhost:8000)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Ústrr   Úboolr   Údictr   r   r   r   © r   r   r   r      sc   „ Ù'ñ6˜vð 6°ó 6ð" ó "ðH
°dð 
¸tó 
ð
°4ð 
¸Dó 
ð	˜dó 	ð˜dô r   r   N)r2   Útests.utils.loggerr   Útests.utils.http_utilsr   r   r6   r   r   ú<module>r9      s   ðñõ &Ý ,÷^ò ^r   