def observer(c, broker): if ignore_hidden and dr.is_hidden(c): return if c not in broker and c not in broker.exceptions: return ser_name = dr.get_base_module_name(ser) name = dr.get_name(c) c_type = dr.get_component_type(c) doc = {} doc["name"] = name doc["dr_type"] = dr.get_name(c_type) if c_type else None doc["is_rule"] = plugins.is_rule(c) doc["time"] = broker.exec_times.get(c) doc["results"] = marshal(broker.get(c)) doc["errors"] = marshal(broker.exceptions.get(c)) path = os.path.join(output_dir, name + "." + ser_name) try: with open(path, "wb") as f: ser.dump(doc, f) except Exception as boom: log.error("Could not serialize %s to %s: %s" % (name, ser_name, boom)) fs.remove(path)
def is_component(obj): return bool(dr.get_component_type(obj))
def is_type(component, _type): try: return issubclass(dr.get_component_type(component), _type) except: return False
def is_rule(component): return dr.get_component_type(component) in RULE_TYPES
def is_type(component, _type): return dr.get_component_type(component) is _type