Skip to content
Snippets Groups Projects
Commit 4e595a74 authored by jkerdreu's avatar jkerdreu
Browse files

Enable querydb on multiple db servers



git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2634 b32b6428-25c9-4566-ad07-03861ab6144f
parent 1bd5c4f2
Branches
No related tags found
No related merge requests found
......@@ -26,15 +26,16 @@ setup(
entry_points = {
'console_scripts': [
'xaal-isalive = xaal.tools.isalive:main',
'xaal-info = xaal.tools.info:main',
'xaal-dumper = xaal.tools.dumper:main',
'xaal-tail = xaal.tools.tail:main',
'xaal-walker = xaal.tools.walker:main',
'xaal-keygen = xaal.tools.keygen:main',
'xaal-log = xaal.tools.log:main',
'xaal-querydb = xaal.tools.querydb:main',
'xaal-pkgrun = xaal.tools.pkgrun:main',
'xaal-isalive = xaal.tools.isalive:main',
'xaal-info = xaal.tools.info:main',
'xaal-dumper = xaal.tools.dumper:main',
'xaal-tail = xaal.tools.tail:main',
'xaal-walker = xaal.tools.walker:main',
'xaal-keygen = xaal.tools.keygen:main',
'xaal-log = xaal.tools.log:main',
'xaal-querydb = xaal.tools.querydb:main',
'xaal-pkgrun = xaal.tools.pkgrun:main',
'xaal-uuidgen = xaal.tools.uuidgen:main',
],
},
......
......@@ -54,7 +54,7 @@ class Scanner:
t0 = time.time()
while 1:
self.eng.loop()
if time.time() > (t0 + 2):
if time.time() > (t0 + 1):
break
def parse_answer(self,msg):
......
......@@ -17,8 +17,10 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from xaal.lib import Engine, Device
from xaal.lib import Engine, Device, MessageType
from xaal.lib import tools
from . import isalive
import sys
import json
......@@ -32,70 +34,53 @@ def usage():
class QueryDB:
def __init__(self,engine):
def __init__(self,engine,db_servers):
self.eng = engine
self.db_servers = db_servers
# new fake device
self.addr = tools.get_random_uuid()
self.dev = Device("cli.experimental",self.addr)
self.eng.add_device(self.dev)
self.eng.add_rx_handler(self.parse_answer)
print("xAAL Info dumper [%s]" % self.addr)
print("xAAL DB query [%s]" % self.addr)
def query(self,addr):
""" send getDescription & getAttributes and wait for reply"""
self.msgCnt = 0
self.timer = 0
mf = self.eng.msg_factory
body = {'device': addr,}
msg = mf.build_msg(self.dev,[], 'request','getKeysValues',body)
msg = mf.build_msg(self.dev,self.db_servers, MessageType.REQUEST,'get_keys_values',body)
self.eng.queue_msg(msg)
"""
body = {'device': '2f31c922-01b2-4097-bfae-5753dde2cd41','key':'location'}
msg = mf.build_msg(self.dev,[], 'request','getValue',body)
self.eng.queue_tx(msg)
"""
""" _map = {'nickname' : 'goo','size':'small'}
body = {'device': 'ccc44227-d4fc-46eb-8578-159e2c47d000','map':_map}
msg = mf.build_msg(self.dev,[], 'request','updateKeysValues',body)
self.eng.queue_tx(msg)
"""
term('cyan')
print("** Device : [%s]" % addr)
term()
while 1:
self.eng.loop()
if self.timer > 30:
if self.timer > 40:
print("TimeOut...")
break
if self.msgCnt == 1:break
self.timer += 1
print('\n')
def parse_answer(self,msg):
""" message parser """
if msg.is_reply():
#print(msg)
if self.addr in msg.targets:
print(json.dumps(msg.body,sort_keys=True,indent=4))
self.msgCnt += 1
if (self.addr in msg.targets) and (msg.action == 'get_keys_values'):
term('yellow')
print("%s => " % msg.source,end='')
print(msg.body)
term()
def main():
if len(sys.argv) == 2:
addr = sys.argv[1]
if tools.is_valid_addr(addr):
addr = tools.get_uuid(sys.argv[1])
if tools.is_valid_address(addr):
t0 = time.time()
eng = Engine()
eng.start()
dev = QueryDB(eng)
db_servers = isalive.search(eng,'metadatadb.basic')
dev = QueryDB(eng,db_servers)
dev.query(addr)
print("Time : %0.3f sec" % (time.time() -t0))
else:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment