h.BdZddlmZddlmZddlmZddlmZddl m Z ddl m Z ddl m Zdd l mZdd lmZdd lmZdd lmZmZmZdd lmZeeZejejejejgZ ejejgZ!edZ"dZ#GddeeZ$dS)u  This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program.  If not, see . Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see )suppress) getLogger)Path)utils)ANTIVIRUS_MODE)MalwareScanSchedule)MalwareScanScheduleInterval) SystemConfig) LicenseCLN) MessageType) MessageSink MessageSourceexpect)reset_malware_schedulez-/var/imunify360/premium_revisium_license.flagctj}t}t p|p|}|rt nt SN)r is_valid_av_plusREVISIUM_PREMIUM_MARKERexistsrAVAILABLE_INTERVALS AVP_INTERVALS) valid_avprevisium_license_exists conditions ]/opt/imunify360/venv/lib/python3.11/site-packages/imav/malwarelib/plugins/schedule_watcher.pyallowed_schedule_intervalr?sF+--I5<<>>##L L5LI"+ >  >ceZdZdZdZdZedZedZdZ dZ dZ e e jejd Zd S) ScheduleWatchercn||_|d|_dSr) _read_cron_cron _update_cron_sinkselfs r__init__zScheduleWatcher.__init__Gs0__&&   rc KdSr)r&loops r create_sinkzScheduleWatcher.create_sinkLs  rcK||_dSr)r$)r&r*sinks r create_sourcezScheduleWatcher.create_sourceOs rctt5ttjcdddS#1swxYwYdSr)rFileNotFoundErrorrConfig CRON_PATH read_textr)rrr!zScheduleWatcher._read_cronRs ' ( ( 6 6())3355 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6s+A  AActtj}tt5|dddn #1swxYwY|r-|d||dSdS)Ni)mode)rr1r2rr0unlinktouch write_text)jobpaths r _write_cronzScheduleWatcher._write_cronWsF$%% ' ( (   KKMMM                 ! JJEJ " " " OOC  ! !sAAAcftjtjkrdStjtvr,t dtj|jStjtvr(t dttj tj ddftj tj dtjftjtj tjdfi}|tj}tjj|dtji}|S)NzUnsupported interval value: %sz4Malware schedule interval is being reset to defaults*cmd)r1INTERVALIntervalNONErloggererrorr"rinforDAYHOURWEEK DAY_OF_WEEKMONTH DAY_OF_MONTH CRON_STRINGformatCMD)r&schedule_schemascheduler9s r_get_jobzScheduleWatcher._get_jobbs ?hm + +4 _$7 7 7 LL96? K K K:  _$=$?$? ? ? KKN O O O " $ $ $ L6;S1 MFKf.@A NV[&*=sC  #6?3 'BvzBB rc|}|j|kr8td||||_dSdS)NzUpdate background scan scheduleTF)rPr"rBrDr;)r&r9s rr#zScheduleWatcher._update_cronvsTmmoo :   KK9 : : :   S ! ! !DJ4urclK|jtjd{VdSr)r$process_messager MalwareScanQueueStopBackgroundr%s r_stop_background_scanz%ScheduleWatcher._stop_background_scansTj((  6 8 8           rcKt|dtr7|r%|js |d{VdSdSdSdS)Nconf) isinstancer r#r"rU)r&messages rschedule_config_updatedz'ScheduleWatcher.schedule_config_updateds gfo| 4 4 3  "" 34: 30022222222222 3 3 3 3 3 3rN)__name__ __module__ __qualname__r'r+r. staticmethodr!r;rPr#rUrr ConfigUpdaterlog_error_and_ignorerZr)rrrrFs    66\6!!\!(       VK $%%U!!33"!&%333rrN)%__doc__ contextlibrloggingrpathlibrdefence360agentr defence360agent.contracts.configrrr1r r@r !defence360agent.contracts.licenser "defence360agent.contracts.messagesr !defence360agent.contracts.pluginsr rrimav.malwarelib.utilsrr[rBrArErGrIrrrrrr)rrrks* !!!!!!;;;;;;JJJJJJ:99999888888:::::: 988888 8   M L M N  M N $NOO???F3F3F3F3F3k=F3F3F3F3F3r