kheops/albero/query.py

51 lines
1.0 KiB
Python
Executable File

#!/usr/bin/env python3
# import sys
# sys.path.append("/home/jez/prj/bell/training/tiger-ansible/ext/ansible-tree")
import sys
import yaml
import anyconfig
from pprint import pprint
from albero.managers import BackendsManager, RulesManager
from albero.utils import schema_validate
import anyconfig
# from box import Box
from pathlib import Path
import logging
log = logging.getLogger(__name__)
# Query
##########################################
class Query:
def __init__(self, app):
self.app = app
def exec(self, key=None, scope=None, policy=None, trace=False, explain=False):
bm = BackendsManager(app=self.app)
mm = RulesManager(app=self.app)
log.debug(f"New query created")
candidates = bm.query(key, scope, trace=trace)
result = mm.get_result(candidates, key=key, trace=trace, explain=explain)
return result
def dump(self):
ret = {}
for i in dir(self):
if not i.startswith("_"):
ret[i] = getattr(self, i)
pprint(ret)