Skip to content
Snippets Groups Projects
Commit 874abc3d authored by jkerdreu's avatar jkerdreu
Browse files

- code refactoring

- switched to dark color

git-svn-id: https://redmine.imt-atlantique.fr/svn/xaal/code/Python/branches/0.7@2819 b32b6428-25c9-4566-ad07-03861ab6144f
parent a0f18a6a
No related branches found
No related tags found
No related merge requests found
......@@ -29,17 +29,30 @@ DB_DEV_TYPE = "metadatadb.basic"
class Colors(Enum):
DEFAULT = fore.WHITE
IS_ALIVE = fore.LIGHT_GREEN
# ALIVE = fore.LIGHT_GRAY
# ATTRIBUTS = fore.LIGHT_YELLOW
# REQUEST = fore.LIGHT_RED
# IS_ALIVE = fore.LIGHT_MAGENTA
# REPLY = fore.LIGHT_CYAN
# NOTIFY = fore.LIGHT_GREEN
# DEV_TYPE = fore.LIGHT_BLUE
# ADDR = fore.LIGHT_RED
# INFO = fore.CYAN
# DB = fore.SPRING_GREEN_1
ALIVE = fore.LIGHT_GRAY
ATTRIBUTS = fore.LIGHT_YELLOW
REQUEST = fore.LIGHT_RED
REPLY = fore.LIGHT_CYAN
NOTIFY = fore.LIGHT_MAGENTA
DEV_TYPE = fore.LIGHT_BLUE
ADDR = fore.LIGHT_RED
ATTRIBUTS = fore.YELLOW
REQUEST = fore.RED
IS_ALIVE = fore.MAGENTA
REPLY = fore.CYAN
NOTIFY = fore.LIGHT_GREEN
DEV_TYPE = fore.BLUE
ADDR = fore.RED
INFO = fore.CYAN
DB = fore.SPRING_GREEN_1
def __str__(self):
return self.value
......@@ -273,7 +286,12 @@ class ToolboxHelper(object):
def dump_msg(self,msg):
color = not self.options.no_color
color_value = self.color_for_msg(msg)
if color: print(color_value,end='')
msg.dump()
if color: print(style.RESET,end='')
def color_for_msg(self,msg):
color_value = Colors.DEFAULT
if msg.is_request_isalive():
color_value = Colors.IS_ALIVE
......@@ -287,11 +305,7 @@ class ToolboxHelper(object):
color_value = Colors.REPLY
elif msg.is_notify():
color_value = Colors.NOTIFY
if color: print(color_value,end='')
msg.dump()
if color: print(style.RESET,end='')
return color_value
def parse_msg(self,msg):
""" default parser used for info/walker"""
......@@ -369,7 +383,7 @@ class ToolboxHelper(object):
#####################################################
# start/stop/idle/error
#####################################################
async def wait_completed(self,timeout=0.3):
async def wait_completed(self,timeout=0.5):
await asyncio.wait([self.exit_event.wait(),],timeout=timeout)
def update_idle(self):
......@@ -428,6 +442,11 @@ def match_dev_type(msg,dev_type):
return True
return False
def match_address(msg,addr):
if (msg.source == addr) or (addr in msg.targets):
return True
return False
#####################################################
# dumper
......@@ -444,13 +463,10 @@ def dumper():
eng=helper.setup_engine()
async def dumper_callback(msg):
# filter by address
if target!=None:
if (msg.source != target) and (target not in msg.targets):
return
# filter on dev_type
if not match_dev_type(msg, dev_type):
return
# filter by address or dev_type
if target and not match_address(msg,target):return
if dev_type and not match_dev_type(msg, dev_type):return
# dump message
helper.dump_msg(msg)
......@@ -598,15 +614,10 @@ def log():
eng = helper.setup_engine()
def log_callback(msg):
if msg.is_alive() or (msg.action in HIDE_ACTION):
return
# address filter
if (target!=None):
if (target not in msg.targets + [msg.source,]):
return
# device type filter
if (match_dev_type(msg,dev_type) == False):
return
if msg.is_alive() or (msg.action in HIDE_ACTION):return
if target and not match_address(msg,target):return
if dev_type and not match_dev_type(msg, dev_type):return
color_value = Colors.DEFAULT
if msg.is_attributes_change(): color_value = Colors.ATTRIBUTS
elif msg.is_notify(): color_value=Colors.NOTIFY
......@@ -764,33 +775,27 @@ def tail():
def tail_callback(msg):
if msg.is_alive():
return
if msg.is_alive():return
if target and not match_address(msg,target):return
if dev_type and not match_dev_type(msg, dev_type):return
#if (msg.action in HIDE_ACTION):
# return
# FIXME: factorise w/ msg dump color
color_value = Colors.DEFAULT
if msg.is_request_isalive():
color_value = Colors.IS_ALIVE
elif msg.is_alive():
color_value = Colors.ALIVE
elif msg.is_attributes_change():
color_value = Colors.ATTRIBUTS
elif msg.is_request():
color_value = Colors.REQUEST
elif msg.is_reply():
color_value = Colors.REPLY
elif msg.is_notify():
color_value = Colors.NOTIFY
color_value = helper.color_for_msg(msg)
schem = '**'
#import pdb;pdb.set_trace()
if msg.msg_type == MessageType.REQUEST.value: schem = '>'
elif msg.msg_type == MessageType.REPLY.value: schem = '<'
elif msg.msg_type == MessageType.NOTIFY.value: schem = '='
targets = [tools.reduce_addr(addr) for addr in msg.targets]
tmp = shutil.get_terminal_size()[0] - (8 + 20 + 36 + 20 + 16 + 9)
tmp = shutil.get_terminal_size()[0] - (2 + 18 + 36 + 20 + 16 + 7)
if tmp < 50:
tmp = 50
BODY_FORMAT = '%-50.'+str(tmp)+'s'
FORMAT = '%-8.08s=> %-18.18s %-36.36s (%-20.20s) %-16.16s '+BODY_FORMAT
res = FORMAT % (type_to_string(msg.msg_type),msg.action,msg.source,msg.dev_type,targets,msg.body)
FORMAT = '%-2.02s %-18.18s %-36.36s (%-20.20s) %-16.16s '+BODY_FORMAT
res = FORMAT % (schem,msg.action,msg.source,msg.dev_type,targets,msg.body)
if color:
print(colorize(color_value,res))
else:
......@@ -798,8 +803,8 @@ def tail():
# FIXME: find a better way to do this
print('\x1bc',end='') # clear screen
FORMAT = '%-8.08s=> %-18.18s %-36.36s (%-20.20s) %-16.16s %-50.50s'
print(FORMAT % ('type','action','source','dev_type','targets','body'))
FORMAT = '%-2.02s %-18.18s %-36.36s (%-20.20s) %-16.16s %-50.50s'
print(FORMAT % ('=','action','source','dev_type','targets','body'))
eng.subscribe(tail_callback)
helper.run_forever()
......
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment