Skip to content

Commit

Permalink
Considering label and target for evidence source information
Browse files Browse the repository at this point in the history
  • Loading branch information
raulikak committed May 13, 2024
1 parent 3b49fef commit 79f82be
Show file tree
Hide file tree
Showing 5 changed files with 20 additions and 10 deletions.
5 changes: 3 additions & 2 deletions tcsfw/batch_import.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,8 @@ def ext(value: str) -> bool:
reader = ZEDReader(self.interface.get_system())

if reader:
ev = info.source.rename(name=reader.tool.name, base_ref=file_path.as_posix())
ev = info.source.rename(name=reader.tool.name, base_ref=file_path.as_posix(),
label=info.label)
# tool-specific code can override, if knows better
ev.timestamp = datetime.fromtimestamp(file_path.stat().st_mtime)
self.evidence.setdefault(info.label, []).append(ev)
Expand Down Expand Up @@ -194,7 +195,7 @@ def _do_process_files(self, files: List[pathlib.Path], info: 'FileMetaInfo', ski
for fn in files:
if not fn.is_file():
continue # directories called later
ev = info.source.rename(name=tool.tool.name, base_ref=fn.as_posix())
ev = info.source.rename(name=tool.tool.name, base_ref=fn.as_posix(), label=info.label)
self.evidence.setdefault(info.label, []).append(ev)
with fn.open("rb") as f:
# tool-specific code can override, if knows better
Expand Down
3 changes: 2 additions & 1 deletion tcsfw/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -685,13 +685,14 @@ def __init__(self, name: str, base_ref="", label="",
self.address_map = address_map or {}
self.activity_map = activity_map or {}

def rename(self, name: Optional[str] = None, base_ref: Optional[str] = None,
def rename(self, name: Optional[str] = None, target: Optional[str] = None, base_ref: Optional[str] = None,
label: Optional[str] = None) -> Self:
s = EvidenceNetworkSource(
self.name if name is None else name,
self.base_ref if base_ref is None else base_ref,
self.label if label is None else label,
self.address_map, self.activity_map)
s.target = self.target if target is None else target
s.model_override = self.model_override
return s

Expand Down
10 changes: 5 additions & 5 deletions tcsfw/text_tables.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
class BaseTable:
"""Table base class"""
def __init__(self, columns: List[Tuple[str, int]], screen_size: Tuple[int, int]):
self.screen_size = screen_size
self.screen_size = screen_size # (width, height or -1)
self.columns = columns
# spread columns evenly
min_wid = sum(c[1] for c in columns) + len(columns) - 1
Expand All @@ -39,7 +39,7 @@ def print(self, stream: TextIO):
def print_rows(self, rows: List[List[Any]], stream: TextIO) -> str:
"""Print the rows"""
show_rows = len(rows)
drop_rows = show_rows - self.screen_size[1]
drop_rows = show_rows - self.screen_size[1] if self.screen_size[1] >= 0 else 0
if drop_rows > 0:
drop_rows += 1
show_rows -= drop_rows
Expand Down Expand Up @@ -131,8 +131,8 @@ class SourceTable(BaseTable):
def __init__(self, registry: Registry, screen_size: Tuple[int, int]):
super().__init__([
("Source", 20),
("Reference", 40),
("Status", 10),
("Target", 40),
("Label", 10),
("Age", 10),
], screen_size)
self.registry = registry
Expand All @@ -141,7 +141,7 @@ def print(self, stream: TextIO):
rows = [[h[0] for h in self.columns]]
sources = self.registry.database.get_souces()
for src in sources:
rows.append([src.name, src.base_ref, "", ""])
rows.append([src.name, src.target, src.label, ""])

self.print_rows(rows, stream)

Expand Down
2 changes: 2 additions & 0 deletions tcsfw/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ def process_file(self, data: BytesIO, file_name: str, interface: EventInterface,
key = self.file_name_map.get(file_name)
if key:
self.logger.info("processing (%s) %s", source.label, file_name)
source.target = str(key)
self.process_stream(key, data, interface, source)
return True
return False
Expand Down Expand Up @@ -156,6 +157,7 @@ def process_file(self, data: BytesIO, file_name: str, interface: EventInterface,
key = self.file_name_map.get(file_name)
if key:
self.logger.info("processing (%s) %s", source.label, file_name)
source.target = key.long_name()
self.process_stream(key, data, interface, source)
return True
return False
Expand Down
10 changes: 8 additions & 2 deletions tcsfw/traffic.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,20 @@ class EvidenceSource:
"""Evidence source"""
def __init__(self, name: str, base_ref="", label=""):
self.name = name
self.target = ''
self.base_ref = base_ref
self.label = label or base_ref or self.name
self.model_override = False # model loading overrides values
self.timestamp: Optional[datetime.datetime] = None

def rename(self, name: str) -> Self:
def rename(self, name: Optional[str] = None, target: Optional[str] = None, base_ref: Optional[str] = None,
label: Optional[str] = None) -> Self:
"""Rename and create new source"""
s = EvidenceSource(name, self.base_ref, self.label)
s = EvidenceSource(
name if name is not None else self.name,
self.base_ref if base_ref is None else base_ref,
self.label if label is None else label)
s.target = target if target is not None else self.target
s.model_override = self.model_override
return s

Expand Down

0 comments on commit 79f82be

Please sign in to comment.