a
qéqe$ ã @ sz d dl Z d dlZd dlmZmZ ddlmZ ddlmZm Z ddl
mZ ddlm
Z
mZmZmZmZ G dd „ d eeƒZdS )
é N)ÚcastÚIterableé )ÚPolicyQuery)ÚCriteriaDescriptorÚCriteriaSetDescriptor)Ú
MatchObjClass)Ú
AnyDefaultÚDefaultRangeÚDefaultRuletypeÚDefaultValueÚDefaultRangeValuec sV e Zd ZdZeed�Zeed�Z ee
d�Zddœ‡ fdd„Ze
e dœdd„Z‡ ZS ) ÚDefaultQuerya#
Query default_* statements.
Parameter:
policy The policy to query.
Keyword Parameters/Class attributes:
ruletype The rule type(s) to match.
tclass The object class(es) to match.
tclass_regex If true, use a regular expression for
matching the rule's object class.
default The default to base new contexts (e.g. "source" or "target")
default_range The range to use on new context, default_range only
("low", "high", "low_high")
)Ú
enum_classN)Úreturnc s( t t| ƒj|fi |¤Ž t t¡| _d S )N)Úsuperr Ú__init__ÚloggingZ getLoggerÚ__name__Úlog)ÚselfÚpolicyÚkwargs©Ú __class__© ú:/usr/lib64/python3.9/site-packages/setools/defaultquery.pyr % s zDefaultQuery.__init__c c sÚ | j d | ¡¡ | j d | ¡¡ | | j ¡ | j d | ¡¡ | j d | ¡¡ | j ¡ D ]v}| jrv|j| jvrvq^| |¡s‚q^| j r–|j | j kr–q^| j
rÎztt|ƒj
| j
kr´W q^W n t
yÌ Y q^Y n0 |V q^dS )z9Generator which yields all matching default_* statements.z,Generating default_* results from {0.policy}zRuletypes: {0.ruletype!r}zDefault: {0.default!r}zRange: {0.default_range!r}N)r ÚinfoÚformatÚdebugZ_match_object_class_debugr ÚdefaultsÚruletypeZ_match_object_classÚdefaultÚ
default_ranger r
ÚAttributeError)r Údr r r Úresults) s&