zv ddlZddlZddlmZddlmZddlmZddlm Z ddl m Z ddl m Z mZddlmZmZdd lmZmZmZeeZeed Zd ZGd de ZdS)N) timedelta) getLogger)Union) MessageType) MessageSource)get_current_backendget_last_backup_timestamp) load_state save_state)Scoperecurring_checksafe_cancel_task)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  % % ' '  c~K|j|jfD]}t|d{V|dSr)rr!rsave_last_send_timestamp)r"tasks r%shutdownzBackupInfoSender.shutdown's[%t';< ) )D"4(( ( ( ( ( ( ( ( ( %%'''''r' 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)rr2loggerwarningr )r"r3r,s r%r)z)BackupInfoSender.save_last_send_timestamp0s`13D-- &&y11  NN2I > > > F%(=y'IJJJJJr'ctdd}||stdd}|S)Nrr5z(Invalid timestamp loaded, resetting to 0r)r getr2r6r7)r"r,s r%rz)BackupInfoSender.load_last_send_timestamp7sS122667LMM &&y11  NNE F F FIr'cKtj|jz tkr|jdSdSr)timer SEND_INTERVALrset)r"s r%rz.BackupInfoSender._recurring_check_data_to_send>sC 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 Exceptionr6 exceptionr;rclear)r"es r%r z%BackupInfoSender._recurring_send_statCs##%%%%%%%%% %**,, , , , , , , , , 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 BackupInforr rprocess_message)r" confg_msgs r%r@z$BackupInfoSender._send_server_configOsq*!4!6!6(A(C(C"C"C"C"C"C"C   j((33333333333r'r)__name__ __module__ __qualname____doc__r IM360SCOPEr&r+ staticmethodrr0r1boolr2r)rr RECURRING_CHECK_INTERVALrr r@r'r%rrs88 KE    ((( EeCJ&7EDEEE\EKK5e+<KKKK_-..##/.#_Q % % %44444r'r)rr;datetimerloggingrtypingr"defence360agent.contracts.messagesr!defence360agent.contracts.pluginsr%defence360agent.subsys.backup_systemsrr 'defence360agent.subsys.persistent_stater r defence360agent.utilsr r rrKr6r0 total_secondsr<rSrrTr'r%r^sC ::::::;;;;;;KJJJJJJJJJJJJJJJJJ 8  IIB'''557788 >4>4>4>4>4}>4>4>4>4>4r'