%PDF- %PDF-
Direktori : /opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/migrations/ |
Current File : //opt/imunify360/venv/lib/python3.8/site-packages/defence360agent/migrations/120_scheduled_scan.py |
""" 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 <https://www.gnu.org/licenses/>. Copyright © 2019 Cloud Linux Software Inc. This software is also available under ImunifyAV commercial license, see <https://www.imunify360.com/legal/eula> """ import logging from datetime import date, timedelta import peewee as pw from defence360agent.contracts.config import ConfigFile from defence360agent.malwarelib.config import MalwareScanType logger = logging.getLogger(__name__) types = ( MalwareScanType.ON_DEMAND, MalwareScanType.REALTIME, MalwareScanType.MALWARE_RESPONSE, MalwareScanType.BACKGROUND, ) def _update_config(path=None): tomorrow = date.today() + timedelta(days=1) config = { 'MALWARE_SCAN_SCHEDULE': { 'day_of_month': tomorrow.day, } } try: config_file = ConfigFile(path=path) config_file.dict_to_config(config) except Exception: logger.exception('Failed to set malware scan schedule config') def migrate(migrator, database, fake=False, **kwargs): MalwareScan = migrator.orm['malware_scans'] migrator.change_fields( MalwareScan, type=pw.CharField( null=False, constraints=[pw.Check('type in {}'.format(types))] ) ) if fake: return _update_config() def rollback(migrator, database, fake=False, **kwargs): pass