always show message details in status top (#933)

This commit is contained in:
bmc-msft
2021-05-26 14:22:24 -04:00
committed by GitHub
parent c107a04cf9
commit 2f1fc61f01
3 changed files with 8 additions and 17 deletions

View File

@ -113,12 +113,11 @@ class Status(Command):
def top( def top(
self, self,
*, *,
show_details: bool = False,
job_id: Optional[List[UUID]] = None, job_id: Optional[List[UUID]] = None,
project: Optional[List[str]] = None, project: Optional[List[str]] = None,
name: Optional[List[str]] = None, name: Optional[List[str]] = None,
) -> None: ) -> None:
"""Onefuzz Top""" """Onefuzz Top"""
job_filter = JobFilter(job_id=job_id, project=project, name=name) job_filter = JobFilter(job_id=job_id, project=project, name=name)
top = Top(self.onefuzz, self.logger, show_details, job_filter) top = Top(self.onefuzz, self.logger, job_filter)
top.run() top.run()

View File

@ -33,12 +33,10 @@ class Top:
self, self,
onefuzz: "Onefuzz", onefuzz: "Onefuzz",
logger: logging.Logger, logger: logging.Logger,
show_details: bool,
job_filter: JobFilter, job_filter: JobFilter,
): ):
self.onefuzz = onefuzz self.onefuzz = onefuzz
self.logger = logger self.logger = logger
self.show_details = show_details
self.cache = TopCache(onefuzz, job_filter) self.cache = TopCache(onefuzz, job_filter)
self.queue: PriorityQueue = PriorityQueue() self.queue: PriorityQueue = PriorityQueue()
@ -97,7 +95,7 @@ class Top:
error: Optional[Exception] = None error: Optional[Exception] = None
try: try:
self.logger.info("rendering") self.logger.info("rendering")
render(self.cache, self.show_details) render(self.cache)
client.stop() client.stop()
except Exception as err: except Exception as err:
error = err error = err

View File

@ -46,13 +46,12 @@ def column_config(fields: Optional[List[str]]) -> List[Union[int, str]]:
class TopView(Frame): class TopView(Frame):
def __init__(self, screen: Any, cache: TopCache, show_details: bool): def __init__(self, screen: Any, cache: TopCache):
super(TopView, self).__init__( super(TopView, self).__init__(
screen, screen.height, screen.width, has_border=True, can_scroll=False screen, screen.height, screen.width, has_border=True, can_scroll=False
) )
self.cache = cache self.cache = cache
self.show_details = show_details
self.set_theme("monochrome") self.set_theme("monochrome")
self.palette["title"] = ( self.palette["title"] = (
Screen.COLOUR_BLACK, Screen.COLOUR_BLACK,
@ -95,9 +94,6 @@ class TopView(Frame):
} }
for name in ["status", "pools", "jobs", "tasks", "messages"]: for name in ["status", "pools", "jobs", "tasks", "messages"]:
if name == "messages" and not self.show_details:
continue
titles = dimensions[name].get("setup") titles = dimensions[name].get("setup")
if titles: if titles:
@ -171,9 +167,7 @@ class TopView(Frame):
self.render_base("pools", self.cache.render_pools()) self.render_base("pools", self.cache.render_pools())
self.render_base("jobs", self.cache.render_jobs()) self.render_base("jobs", self.cache.render_jobs())
self.render_base("tasks", self.cache.render_tasks()) self.render_base("tasks", self.cache.render_tasks())
self.render_base("messages", self.cache.messages)
if self.show_details:
self.render_base("messages", self.cache.messages)
super(TopView, self).update(frame_no) super(TopView, self).update(frame_no)
@ -182,16 +176,16 @@ class TopView(Frame):
return 25 return 25
def render(data: TopCache, show_details: bool) -> None: def render(data: TopCache) -> None:
while True: while True:
try: try:
Screen.wrapper( Screen.wrapper(
lambda screen, data_ref, show_details: screen.play( lambda screen, data_ref: screen.play(
[Scene([TopView(screen, data_ref, show_details)], -1)], [Scene([TopView(screen, data_ref)], -1)],
stop_on_resize=True, stop_on_resize=True,
), ),
catch_interrupt=True, catch_interrupt=True,
arguments=[data, show_details], arguments=[data],
) )
return return
except ResizeScreenError: except ResizeScreenError: