3
^1 @ sb d dl Z d dlZddlmZ ddlmZmZ ddlmZ ddl m
Z
mZmZ G dd deeZ
dS ) N )PolicyQuery)CriteriaDescriptorCriteriaSetDescriptor)
MatchObjClass)DefaultRuletypeDefaultValueDefaultRangeValuec sF e Zd ZdZeedZeedZ ee
dZ fddZdd 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_classc s$ t t| j|f| tjt| _d S )N)superr
__init__loggingZ getLogger__name__log)selfpolicykwargs) __class__ $/usr/lib64/python3.6/defaultquery.pyr
2 s zDefaultQuery.__init__c c s | j jdj| | j jdj| | j| j | j jdj| | j jdj| x|| jj D ]n}| jrx|j| jkrxq`| j|sq`| j r|j | j krq`| j
ry|j
| j
krw`W n tk
r w`Y nX |V q`W 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 infoformatdebugZ_match_object_class_debugr ZdefaultsruletypeZ_match_object_classdefault
default_rangeAttributeError)r dr r r results6 s&