def __init__(self, name, input, output, format=None, tail=False): stop_event = threading.Event() command = f"grep -E \',\"test_id\":\"%s'" % name steps = [ read_and_filter_transform(input, command=command, tail=tail) ] if format == "nice": steps += [parse_transform(stop_event), nice_transform()] elif format == "short": steps += [parse_transform(stop_event), short_transform()] elif format == "slick": steps += [parse_transform(stop_event), slick_transform()] steps.append(write_transform(output)) super(Handler.Pipeline, self).__init__(steps)
def __init__(self, results, input): stop_event = threading.Event() message_types = [Message.TEST] + ResultMessages command = f"grep -E '^({'|'.join([str(int(i)) for i in message_types])}),'" steps = [ read_and_filter_transform(input, command=command), parse_transform(stop_event), results_transform(results, stop_event), ] super(Handler.FirstStage, self).__init__(steps)
def __init__(self, name, input, output, tail=False): stop_event = threading.Event() command = f"grep -E '^1,.*,\"{name}[^/]*\",' -m 1" steps = [ read_and_filter_transform(input, command=command, tail=tail), parse_transform(stop_event), short_transform(), write_transform(output), ] super(Handler.Pipeline, self).__init__(steps)
def convert_name_to_id(self, name, input): command = f"grep --byte-offset -E '^1,.*,\"{name}[^/]*\",' -m 1" process = subprocess.Popen(command, stdin=input, stdout=subprocess.PIPE, shell=True) process.wait() parse_generator = parse_transform(None) parse_generator.send(None) line = process.stdout.readline().decode("utf-8") if not line: raise ValueError("test not found") offset, msg = line.split(":", 1) return (parse_generator.send(msg).p_id, offset)
def __init__(self, name, input, output, tail=False): stop_event = threading.Event() command = "grep -E '^{\"message_keyword\":\"%s\"" % Message.TEST.name command += ".+,\"test_name\":\"%s.*?\",'" % name.replace( "'", r"'\''") steps = [ read_and_filter_transform(input, command=command, tail=tail), parse_transform(stop_event), procedure_transform(), write_transform(output), ] super(Handler.Pipeline, self).__init__(steps)
def convert_name_to_id(self, name, input): command = "grep --byte-offset -E '^{\"message_keyword\":\"%s\"" % Message.TEST.name command += ".+\"test_name\":\"%s\"' -m 1" % name.replace("'", r"'\''") process = subprocess.Popen(command, stdin=input, stdout=subprocess.PIPE, shell=True) process.wait() parse_generator = parse_transform(None) parse_generator.send(None) line = process.stdout.readline().decode("utf-8") if not line: raise ValueError("test not found") offset, msg = line.split(":", 1) return (parse_generator.send(msg)["test_id"], offset)
def __init__(self, name, input, output, tail=False): stop_event = threading.Event() message_types = [ Message.TEST.name ] command = "grep -E '^{\"message_keyword\":\"" command = f"{command}({'|'.join(message_types)})\"" command += ".+,\"test_name\":\"%s.*?\",'" % name.replace("'", r"'\''") steps = [ read_and_filter_transform(input, command=command, stop=stop_event, tail=tail), parse_transform(), sort_transform(stop_event), flat_transform(), write_transform(output), ] super(Handler.Pipeline, self).__init__(steps, restart_on_none=False)