Change: Reorganise class in correct files
This commit is contained in:
parent
e7c71cc825
commit
d32878fc2e
@ -9,7 +9,7 @@ import yaml
|
|||||||
import anyconfig
|
import anyconfig
|
||||||
from pprint import pprint
|
from pprint import pprint
|
||||||
|
|
||||||
from ansible_tree.files import BackendsManager, RulesManager
|
from ansible_tree.query import Query
|
||||||
from ansible_tree.utils import schema_validate
|
from ansible_tree.utils import schema_validate
|
||||||
import anyconfig
|
import anyconfig
|
||||||
# from box import Box
|
# from box import Box
|
||||||
@ -20,93 +20,86 @@ log = logging.getLogger(__name__)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Query():
|
#class Query():
|
||||||
|
#
|
||||||
matcher_merge_schema = {
|
# #matcher_merge_schema = {
|
||||||
"$schema": 'http://json-schema.org/draft-04/schema#',
|
# # "$schema": 'http://json-schema.org/draft-04/schema#',
|
||||||
"oneOf": [
|
# # "oneOf": [
|
||||||
{
|
# # {
|
||||||
"type": "array",
|
# # "type": "array",
|
||||||
"mergeStrategy": "append",
|
# # "mergeStrategy": "append",
|
||||||
# "mergeStrategy": "arrayMergeById",
|
## # "mergeStrategy": "arrayMergeById",
|
||||||
},
|
# # },
|
||||||
{
|
# # {
|
||||||
"type": "object",
|
# # "type": "object",
|
||||||
"mergeStrategy": "objectMerge",
|
# # "mergeStrategy": "objectMerge",
|
||||||
},
|
# # },
|
||||||
{
|
# # {
|
||||||
"type": "string",
|
# # "type": "string",
|
||||||
"mergeStrategy": "overwrite",
|
# # "mergeStrategy": "overwrite",
|
||||||
},
|
# # },
|
||||||
{
|
# # {
|
||||||
"type": "number",
|
# # "type": "number",
|
||||||
"mergeStrategy": "overwrite",
|
# # "mergeStrategy": "overwrite",
|
||||||
},
|
# # },
|
||||||
{
|
# # {
|
||||||
"type": "null",
|
# # "type": "null",
|
||||||
"mergeStrategy": "overwrite",
|
# # "mergeStrategy": "overwrite",
|
||||||
},
|
# # },
|
||||||
],
|
# # ],
|
||||||
}
|
# #}
|
||||||
|
#
|
||||||
def __init__(self, app):
|
# def __init__(self, app):
|
||||||
|
#
|
||||||
self.app = app
|
# self.app = app
|
||||||
|
#
|
||||||
self.key = None
|
#
|
||||||
self.scope = None
|
# #self.matcher_schema = {
|
||||||
|
# # "$schema": 'http://json-schema.org/draft-04/schema#',
|
||||||
self.paths = None
|
# # "type": "object",
|
||||||
self.data = None
|
# # "additionalProperties": False,
|
||||||
self.result = None
|
# # "properties": {
|
||||||
|
# # "rule": {
|
||||||
|
# # "type": "string",
|
||||||
self.matcher_schema = {
|
# # "default": ".*",
|
||||||
"$schema": 'http://json-schema.org/draft-04/schema#',
|
# # "optional": True,
|
||||||
"type": "object",
|
# # },
|
||||||
"additionalProperties": False,
|
# # "strategy": {
|
||||||
"properties": {
|
# # "type": "string",
|
||||||
"rule": {
|
# # "default": "merge",
|
||||||
"type": "string",
|
# # "optional": True,
|
||||||
"default": ".*",
|
# # "enum": ["first", "last", "merge"],
|
||||||
"optional": True,
|
# # },
|
||||||
},
|
# # "schema": {
|
||||||
"strategy": {
|
# # "type": "object",
|
||||||
"type": "string",
|
# # "default": self.matcher_merge_schema,
|
||||||
"default": "merge",
|
# # #"default": {},
|
||||||
"optional": True,
|
# # "optional": True,
|
||||||
"enum": ["first", "last", "merge"],
|
# # },
|
||||||
},
|
# # }
|
||||||
"schema": {
|
# # }
|
||||||
"type": "object",
|
#
|
||||||
"default": self.matcher_merge_schema,
|
#
|
||||||
#"default": {},
|
#
|
||||||
"optional": True,
|
# 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)
|
||||||
def exec(self, key=None, scope=None, policy=None, trace=False, explain=False):
|
# result = mm.get_result(candidates, key=key, trace=trace, explain=explain)
|
||||||
|
# return result
|
||||||
bm = BackendsManager(app=self.app)
|
#
|
||||||
mm = RulesManager(app=self.app)
|
# def dump(self):
|
||||||
|
#
|
||||||
log.debug(f"New query created")
|
# ret = {}
|
||||||
candidates = bm.query(key, scope, trace=trace)
|
# for i in dir(self):
|
||||||
result = mm.get_result(candidates, key=key, trace=trace, explain=explain)
|
# if not i.startswith('_'):
|
||||||
return result
|
# ret[i] = getattr(self, i)
|
||||||
|
#
|
||||||
def dump(self):
|
# pprint (ret)
|
||||||
|
#
|
||||||
ret = {}
|
|
||||||
for i in dir(self):
|
|
||||||
if not i.startswith('_'):
|
|
||||||
ret[i] = getattr(self, i)
|
|
||||||
|
|
||||||
pprint (ret)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class App():
|
class App():
|
||||||
@ -175,7 +168,6 @@ class App():
|
|||||||
log.error (f"Can't find namespace '{namespace}' in config '{config}'")
|
log.error (f"Can't find namespace '{namespace}' in config '{config}'")
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
# Init
|
# Init
|
||||||
if not conf2['config']['app']['root']:
|
if not conf2['config']['app']['root']:
|
||||||
conf2['config']['app']['root'] = Path(config).parent
|
conf2['config']['app']['root'] = Path(config).parent
|
||||||
@ -195,28 +187,3 @@ class App():
|
|||||||
print ("=== Query Result ===")
|
print ("=== Query Result ===")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
|
||||||
CONFIG_FILE='/home/jez/prj/bell/training/tiger-ansible/tree.yml'
|
|
||||||
app = App(CONFIG_FILE)
|
|
||||||
|
|
||||||
policy = None
|
|
||||||
|
|
||||||
#app.lookup(
|
|
||||||
# "my_key",
|
|
||||||
# policy=None,
|
|
||||||
# hostname="myhost-lab.it.ms.bell.ca",
|
|
||||||
# hostgroups=["Tiger", "Tiger/Test", "Tiger/Test/LastLvl"],
|
|
||||||
# hostgroup="Tiger/Test/LastLvl"
|
|
||||||
# )
|
|
||||||
|
|
||||||
|
|
||||||
# app.lookup(
|
|
||||||
# None,
|
|
||||||
# hostname="myhost-lab.it.ms.bell.ca",
|
|
||||||
# hostgroups=["Tiger", "Tiger/Test", "Tiger/Test/LastLvl"],
|
|
||||||
# hostgroup="Tiger/Test/LastLvl"
|
|
||||||
# )
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
print ("OKKKKK")
|
|
||||||
|
|||||||
51
ansible_tree/query.py
Executable file
51
ansible_tree/query.py
Executable file
@ -0,0 +1,51 @@
|
|||||||
|
#!/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 ansible_tree.managers import BackendsManager, RulesManager
|
||||||
|
from ansible_tree.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)
|
||||||
|
|
||||||
|
|
||||||
Loading…
x
Reference in New Issue
Block a user