Improved parsing of bugreports by finding dumpstate file name from main_entry.txt

This commit is contained in:
Nex 2022-02-04 13:34:40 +01:00
parent 3fe5d8dc8d
commit 6fc6102b73
9 changed files with 33 additions and 40 deletions

View File

@ -33,12 +33,9 @@ class Accessibility(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
lines = []

View File

@ -36,12 +36,9 @@ class Activities(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
lines = []

View File

@ -51,3 +51,20 @@ class BugReportModule(MVTModule):
handle.close()
return data
def _get_dumpstate_file(self):
main = self._get_files_by_pattern("main_entry.txt")
if main:
main_content = self._get_file_content(main[0])
try:
return self._get_file_content(main_content.decode().strip())
except KeyError:
return None
else:
dumpstate_logs = self._get_files_by_pattern("dumpState_*.log")
if not dumpstate_logs:
return None
return self._get_file_content(dumpstate_logs[0])
return None

View File

@ -41,12 +41,9 @@ class BatteryDaily(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
lines = []

View File

@ -33,12 +33,9 @@ class BatteryHistory(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
lines = []

View File

@ -37,12 +37,9 @@ class DBInfo(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
in_dbinfo = False

View File

@ -25,12 +25,9 @@ class Getprop(BugReportModule):
self.results = {} if not results else results
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
lines = []

View File

@ -84,12 +84,9 @@ class Packages(BugReportModule):
return results
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
in_package = False

View File

@ -58,12 +58,9 @@ class Receivers(BugReportModule):
continue
def run(self):
dumpstate_files = self._get_files_by_patterns(["dumpstate-*.txt", "dumpState_*.log", "bugreport-*.txt"])
if not dumpstate_files:
return
content = self._get_file_content(dumpstate_files[0])
content = self._get_dumpstate_file()
if not content:
self.log.error("Unable to find dumpstate file. Did you provide a valid bug report archive?")
return
in_receivers = False