U5i,.bdZddlmZmZmZmZmZmZmZm Z ddl m Z m Z ddl mZGddeZy)z Fleet Status Tab On-demand dashboard showing: - Overall health indicator - Docker containers status - Tunnel connectivity - Backup status - Disk usage Click "Refresh Now" button to check status (no automatic refresh). )QWidget QVBoxLayout QHBoxLayoutQLabel QGroupBox QPushButton QProgressBar QListWidget)QTimerQt)QFontc>eZdZdZfdZdZdZdedefdZxZ S)FleetTabzFleet monitoring dashboard tabcft|ddlm}||_|j y)Nr)DatabaseManager)super__init__ core.databaserdb_init_ui)selfr __class__s 7/mnt/ssd/data/python-lab/DaemonControl/gui/fleet_tab.pyrzFleetTab.__init__s&  2!# c8 t}|j|td}t}|j d|j d|j ||j|td|_t}|j d|jj ||jjd|j|jt}td}t}td|_ t|_|jjd |j|j|j|j|j||j|td }t} td|_td |_td |_| j|j | j|j"| j|j$|j| |j||j'|t} td } t} td|_td |_td |_| j|j(| j|j*| j|j,| j| | j| td } t}t/|_t/|_t/|_td|_td|_td|_|j|j6|j|j0|j|j8|j|j2|j|j:|j|j4| j|| j| |j'| t}t=d}|j>jA|jB|j|td|_"|j|jD|jG|j'||jGy)zCreate UI layoutu%🚢 FLOTTA AUTONOMA - Status MonitorTz0Status: Not checked yet - Click Refresh to check color: gray;u🐳 Docker Containersz Not checkedu🔒 WireGuard Tunnelu💾 Restic Backupu📊 Disk Spacez Hub SSD: --zCassaforte HDD: --zRoot: --u🔄 Refresh NowLast update: NeverN)$r setLayoutrr setPointSizesetBoldsetFont addWidgetoverall_status setStyleSheetrr docker_labelr docker_detailssetMaximumHeight tunnel_labeltunnel_latencytunnel_packet_loss addLayout backup_label backup_age backup_countr disk_ssddisk_hdd disk_rootdisk_ssd_labeldisk_hdd_labeldisk_root_labelrclickedconnectrefreshlast_update_label addStretch)rlayouttitle title_font status_font stats_row docker_group docker_layout tunnel_group tunnel_layoutbackup_disk_row backup_group backup_layout disk_group disk_layout button_row refresh_btns rrzFleetTab._init_ui(s v>?W #4  j!%%WXg   $ ##K0 )).9,,- M !!9: # "=1)m ,,S1 1 12 3 34}-L)!!89 # "=1$Rj"(* 1 12 3 34 7 78}-L)#&-!!56 # "=1 *"2J 1 120 1 12}-!!,/01 !m $ $ %$]3$%9:%j1d112dmm,d112dmm,d223dnn-[)!!*-)!] !"45 ##DLL1[)!'(| d9|d:bd!d?lm}|jd@}|rC|j5|}|j6j dA|j9dBdC|dDy|j6j dEy#t:$rQ}|jj dF||jj dt=dG|Yd}~yd}~wwxYw)Hz-Refresh fleet status from database (instant).overall age_secondsNu.⚠️ No data available - Daemon not running?riXu⚠️ Data stale (<z min old)zcolor: orange;healthyu$Status: 🟢 All Systems Operationalz color: green;warningu$Status: 🟡 Warning - Check Detailsu'Status: 🔴 Critical - Action Requiredz color: red;dockermessageUnknowndetails staterunningu✓u✗ nametunnel connectedz Latency: latency_msrz.1fmsz Packet loss: packet_loss% Disconnectedr backuplast_snapshot_datezLast: snapshot_countzTotal snapshots: diskdisks used_percentfree_gbstatuscriticalz.QProgressBar::chunk { background-color: red; }z1QProgressBar::chunk { background-color: orange; }z0QProgressBar::chunk { background-color: green; }zHub SSDz Hub SSD: z% (zGB free)zCassaforte HDDzCassaforte HDD: RootzRoot: )datetime check_timez Last update: z%H:%M:%Sz (zs ago)r!zError: zFleet tab refresh error: )rget_latest_fleet_statusgetr'setTextr(_convert_db_to_statusr)r*clearaddItemr,r-r.r0r1r2intr3setValuer6r4r7r5r8rn fromisoformatr<strftime Exceptionprint)r status_db overall_dbrPrkrOrT container status_emojir]rdrgdpercentrjstylernrodtes rr;zFleetTab.refreshs]k 3779I#y"5J$..7K"##++,\]##11.AS ##++.A+QSBSATT],^_##112BC// :FY'G)###++,RS##11/BI%##++,RS##112BC##++,UV##11-@H%F    % %fjjI&F G    % % 'F"!' !23B!7WI,5g,>),K5QVL''//<.)FBSAT0UVW H%F    % %fjjI&F Gzz+&##++i V=W*XY&>D$gA!!N"34GeeIq1G{j0 P8 1 S RyI- ..w7 33E:++33'yG9HE6&66 ..w7 33E:++33.wis7)8L6f,//844U;,,44$WIS B7@ *# 5J++J7&&..#BKK $;#STDO{}a@UV $--"599(IN$==26::9iPJU+//2BA"F[\Xckoo6JG&Tip $--377)L$==488IN&/R)  r) __name__ __module__ __qualname____doc__rrr;dictrs __classcell__)rs@rrrs,(`Dm3^' t' ' rrN)rPyQt6.QtWidgetsrrrrrrr r PyQt6.QtCorer r PyQt6.QtGuir rrrrs/ $J wJ r