
­­­­­­­­­­­­­­­­­­
<!DOCTYPE html>
<html>
3
^                 @   sV   d dl Z d dlZddlmZ ddlmZ ddlmZ ddlm	Z	 G dd deeZ
dS )	    N   )CriteriaDescriptor)MatchContext)PolicyQuery)match_regexc                   sD   e Zd ZdZdZedZdZedZdZ	 fddZ
dd	 Z  ZS )
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| tjt| _d S )N)superr   __init__loggingZ	getLogger__name__log)selfpolicykwargs)	__class__ %/usr/lib64/python3.6/genfsconquery.pyr   E   s    zGenfsconQuery.__init__c             c   s   | j jdj|  | j jdj|  | j jdj|  | j jdj|  | j| j  xt| jj D ]f}| jrt|j| j| j	 rq`| j
rt|j
| j
| j rq`| jr| j|jk rq`| j|jsq`|V  q`W dS )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}zFiletype: {0.filetype!r}N)r   infoformatdebugZ_match_context_debugr   Z	genfsconsfsr   r   pathr	   filetypeZ_match_contextcontext)r   Zgenfsr   r   r   resultsI   s*    

zGenfsconQuery.results)r   
__module____qualname____doc__r   r   r   r   r   r	   r   r   __classcell__r   r   )r   r   r      s   !r   )r   reZdescriptorsr   Zmixinsr   Zqueryr   utilr   r   r   r   r   r   <module>   s   