3 �^� � @ sV d dl Z d dlZddlmZ ddlmZ ddlmZ ddlm Z G dd� dee�Z dS ) � N� )�CriteriaDescriptor)�MatchContext)�PolicyQuery)�match_regexc sD e Zd ZdZdZed�ZdZed�ZdZ � fdd�Z dd � Z� ZS ) � GenfsconQuerya� Query genfscon statements. Parameter: policy The policy to query. Keyword Parameters/Class attributes: fs The criteria to match the file system type. fs_regex If true, regular expression matching will be used on the file system type. path The criteria to match the path. path_regex If true, regular expression matching will be used on the path. user The criteria to match the context's user. user_regex If true, regular expression matching will be used on the user. role The criteria to match the context's role. role_regex If true, regular expression matching will be used on the role. type_ The criteria to match the context's type. type_regex If true, regular expression matching will be used on the type. range_ The criteria to match the context's range. range_subset If true, the criteria will match if it is a subset of the context's range. range_overlap If true, the criteria will match if it overlaps any of the context's range. range_superset If true, the criteria will match if it is a superset of the context's range. range_proper If true, use proper superset/subset operations. No effect if not using set operations. N�fs_regexF� path_regexc s$ t t| �j|f|� tjt�| _d S )N)�superr �__init__�loggingZ getLogger�__name__�log)�self�policy�kwargs)� __class__� �%/usr/lib64/python3.6/genfsconquery.pyr E s zGenfsconQuery.__init__c c s� | j jdj| �� | j jdj| �� | j jdj| �� | j jdj| �� | j| j � xt| jj� D ]f}| jr�t|j| j| j � r�q`| j r�t|j | j | j� r�q`| jr�| j|jk r�q`| j |j�s�q`|V q`W dS )z.Generator which yields all matching genfscons.z+Generating genfscon results from {0.policy}z!FS: {0.fs!r}, regex: {0.fs_regex}z'Path: {0.path!r}, regex: {0.path_regex}zFiletype: {0.filetype!r}N)r �info�format�debugZ_match_context_debugr Z genfscons�fsr r �pathr �filetypeZ_match_context�context)r Zgenfsr r r �resultsI s* zGenfsconQuery.results) r � __module__�__qualname__�__doc__r r r r r r r r � __classcell__r r )r r r s !r )r �reZdescriptorsr Zmixinsr Zqueryr �utilr r r r r r �<module> s