diff options
Diffstat (limited to 'lib/python2.7/site-packages/setools/query.py')
-rwxr-xr-x[-rw-r--r--] | lib/python2.7/site-packages/setools/query.py | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/lib/python2.7/site-packages/setools/query.py b/lib/python2.7/site-packages/setools/query.py index 358a095..4cf589e 100644..100755 --- a/lib/python2.7/site-packages/setools/query.py +++ b/lib/python2.7/site-packages/setools/query.py @@ -24,8 +24,6 @@ class PolicyQuery(object): """Base class for SELinux policy queries.""" def __init__(self, policy, **kwargs): - self.log = logging.getLogger(self.__class__.__name__) - self.policy = policy # keys are sorted in reverse order so regex settings @@ -40,150 +38,6 @@ class PolicyQuery(object): setattr(self, name, kwargs[name]) - @staticmethod - def _match_regex(obj, criteria, regex): - """ - Match the object with optional regular expression. - - Parameters: - obj The object to match. - criteria The criteria to match. - regex If regular expression matching should be used. - """ - - if regex: - return bool(criteria.search(str(obj))) - else: - return obj == criteria - - @staticmethod - def _match_set(obj, criteria, equal): - """ - Match the object (a set) with optional set equality. - - Parameters: - obj The object to match. (a set) - criteria The criteria to match. (a set) - equal If set equality should be used. Otherwise - any set intersection will match. - """ - - if equal: - return obj == criteria - else: - return bool(obj.intersection(criteria)) - - @staticmethod - def _match_in_set(obj, criteria, regex): - """ - Match if the criteria is in the list, with optional - regular expression matching. - - Parameters: - obj The object to match. - criteria The criteria to match. - regex If regular expression matching should be used. - """ - - if regex: - return [m for m in obj if criteria.search(str(m))] - else: - return criteria in obj - - @staticmethod - def _match_indirect_regex(obj, criteria, indirect, regex): - """ - Match the object with optional regular expression and indirection. - - Parameters: - obj The object to match. - criteria The criteria to match. - regex If regular expression matching should be used. - indirect If object indirection should be used, e.g. - expanding an attribute. - """ - - if indirect: - return PolicyQuery._match_in_set((obj.expand()), criteria, regex) - else: - return PolicyQuery._match_regex(obj, criteria, regex) - - @staticmethod - def _match_regex_or_set(obj, criteria, equal, regex): - """ - Match the object (a set) with either set comparisons - (equality or intersection) or by regex matching of the - set members. Regular expression matching will override - the set equality option. - - Parameters: - obj The object to match. (a set) - criteria The criteria to match. - equal If set equality should be used. Otherwise - any set intersection will match. Ignored - if regular expression matching is used. - regex If regular expression matching should be used. - """ - - if regex: - return [m for m in obj if criteria.search(str(m))] - else: - return PolicyQuery._match_set(obj, set(criteria), equal) - - @staticmethod - def _match_range(obj, criteria, subset, overlap, superset, proper): - """ - Match ranges of objects. - - obj An object with attributes named "low" and "high", representing the range. - criteria An object with attributes named "low" and "high", representing the criteria. - subset If true, the criteria will match if it is a subset obj's range. - overlap If true, the criteria will match if it overlaps any of the obj's range. - superset If true, the criteria will match if it is a superset of the obj's range. - proper If true, use proper superset/subset operations. - No effect if not using set operations. - """ - - if overlap: - return ((obj.low <= criteria.low <= obj.high) or ( - obj.low <= criteria.high <= obj.high) or ( - criteria.low <= obj.low and obj.high <= criteria.high)) - elif subset: - if proper: - return ((obj.low < criteria.low and criteria.high <= obj.high) or ( - obj.low <= criteria.low and criteria.high < obj.high)) - else: - return obj.low <= criteria.low and criteria.high <= obj.high - elif superset: - if proper: - return ((criteria.low < obj.low and obj.high <= criteria.high) or ( - criteria.low <= obj.low and obj.high < criteria.high)) - else: - return (criteria.low <= obj.low and obj.high <= criteria.high) - else: - return criteria.low == obj.low and obj.high == criteria.high - - @staticmethod - def _match_level(obj, criteria, dom, domby, incomp): - """ - Match the an MLS level. - - obj The level to match. - criteria The criteria to match. (a level) - dom If true, the criteria will match if it dominates obj. - domby If true, the criteria will match if it is dominated by obj. - incomp If true, the criteria will match if it is incomparable to obj. - """ - - if dom: - return (criteria >= obj) - elif domby: - return (criteria <= obj) - elif incomp: - return (criteria ^ obj) - else: - return (criteria == obj) - def results(self): """ Generator which returns the matches for the query. This method |