
    cmj7
                         d dl Z d dlmZ ddlmZmZ ddlmZ dedee	ef   fdZ
d	edee	ef   fd
Zd	ede	fdZd	ede	fdZy)    N)Any   )isoutc_now)Watcherrowreturnc                     | j                         D ci c]  }|| |   
 }}dD ]0  }|j                  |      s	 t        j                  ||         ||<   2 |S c c}w # t        j                  $ r Y Ow xY w)N)evidence_jsonmetadata_json)keysgetjsonloadsJSONDecodeError)r   keyresults      K/opt/struktur/hermes-workspace/worker-watcher/src/worker_watcher/reports.py_rowr      s~    '*xxz2c3s8m2F21 ::c?"jj5s M 3
 '' s   AAA43A4watcherc                    t        t                     | j                         | j                  j	                         D cg c]  }t        |       c}| j                  j                         D cg c]  }t        |       c}| j                  j                         D cg c]  }t        |       c}| j                  j                         D cg c]  }t        |       c}| j                  j                         D cg c]  }t        |       c}| j                  j                         D cg c]  }t        |       c}dS c c}w c c}w c c}w c c}w c c}w c c}w )N)
created_atr   jobsworkersagents
collectorsremote_eventsevents)r   r   health
repositorystatus_rowsr   worker_rows
agent_rowscollector_rowsremote_event_rowsr   )r   r   s     r   report_datar&      s    gi.W^^5E*1*<*<*H*H*JK3T#YK-4-?-?-K-K-MNcS	N,3,>,>,I,I,KLStCyL070B0B0Q0Q0ST49T3:3E3E3W3W3YZCd3iZ,3,>,>,E,E,GHStCyHJ JKNLTZHs#   E.E

EE>E.Ec                 N    t        j                  t        |       ddt              S )NF   )ensure_asciiindentdefault)r   dumpsr&   str)r   s    r   render_jsonr.      s    ::k'*qRUVV    c                    t        |       }|d   }ddd|d    dd|d    d	dd
dd|d    d|d    d|d    d|d    d|d    dddddg}|d   D ]8  }|j                  d|d    d|d    d|d    d|d    d|d    d|d     d!       : |j                  g d"       |d#   d d$ D ]?  }|j                  d|d%    dt        |d&          d|j	                  d'      xs d d!       A |j                  g d(       |d)   D ],  }|j                  d|d*    d|d+    d|d,    d|d-    d!	       . d.j                  |      d.z   S )/Nr   z# Worker Watcher Report zErstellt: `r   `zWatcher: **watcher_statusz**z## Job-Summenz- healthy: jobs_healthyz- degraded: jobs_degradedz
- failed: jobs_failedz	- stale: 
jobs_stalez- unknown: jobs_unknownz## Aktuelle JobszA| Job | Instanz | Operational | Health | Observation | Severity |z|---|---|---|---|---|---|r   z| job_keyz | instance_keyoperational_statehealth_statusobservation_statusseverityz |)r1   u   ## Collector-Läufer1   z| Collector | Erfolg | Fehler |z|---|---:|---|r      collector_namesuccesserror_message)r1   u   ## Ausführungsorter1   z$| Agent | Umgebung | Host | Status |z|---|---|---|---|r   	agent_keyenvironmenthoststatus
)r&   appendextendboolr   join)r   datar   linesjob	collectoragents          r   render_markdownrQ   !   sN   wD)_F&k$|:L9MQ,OS^_efv_w^xxzQ{}bK~0F/G"HLY_`oYpXqJr&/01Yvl?S>T3UYdeklze{d|W}  @B%h  kFGE F| nr#i.)S-@,ASI\E]D^^abefubvawwz{~  @T  |U  {V  VY  Z]  ^h  Zi  Yj  jl  m  	nn	LLef,', C	r)$456c$y?S:T9UUXYbYfYfgvYwY}{}X~  A  B  	CC	LLmnh qr%,-S}1E0Fc%PV-X[\abj\k[llnopq99Ud""r/   )r   typingr   timeutilr   r   r   r   dictr-   r   r&   r.   rQ    r/   r   <module>rV      ss      " c d38n J JT#s(^ JW WS W#W # #r/   