示例#1
0
def get_rule_hit_info(archive, rule_name, timeout=None, tmp_dir=None):
    # We have to load everything again for multiprocessing or clustering to
    # work. Even though imports are cached internally after the first call,  we
    # can still optimize a bit with this LOADED hack.
    rule_func = dr.get_component(rule_name)

    if not LOADED[0]:
        load_default_plugins()
        LOADED[0] = True

    # this is also cached behind get_deps after the first call.
    graph, bool_deps = get_deps(rule_func)

    with extract(archive, timeout=timeout, extract_dir=tmp_dir) as arc:
        ctx = create_context(arc.tmp_dir, None)
        broker = dr.Broker()
        broker[ctx.__class__] = ctx

        results = dr.run(graph, broker=broker)

        rule_result = results.get(rule_func)
        rhr = results.get(RedHatRelease)

        result = extract_hits(bool_deps, results)

        result["archive"] = archive
        result["key"] = rule_result.get_key() if rule_result else None
        result["type"] = rule_result.__class__.__name__ if rule_result else None
        result["make_fail"] = True if rule_result and isinstance(rule_result, make_response) else False
        result["major"] = rhr.major if rhr else -1
        result["minor"] = rhr.minor if rhr else -1
        return result
def main():
    args = parse_args()
    configure_logging(args.debug)
    configure(args.config)
    load_default_plugins()
    component = get_component(args.component[0])
    if not component:
        print("Component not found: %s" % args.component[0], file=sys.stderr)
        sys.exit(1)
    run(component, archive=args.archive)
示例#3
0
def main():
    args = parse_args()
    configure_logging(args.debug)
    load_default_plugins()
    load_plugins(args.plugins)
    configure(args.config)
    spec = get_spec(args.spec[0])
    if not spec:
        print("Spec not found: %s" % args.spec[0], file=sys.stderr)
        sys.exit(1)
    run(spec, archive=args.archive, quiet=args.quiet, no_header=args.no_header)
示例#4
0
def main():
    args = _parse_args()
    logging.basicConfig(level=logging.DEBUG if args.verbose else logging.ERROR)

    cov = None
    if not args.no_coverage:
        from coverage import Coverage

        cov = Coverage(cover_pylib=False)
        cov.start()

    if not args.no_defaults:
        load_default_plugins()
        dr.load_components("insights.parsers", "insights.combiners")

    load_packages(parse_plugins(args.plugins))
    _handle_config(args.config)

    start_session(args.paths, args.cd, __coverage=cov, kernel=args.kernel)
    if cov:
        cov.stop()
        cov.erase()
示例#5
0
    def __init__(
        self,
        packages=None,
        format=JsonFormat,
        include_timings=False,
        include_tracebacks=False,
        target_components=None,
        component_config=None,
    ):
        load_default_plugins()
        load_packages(packages or [])

        config = component_config or {}
        apply_default_enabled(config)
        apply_configs(config)
        target_components = [
            dr.get_component(c) for c in target_components or []
        ]

        self._Format = format
        self._include_timings = include_timings
        self._include_tracebacks = include_tracebacks
        self._target_components = target_components or None