Skip to content
Snippets Groups Projects
Commit 1035e277 authored by jkerdreu's avatar jkerdreu
Browse files

Added query_db test timeout

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2806 b32b6428-25c9-4566-ad07-03861ab6144f
parent 79e805e4
Branches
No related tags found
No related merge requests found
......@@ -32,7 +32,8 @@ setup(
'xaal-dumper = xaal.aiotools.toolbox:dumper',
'xaal-log = xaal.aiotools.toolbox:log',
'xaal-querydb = xaal.aiotools.toolbox:query_db',
'xaal-keygen = xaal.tools.keygen:main',
'xaal-keygen = xaal.tools.keygen:main',
'xaal-test = xaal.aiotools.toolbox:test',
# 'xaal-tail = xaal.tools.tail:main',
......
......@@ -142,6 +142,8 @@ class ToolboxHelper(object):
self.last_msg_time = 0
# display time
self.start_time = 0
self.db_server = None
# Let's start
self.setup_name()
......@@ -226,7 +228,7 @@ class ToolboxHelper(object):
target.alive = True
return target
def engine_wait(self,timeout=2):
def engine_wait(self,timeout=3):
""" run the engine until timeout """
self.engine.add_timer(self.quit,timeout)
self.engine.run()
......@@ -345,7 +347,6 @@ def is_alive():
dev_type = helper.get_filter_devtype()
async def alive_callback(msg):
await asyncio.sleep(0)
if (msg.source == dev.address) or (msg.is_alive() == False):
return
if match_dev_type(msg,dev_type) == False:
......@@ -366,7 +367,7 @@ def is_alive():
eng.on_start(run)
# idle detection
eng.new_task(helper.idle_detector())
helper.engine_wait(2)
helper.engine_wait()
#####################################################
......@@ -392,7 +393,6 @@ def info():
helper.exit_event.set()
async def info_callback(msg,addr=target):
await asyncio.sleep(0)
if msg.source != addr: return
found = helper.parse_msg(msg)
# Finish ?
......@@ -412,6 +412,7 @@ def info():
tmp.address = found
helper.add_device(tmp)
tmp.db = found_map
print(tmp.db)
display_quit(tmp)
async def run():
......@@ -426,7 +427,7 @@ def info():
eng.subscribe(info_callback)
eng.subscribe(query_db_callback)
eng.on_start(run)
helper.engine_wait(2)
helper.engine_wait()
#####################################################
# walker
......@@ -434,11 +435,11 @@ def info():
def walker():
helper = ToolboxHelper()
helper.parser.add_option("-t",dest="filter_type",help="only show given device type")
(_,args)=helper.parse()
(eng,dev) = helper.setup_basic()
dev_type = helper.get_filter_devtype()
(options,_)=helper.parse()
(eng,dev) = helper.setup_basic()
dev_type = helper.get_filter_devtype()
color = helper.options.no_color or 'color'
color = options.no_color or 'color'
def walker_callback(msg):
if msg.source == dev.address: return
......@@ -460,7 +461,7 @@ def walker():
eng.on_start(start)
# idle detection
eng.new_task(helper.idle_detector())
helper.engine_wait(2)
helper.engine_wait()
#####################################################
......@@ -507,7 +508,7 @@ def log():
#####################################################
def query_db():
helper = ToolboxHelper()
(options,args) = helper.parse()
(_,args) = helper.parse()
(eng,dev) = helper.setup_basic()
if len(args) !=1:
......@@ -519,7 +520,6 @@ def query_db():
# FIXME:
color = helper.options.no_color or 'color'
def query_db_callback(msg):
if not match_dev_type(msg,db_type):return
# new db server found
......@@ -533,7 +533,7 @@ def query_db():
if found == target:
r = []
r.append(['Metadata',''])
r.append(['============',''])
r.append(['========',''])
if color == 'color':
r.append(['Server:',colorize(Colors.ADDR,msg.source)])
else:
......@@ -555,5 +555,38 @@ def query_db():
eng.on_start(run)
# idle detection
eng.new_task(helper.idle_detector())
helper.engine_wait(2)
helper.engine_wait()
def test():
helper = ToolboxHelper()
(options,args) = helper.parse()
(eng,dev) = helper.setup_basic()
db_server_found = asyncio.Event()
def test_callback(msg):
if not match_dev_type(msg,db_type):return
# new db server found
if msg.is_alive():
helper.db_server = msg.source
db_server_found.set()
async def search_db():
eng.send_is_alive(dev,dev_types=[db_type,])
# wait for device to complete
try:
await asyncio.wait_for(db_server_found.wait(),timeout=0.3)
except asyncio.exceptions.TimeoutError:
print("No db server found")
else:
print("db server found %s" % helper.db_server)
eng.unsubscribe(test_callback)
async def run():
await search_db()
print("ready")
eng.subscribe(test_callback)
eng.on_start(run)
eng.new_task(helper.idle_detector())
helper.engine_wait()
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment