def get_run_tag(client, run_ids, tag_name): """ Returns run tag information for the given tag name in the given runs. """ run_history_filter = ttypes.RunHistoryFilter() run_history_filter.tagNames = [tag_name] run_histories = client.getRunHistory(run_ids, None, None, run_history_filter) return run_histories[0] if len(run_histories) else None
def add_filter_conditions(client, report_filter, args): """ This function fills some attributes of the given report filter based on the arguments which is provided in the command line. """ severities, checkers, file_path, dt_statuses, rw_statuses = \ check_filter_values(args) report_filter.isUnique = args.uniqueing == 'on' if severities: report_filter.severity = map( lambda x: ttypes.Severity._NAMES_TO_VALUES[x.upper()], severities) if dt_statuses: report_filter.detectionStatus = map( lambda x: ttypes.DetectionStatus._NAMES_TO_VALUES[x.upper()], dt_statuses) if rw_statuses: report_filter.reviewStatus = map( lambda x: ttypes.ReviewStatus._NAMES_TO_VALUES[x.upper()], rw_statuses) if checkers: report_filter.checkerName = checkers if 'checker_msg' in args: report_filter.checkerMsg = args.checker_msg if 'component' in args: report_filter.componentNames = args.component if 'report_hash' in args: report_filter.reportHash = args.report_hash if file_path: report_filter.filepath = file_path if 'tag' in args: run_history_filter = ttypes.RunHistoryFilter(tagNames=args.tag) run_histories = client.getRunHistory(None, None, None, run_history_filter) if run_histories: report_filter.runTag = [t.id for t in run_histories] if 'detected_at' in args: report_filter.firstDetectionDate = \ int(str_to_timestamp(args.detected_at)) if 'fixed_at' in args: report_filter.fixDate = int(str_to_timestamp(args.fixed_at))
def add_filter_conditions(client, report_filter, args): """ This function fills some attributes of the given report filter based on the arguments which is provided in the command line. """ severities = checkers = file_path = dt_statuses = rw_statuses = None filter_str = args.filter if 'filter' in args else None if filter_str: if filter_str.count(':') != 4: LOG.warning("Filter string has to contain four colons (e.g. " "\"high,medium:unix,core:*.cpp:new,unresolved:" "false_positive,intentional\").") else: filter_values = [] for x in filter_str.strip().split(':'): values = [y.strip() for y in x.strip().split(',') if y.strip()] filter_values.append(values if values else None) severities, checkers, file_path, dt_statuses, rw_statuses = \ filter_values if 'severity' in args: severities = args.severity if 'detection_status' in args: dt_statuses = args.detection_status if 'review_status' in args: rw_statuses = args.review_status if 'checker_name' in args: checkers = args.checker_name if 'file_path' in args: file_path = args.file_path values_to_check = [ (severities, ttypes.Severity._NAMES_TO_VALUES, 'severity'), (dt_statuses, ttypes.DetectionStatus._NAMES_TO_VALUES, 'detection status'), (rw_statuses, ttypes.ReviewStatus._NAMES_TO_VALUES, 'review status') ] if not all( valid for valid in [validate_filter_values(*x) for x in values_to_check]): sys.exit(1) if severities: report_filter.severity = map( lambda x: ttypes.Severity._NAMES_TO_VALUES[x.upper()], severities) if checkers: report_filter.checkerName = checkers if 'checker_msg' in args: report_filter.checkerMsg = args.checker_msg if 'component' in args: report_filter.componentNames = args.component if 'report_hash' in args: report_filter.reportHash = args.report_hash if file_path: report_filter.filepath = file_path if 'tag' in args: run_history_filter = ttypes.RunHistoryFilter(tagNames=args.tag) run_histories = client.getRunHistory(None, None, None, run_history_filter) if run_histories: report_filter.runTag = [t.id for t in run_histories] if dt_statuses: report_filter.detectionStatus = map( lambda x: ttypes.DetectionStatus._NAMES_TO_VALUES[x.upper()], dt_statuses) if rw_statuses: report_filter.reviewStatus = map( lambda x: ttypes.ReviewStatus._NAMES_TO_VALUES[x.upper()], rw_statuses)