def get_service(server, args, worker_info_json_string):
    try:
        http_client = THttpClient.THttpClient(server)
        transport = TTransport.TBufferedTransport(http_client)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        service = FuzzerService.Client(protocol)
        transport.open()

        # Get worker name
        platform_info = worker_info_json_string

        try_worker = args.worker
        print("Call getWorkerName()")
        worker_res = service.getWorkerName(platform_info, try_worker)
        assert type(worker_res) is not None

        if worker_res.workerName is None:
            # noinspection PyProtectedMember
            print('Worker error: ' + tt.WorkerNameError._VALUES_TO_NAMES[worker_res.error])
            exit(1)

        worker = worker_res.workerName

        print("Got worker: " + worker)
        assert (worker == args.worker)

        return service, worker

    except (TApplicationException, ConnectionRefusedError, ConnectionResetError):
        return None, None
Ejemplo n.º 2
0
def get_service(server, args):
    try:
        httpClient = THttpClient.THttpClient(server)
        transport = TTransport.TBufferedTransport(httpClient)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        service = FuzzerService.Client(protocol)
        transport.open()

        # Get token

        # TODO: grab information from worker

        platforminfo = '''
        {
          "clientplatform": "Wrapper on vulkan"
        }
        '''

        tryToken = args.token
        print("Call getToken()")
        tokenRes = service.getToken(platforminfo, tryToken)
        assert type(tokenRes) != None

        if tokenRes.token == None:
            print('Token error: ' +
                  tt.TokenError._VALUES_TO_NAMES[tokenRes.error])
            exit(1)

        token = tokenRes.token

        print("Got token: " + token)
        assert (token == args.token)

        if not os.path.exists(args.token):
            os.makedirs(args.token)

        # Set working dir
        os.chdir(args.token)

        return service, token

    except (TApplicationException, ConnectionRefusedError,
            ConnectionResetError) as exception:
        return None, None
Ejemplo n.º 3
0
def thrift_connect(server: str, worker_name: str,
                   worker_info: str) -> (FuzzerService, str):
    """
    Helper function to initiate a connection from this worker to a Thrift server.
    Handles sending the worker name and info to the server. If there's a fatal problem with a worker
    (such as a worker info mismatch between client/server), this function will terminate the
    program.
    :param server: The server request URL to connect to.
    :param worker_name: The name of the worker to connect with.
    :param worker_info: The worker info string.
    :return: a FuzzerService object and the confirmed worker name, or None for both if the
            connection failed without a fatal error.
    """
    try:
        http_client = THttpClient.THttpClient(server)
        transport = TTransport.TBufferedTransport(http_client)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        service = FuzzerService.Client(protocol)
        transport.open()

        # Get worker name
        gfuzz_common.log("Call getWorkerName()")
        worker_res = service.getWorkerName(worker_info, worker_name)
        assert type(worker_res) is not None

        if worker_res.workerName is None:
            # noinspection PyProtectedMember
            gfuzz_common.log(
                'Worker error: ' +
                tt.WorkerNameError._VALUES_TO_NAMES[worker_res.error])
            exit(1)

        worker = worker_res.workerName

        gfuzz_common.log("Got worker: " + worker)
        assert (worker == worker_name)

        return service, worker

    except (TApplicationException, ConnectionRefusedError,
            ConnectionResetError):
        return None, None
Ejemplo n.º 4
0
def get_service(server, args, worker_info_json_string):
    try:
        httpClient = THttpClient.THttpClient(server)
        transport = TTransport.TBufferedTransport(httpClient)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        service = FuzzerService.Client(protocol)
        transport.open()

        # Get worker name
        platforminfo = worker_info_json_string

        tryWorker = args.worker
        print("Call getWorkername()")
        workerRes = service.getWorkerName(platforminfo, tryWorker)
        assert type(workerRes) != None

        if workerRes.workerName == None:
            print('Worker error: ' +
                  tt.WorkerNameError._VALUES_TO_NAMES[workerRes.error])
            exit(1)

        worker = workerRes.workerName

        print("Got worker: " + worker)
        assert (worker == args.worker)

        if not os.path.exists(args.worker):
            os.makedirs(args.worker)

        # Set working dir
        os.chdir(args.worker)

        return service, worker

    except (TApplicationException, ConnectionRefusedError,
            ConnectionResetError) as exception:
        return None, None
Ejemplo n.º 5
0
def get_service():
    try:
        transport = THttpClient.THttpClient(server)
        transport = TTransport.TBufferedTransport(transport)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        service = FuzzerService.Client(protocol)
        transport.open()

        # Get token

        platforminfo = '''
        {
          "clientplatform": "wrapper on dEQP vulkan"
        }
        '''

        tryToken = args.token
        print("Call getToken()")
        tokenRes = service.getToken(platforminfo, tryToken)
        assert type(tokenRes) != None
        token = tokenRes.token

        print("Got token: " + token)
        assert (token == args.token)

        if not os.path.exists(args.token):
            os.makedirs(args.token)

        # Set working dir
        os.chdir(args.token)

        return service, token

    except (TApplicationException, ConnectionRefusedError,
            ConnectionResetError) as exception:
        return None, None