OnC d dl Z d dlZd dlZd dlZd dlmZ d dlmZ d dlmZm Z d dl
mZmZ d dl
mZ d dlmZ e j e ZdZd Zd
ZeddgZd
ZddZd Zde eef fdZdedeeef fdZdS ) N)glob)Path)TupleUnion) CharFieldModel)
FilenameField)HostingPanelz.imunify.quarantinedz/var/imunify360quarantinedz/var/wwwz/home*c 2 G fddt }|S )zl
Model stub for migration because we can't use migrator.orm[] due to
custom field FilenameField
c Z e Zd Z G fdd Z ed Z e ZdS )get_model..MalwareHitc e Zd ZdZ ZdS )"get_model..MalwareHit.Metamalware_hitsN)__name__
__module____qualname__db_tabledatabasedbs e/opt/imunify360/venv/lib/python3.11/site-packages/defence360agent/migrations/160_remove_quarantine.pyMetar s %HHHH r F)nullN)r r r r r orig_filer statusr s r
MalwareHitr s` "Mu--- r r )r )r r s ` r get_modelr s? U r Fc |rd S |pt }t | }| |j t
k }|D ]8}t
|j \ } } || | 9t D ]B}
t t j
|
t D ]
} || Cd S N)delete_quarantine_folderr selectwherer QUARANTINED find_quarr delete_instanceQUARANTINE_PARENTSr ospathjoin QUAR_NAME) _migratorr fakedelete_function___modelr hitpath_to_deleteparents r migrater7 ) s &A)AOhE,,..&&u|{'BCCK %cm44''' % , ,"27<< #B#BCC , ,NON++++ ,, ,r c d S r" )r1 r2 s r rollbackr: ? s Dr quarantine_pathc t | } | j t k rK| | k r5t d| t
j | d d S d S d S )NzDeleting quarantine folder %sT)
ignore_errors)r namer- resolveloggerinfoshutilrmtree)r; s r r# r# C sr ?++O ))6688883_EEE
oT:::::: *)88r sourcereturnc t | }t t t z | t d f}d}d}|j D ]P} t j | j }|} n# t $ r Y >t $ r |cY c S w xY w||j dk r|S | | | z } t |j }n# t t f$ r |cY S w xY w | | }n# t" $ r |cY S w xY w|t z |fS )zy
Find file in quarantine by source path.
This function is copied from agent code since it is to be removed.
/Nroot)r DEF_QUARr- relative_toparentspwdgetpwuidstatst_uidFileNotFoundErrorKeyErrorpw_namer? r
base_home_dirpw_dirRuntimeError
ValueError) rD filedefault_resultuserr6 r+ resolved_placebase_dirrelatives r r' r' M s <