def run(self, cmdline, db) -> None: if not cmdline.SOLUTION_ID: db_solutions = get_sf_prefilter_sols(db) else: db_solutions = [] for solution_id in cmdline.SOLUTION_ID: db_solution = get_sf_prefilter_sol(db, solution_id) if db_solution is None: self.log_warn( "Solution '{0}' not found".format(solution_id)) continue db_solutions.append(db_solution) first = True for db_solution in db_solutions: if first: first = False else: print("----------") print("Solution #{0}: {1}".format(db_solution.id, db_solution.cause)) db_btpaths = get_sf_prefilter_btpaths_by_solution(db, db_solution) for db_btpath in db_btpaths: if db_btpath.opsys is not None: opsys_str = ( " (only valid for '{0}' operating system)".format( db_btpath.opsys.name)) else: opsys_str = "" print("Stacktrace path pattern: {0}{1}".format( db_btpath.pattern, opsys_str)) db_pkgnames = get_sf_prefilter_pkgnames_by_solution( db, db_solution) for db_pkgname in db_pkgnames: if db_pkgname.opsys is not None: opsys_str = ( " (only valid for '{0}' operating system)".format( db_pkgname.opsys.name)) else: opsys_str = "" print("Package name pattern: {0}{1}".format( db_pkgname.pattern, opsys_str))
def run(self, cmdline, db): if len(cmdline.SOLUTION_ID) < 1: db_solutions = get_sf_prefilter_sols(db) else: db_solutions = [] for solution_id in cmdline.SOLUTION_ID: db_solution = get_sf_prefilter_sol(db, solution_id) if db_solution is None: self.log_warn("Solution '{0}' not found" .format(solution_id)) continue db_solutions.append(db_solution) first = True for db_solution in db_solutions: if first: first = False else: print "----------" print "Solution #{0}: {1}".format(db_solution.id, db_solution.cause) db_btpaths = get_sf_prefilter_btpaths_by_solution(db, db_solution) for db_btpath in db_btpaths: if db_btpath.opsys is not None: opsys_str = (" (only valid for '{0}' operating system)" .format(db_btpath.opsys.name)) else: opsys_str = "" print ("Stacktrace path pattern: {0}{1}" .format(db_btpath.pattern, opsys_str)) db_pkgnames = get_sf_prefilter_pkgnames_by_solution(db, db_solution) for db_pkgname in db_pkgnames: if db_pkgname.opsys is not None: opsys_str = (" (only valid for '{0}' operating system)" .format(db_pkgname.opsys.name)) else: opsys_str = "" print ("Package name pattern: {0}{1}" .format(db_pkgname.pattern, opsys_str))
def run(self, cmdline, db): if len(cmdline.ID) < 1: db_solutions = get_sf_prefilter_sols(db) else: db_solutions = [] for solution_id in cmdline.ID: db_solution = get_sf_prefilter_sol(db, solution_id) if db_solution is None: self.log_warn( "Solution '{0}' not found".format(solution_id)) continue db_solutions.append(db_solution) first = True for db_solution in db_solutions: if first: first = False else: print("----------") print("Solution #{0}".format(db_solution.id)) print("Cause: {0}".format(db_solution.cause)) if db_solution.url is not None: print("URL: {0}".format(db_solution.url)) if "\n" in db_solution.note_text: print("Note:\n{0}".format(db_solution.note_text)) else: print("Note: {0}".format(db_solution.note_text)) if db_solution.note_html is not None: if "\n" in db_solution.note_text: print("HTML Note:\n{0}".format(db_solution.note_html)) else: print("HTML Note: {0}".format(db_solution.note_html))
def run(self, cmdline, db): if not cmdline.ID: db_solutions = get_sf_prefilter_sols(db) else: db_solutions = [] for solution_id in cmdline.ID: db_solution = get_sf_prefilter_sol(db, solution_id) if db_solution is None: self.log_warn("Solution '{0}' not found" .format(solution_id)) continue db_solutions.append(db_solution) first = True for db_solution in db_solutions: if first: first = False else: print("----------") print("Solution #{0}".format(db_solution.id)) print("Cause: {0}".format(db_solution.cause)) if db_solution.url is not None: print("URL: {0}".format(db_solution.url)) if "\n" in db_solution.note_text: print("Note:\n{0}".format(db_solution.note_text)) else: print("Note: {0}".format(db_solution.note_text)) if db_solution.note_html is not None: if "\n" in db_solution.note_text: print("HTML Note:\n{0}".format(db_solution.note_html)) else: print("HTML Note: {0}".format(db_solution.note_html))
def run(self, cmdline, db): db_solution = get_sf_prefilter_sol(db, cmdline.SOLUTION) if db_solution is None: self.log_error("Unable to find solution '{0}'" .format(cmdline.SOLUTION)) return 1 if cmdline.opsys is not None: if cmdline.opsys not in systems: self.log_error("Operating system '{0}' is not supported" .format(cmdline.opsys)) return 1 osplugin = systems[cmdline.opsys] db_opsys = get_opsys_by_name(db, osplugin.nice_name) if db_opsys is None: self.log_error("Operating system '{0}' is not installed " "in storage".format(osplugin.nice_name)) return 1 else: db_opsys = None self.log_info("Adding patterns for '{0}'".format(db_solution.cause)) if db_opsys is not None: self.log_info("Limitting patterns to operating system '{0}'" .format(db_opsys.name)) for btpath in cmdline.btpath: self.log_debug("Processing stacktrace path pattern: {0}" .format(btpath)) db_btpath = get_sf_prefilter_btpath_by_pattern(db, btpath) if db_btpath is not None: self.log_debug("Stacktrace path pattern {0} already exists" .format(btpath)) continue try: re.compile(btpath) except re.error as ex: self.log_warn("Stacktrace path pattern {0} can not be " "compiled: {1}".format(btpath, str(ex))) continue self.log_info("Adding new stacktrace path pattern: {0}" .format(btpath)) db_btpath = SfPrefilterBacktracePath() db_btpath.solution = db_solution db_btpath.opsys = db_opsys db_btpath.pattern = btpath db.session.add(db_btpath) for pkgname in cmdline.pkgname: self.log_debug("Processing package name pattern: {0}" .format(pkgname)) db_btpath = get_sf_prefilter_pkgname_by_pattern(db, pkgname) if db_btpath is not None: self.log_debug("Package name pattern {0} already exists" .format(pkgname)) continue try: re.compile(pkgname) except re.error as ex: self.log_warn("Package name pattern {0} can not be " "compiled: {1}".format(pkgname, str(ex))) continue self.log_info("Adding new package name pattern: {0}" .format(pkgname)) db_pkgname = SfPrefilterPackageName() db_pkgname.solution = db_solution db_pkgname.opsys = db_opsys db_pkgname.pattern = pkgname db.session.add(db_pkgname) db.session.flush() return 0
def run(self, cmdline, db): db_solution = get_sf_prefilter_sol(db, cmdline.SOLUTION) if db_solution is None: self.log_error("Unable to find solution '{0}'".format( cmdline.SOLUTION)) return 1 if cmdline.opsys is not None: if cmdline.opsys not in systems: self.log_error( "Operating system '{0}' is not supported".format( cmdline.opsys)) return 1 osplugin = systems[cmdline.opsys] db_opsys = get_opsys_by_name(db, osplugin.nice_name) if db_opsys is None: self.log_error("Operating system '{0}' is not installed " "in storage".format(osplugin.nice_name)) return 1 else: db_opsys = None self.log_info("Adding patterns for '{0}'".format(db_solution.cause)) if db_opsys is not None: self.log_info( "Limitting patterns to operating system '{0}'".format( db_opsys.name)) for btpath in cmdline.btpath: self.log_debug( "Processing stacktrace path pattern: {0}".format(btpath)) db_btpath = get_sf_prefilter_btpath_by_pattern(db, btpath) if db_btpath is not None: self.log_debug( "Stacktrace path pattern {0} already exists".format( btpath)) continue try: re.compile(btpath) except re.error as ex: self.log_warn("Stacktrace path pattern {0} can not be " "compiled: {1}".format(btpath, str(ex))) continue self.log_info( "Adding new stacktrace path pattern: {0}".format(btpath)) db_btpath = SfPrefilterBacktracePath() db_btpath.solution = db_solution db_btpath.opsys = db_opsys db_btpath.pattern = btpath db.session.add(db_btpath) for pkgname in cmdline.pkgname: self.log_debug( "Processing package name pattern: {0}".format(pkgname)) db_btpath = get_sf_prefilter_pkgname_by_pattern(db, pkgname) if db_btpath is not None: self.log_debug( "Package name pattern {0} already exists".format(pkgname)) continue try: re.compile(pkgname) except re.error as ex: self.log_warn("Package name pattern {0} can not be " "compiled: {1}".format(pkgname, str(ex))) continue self.log_info( "Adding new package name pattern: {0}".format(pkgname)) db_pkgname = SfPrefilterPackageName() db_pkgname.solution = db_solution db_pkgname.opsys = db_opsys db_pkgname.pattern = pkgname db.session.add(db_pkgname) db.session.flush() return 0