£Á°èZ¨Ä…–K§‚«“ô4“ÒÙ´dîfUÙÃÅ WKbyʦ•ꎅȮFÒ¿ÊÎóCozá¬S@6{Í:›œêZÌ:Š•_%:¢¾¾~;‘Ã~芩ÊÇí`ÔÑ©ú뙵'5I¿fš×WO%ø9¾«¾DK|€ùÍD”Ýs]nHÕ¶ê×Ӽ㞪éUWŸÈË%DÒÕ¬ï‘]/Åcx ‰ï2ß]ä6G[]S£Ôϯrs{úëóµmÒï#UQxo·õÞCe]"±/aÙ&Eã4ú9Jé_ÞåëdãöKë)AÞ ¯¹ægƒÛowÐø^d™ý½ßB7áyMä9ÜÖ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
"""
import hashlib
import os
from datetime import datetime, timedelta
from defence360agent.contracts.config import (
ConfigFile,
MalwareScanSchedule,
MalwareScanScheduleInterval,
)
from defence360agent.contracts.license import LicenseCLN
def get_memory(intensity_ram):
return str(intensity_ram) + "M"
def hash_path(full_path: str, hash_provider=hashlib.sha256) -> str:
"""Calculate hash from full path"""
hash_object = hash_provider()
hash_object.update(os.fsencode(full_path))
return hash_object.hexdigest()
def reset_malware_schedule(config_file_path=None):
"""
When ImunifyAV+ falls to free license, we should
reset scheduled scanner settings to monthly mode
(daily and weekly modes are not supported in free version)
"""
if LicenseCLN.is_valid_av_plus():
return
if MalwareScanSchedule.INTERVAL not in (
MalwareScanScheduleInterval.WEEK,
MalwareScanScheduleInterval.DAY,
):
return
tomorrow = datetime.today() + timedelta(days=1)
next_day = tomorrow.day
new_data = {
"MALWARE_SCAN_SCHEDULE": {
"interval": "month",
"day_of_month": next_day,
"hour": 3,
}
}
ConfigFile(path=config_file_path).dict_to_config(new_data)