51 lines
1.0 KiB
Python
51 lines
1.0 KiB
Python
#!/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)
|