509318396
Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­Â�Â­
<!DOCTYPE html>
<html>
3
í«„^×  ã               @   sN   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é   )ÚMatchContext)ÚIoportconRange)ÚPolicyQuery)Úmatch_rangec                   sV   e Zd ZdZdZdZdZdZdZe	dd„ ƒZ
e
jdd„ ƒZ
‡ fdd„Zd	d
„ Z‡  ZS )ÚIoportconQueryað  
    Ioportcon context query.

    Parameter:
    policy          The policy to query.

    Keyword Parameters/Class attributes:
    ports           A 2-tuple of the port range to match. (Set both to
                    the same value for a single port)
    ports_subset    If true, the criteria will match if it is a subset
                    of the ioportcon's range.
    ports_overlap   If true, the criteria will match if it overlaps
                    any of the ioportcon's range.
    ports_superset  If true, the criteria will match if it is a superset
                    of the ioportcon's range.
    ports_proper    If true, use proper superset/subset operations.
                    No effect if not using set operations.

    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.
    NFc             C   s   | j S )N)Ú_ports)Úself© r
   ú&/usr/lib64/python3.6/ioportconquery.pyÚportsL   s    zIoportconQuery.portsc             C   s^   t |Ž }t|ƒrT|jdk s$|jdk r2tdj|ƒƒ‚|j|jkrLtdj|ƒƒ‚|| _nd | _d S )Nr   z/Port numbers must be positive: {0.low}-{0.high}zAThe low port must be smaller than the high port: {0.low}-{0.high})r   ÚallZlowZhighÚ
ValueErrorÚformatr   )r	   ÚvalueZpending_portsr
   r
   r   r   P   s    c                s$   t t| ƒj|f|Ž tjtƒ| _d S )N)Úsuperr   Ú__init__ÚloggingZ	getLoggerÚ__name__Úlog)r	   ÚpolicyÚkwargs)Ú	__class__r
   r   r   b   s    zIoportconQuery.__init__c             c   s„   | j jdj| ƒƒ | j jdj| ƒƒ | j| j ƒ xN| jjƒ D ]@}| jrht|j| j| j	| j
| j| jƒ rhq<| j|jƒsvq<|V  q<W dS )z/Generator which yields all matching ioportcons.z"Generating results from {0.policy}z€Ports: {0.ports!r}, overlap: {0.ports_overlap}, subset: {0.ports_subset}, superset: {0.ports_superset}, proper: {0.ports_proper}N)r   Úinfor   ÚdebugZ_match_context_debugr   Z
ioportconsr   r   Úports_subsetÚports_overlapÚports_supersetÚports_properZ_match_contextÚcontext)r	   Z	ioportconr
   r
   r   Úresultsf   s     

zIoportconQuery.results)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   Úpropertyr   Úsetterr   r    Ú__classcell__r
   r
   )r   r   r      s   )r   )
r   Zmixinsr   Z	policyrepr   Zqueryr   Úutilr   r   r
   r
   r
   r   Ú<module>   s
   