wo4h9 ddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z ddlmZmZdd lmZmZdd lmZmZeeZeed Zd ZGdde ZdS)N)suppress) timedelta) getLogger)Union) MessageType) MessageSource)get_current_backendget_last_backup_timestamp) load_state save_state)Scoperecurring_check)hoursceZdZdZejZdZdZe de e e fde fdZdde e e ffd Zd Zeed Zed d ZdZdS)BackupInfoSenderz.Send user backup statistics to CH periodicallycLK||_||_tj|_||_|j||_ |j| |_ dSN) _loop_sinkasyncioEvent _send_eventload_last_send_timestamp_last_send_timestamp create_task_recurring_check_data_to_send _check_task_recurring_send_stat_send_stat_task)selfloopsinks _/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/plugins/backup_info_sender.py create_sourcezBackupInfoSender.create_sources  "=??$($A$A$C$C!:11  . . 0 0   $z55  % % ' '  cK|j|jfD]O}|ttj5|d{Vdddn #1swxYwYP|dSr)rr!cancelrrCancelledErrorsave_last_send_timestamp)r"tasks r%shutdownzBackupInfoSender.shutdown(s%t';<  D KKMMM'011                   %%'''''s AA A timestampreturncFt|ttfo|dkS)Nr) isinstanceintfloat)r.s r%is_valid_timestampz#BackupInfoSender.is_valid_timestamp/s)c5\22Dy1}Dr'Ntsc||jn|}||std|dSt dd|idS)NzInvalid timestamp: %srlast_send_timestamp)rr4loggerwarningr )r"r5r.s r%r+z)BackupInfoSender.save_last_send_timestamp3s`13D-- &&y11  NN2I > > > F%(=y'IJJJJJr'ctdd}||stdd}|S)Nrr7z(Invalid timestamp loaded, resetting to 0r)r getr4r8r9)r"r.s r%rz)BackupInfoSender.load_last_send_timestamp:sS122667LMM &&y11  NNE F F FIr'cKtj|jz tkr|jdSdSr)timer SEND_INTERVALrset)r"s r%rz.BackupInfoSender._recurring_check_data_to_sendAsC 9;;2 2m C C   " " " " " D Cr'rcK|jd{V |d{Vn2#t$r%}td|Yd}~nd}~wwxYwt j|_|jdS#t j|_|jwxYw)Nz!Failed to collect backup info: %s) rwait_send_server_config Exceptionr8 exceptionr=rclear)r"es r%r z%BackupInfoSender._recurring_send_statFs##%%%%%%%%% %**,, , , , , , , , , E E E   @! D D D D D D D D E)- D %   " " $ $ $ $ $)- D %   " " $ $ $ $s,>B# A-A(#B#(A--B##3CcKtjttd{V}|j|d{VdS)N)backup_provider_typelast_backup_timestamp)r BackupInfor r rprocess_message)r" confg_msgs r%rBz$BackupInfoSender._send_server_configRsq*!4!6!6(A(C(C"C"C"C"C"C"C   j((33333333333r'r)__name__ __module__ __qualname____doc__r IM360SCOPEr&r- staticmethodrr2r3boolr4r+rrRECURRING_CHECK_INTERVALrr rBr'r%rrs88 KE    (((EeCJ&7EDEEE\EKK5e+<KKKK_-..##/.#_Q % % %44444r'r)rr= contextlibrdatetimerloggingrtypingr"defence360agent.contracts.messagesr!defence360agent.contracts.pluginsr%defence360agent.subsys.backup_systemsr r 'defence360agent.subsys.persistent_stater r defence360agent.utilsr rrMr8r2 total_secondsr>rUrrVr'r%rasY ::::::;;;;;;KJJJJJJJ88888888 8  IIB'''557788 @4@4@4@4@4}@4@4@4@4@4r'