3
^p @ sh d dl mZ ddlmZ ddlmZ ddlmZmZ edddd gZ G d
d deZ
G dd
d
eZdS ) )
namedtuple )ContextWrapper)DiffResultDescriptor)
DifferenceWrapperZmodified_fsuseruleZ
added_contextZremoved_contextc @ s8 e Zd ZdZedZedZedZdd Zdd Z dS )FSUsesDifferencez@Determine the difference in fs_use_* rules between two policies.diff_fs_usesc C s | j jdj| | jdd | jj D dd | jj D \| _| _}g | _ x<|D ]4\}}t
|jt
|jkrT| j jt
||j|j qTW dS )z=Generate the difference in fs_use rules between the policies.zHGenerating fs_use_* differences from {0.left_policy} to {0.right_policy}c s s | ]}t |V qd S )N)FSUseWrapper).0fs r /usr/lib64/python3.6/fsuse.py / s z0FSUsesDifference.diff_fs_uses..c s s | ]}t |V qd S )N)r )r r
r r r r 0 s N)loginfoformatZ _set_diffZleft_policyZfs_usesZright_policy
added_fs_usesremoved_fs_usesmodified_fs_usesr contextappendmodified_fsuse_record)selfZmatchedZ left_ruleZ
right_ruler r r r
' s
zFSUsesDifference.diff_fs_usesc C s" | j jd d| _d| _d| _dS )z%Reset diff results on policy changes.z#Resetting fs_use_* rule differencesN)r debugr r r )r r r r _reset_diff? s zFSUsesDifference._reset_diffN)
__name__
__module____qualname____doc__r r r r r
r r r r r r s r c @ s4 e Zd ZdZdZdd Zdd Zd d
Zdd Zd
S )r z,Wrap fs_use_* rules to allow set operations.ruletyper
r c C s0 || _ |j| _|j| _t|j| _t|| _d S )N)originr! r
r r hashkey)r r r r r __init__M s
zFSUseWrapper.__init__c C s | j S )N)r$ )r r r r __hash__T s zFSUseWrapper.__hash__c C s | j |j k S )N)r$ )r otherr r r __lt__W s zFSUseWrapper.__lt__c C s | j |j ko| j|jkS )N)r! r
)r r' r r r __eq__Z s zFSUseWrapper.__eq__N)r! r
r ) r r r r __slots__r% r&