mirror of
https://github.com/ceph/ceph
synced 2024-12-25 21:03:31 +00:00
doc parse two lines for getting the context
So that signatures can get parsed when they are split like: PG::RecoveryState::RepWaitBackfillReserved::react( const RemoteReservationCanceled &evt) Signed-off-by: Alfredo Deza <adeza@redhat.com>
This commit is contained in:
parent
347b7b1f19
commit
9e2a52ccec
@ -84,14 +84,22 @@ class StateMachineRenderer(object):
|
||||
)
|
||||
|
||||
def read_input(self, input_lines):
|
||||
previous_line = None
|
||||
for line in input_lines:
|
||||
self.get_state(line)
|
||||
self.get_event(line)
|
||||
self.get_context(line)
|
||||
# pass two lines at a time to get the context so that regexes can
|
||||
# match on split signatures
|
||||
self.get_context(line, previous_line)
|
||||
previous_line = line
|
||||
|
||||
def get_context(self, line):
|
||||
match = re.search(r"(\w+::)*::(?P<tag>\w+)::\w+\(const (?P<event>\w+)",
|
||||
line)
|
||||
def get_context(self, line, previous_line):
|
||||
match = re.search(r"(\w+::)*::(?P<tag>\w+)::\w+\(const (?P<event>\w+)", line)
|
||||
if match is None and previous_line is not None:
|
||||
# it is possible that we need to match on the previous line as well, so join
|
||||
# them to make them one line and try and get this matching
|
||||
joined_line = ' '.join([previous_line, line])
|
||||
match = re.search(r"(\w+::)*::(?P<tag>\w+)::\w+\(\s*const (?P<event>\w+)", joined_line)
|
||||
if match is not None:
|
||||
self.context.append((match.group('tag'), self.context_depth, match.group('event')))
|
||||
if '{' in line:
|
||||
|
Loading…
Reference in New Issue
Block a user