Пример #1
0
def handle_request_test(server, handler, func_name, data):
    server.send_response(200)
    server.end_headers()
    import json
    try:
        try:
            func = handler.http_ipc_slots[func_name]
        except KeyError as exc:
            raise SlotNotImplemented(f'The specified IPC slot {func_name} does not exist') from exc
        ret_data = _call_func(func, json.loads(data))
    except Exception as exc:  # pylint: disable=broad-except
        ret_data = f'The request has failed, error: {exc}'
    if ret_data:
        server.wfile.write(json.dumps(ret_data).encode('utf-8'))
Пример #2
0
def handle_request(server, handler, func_name, data):
    try:
        try:
            func = handler.http_ipc_slots[func_name]
        except KeyError as exc:
            raise SlotNotImplemented('The specified IPC slot {} does not exist'.format(func_name)) from exc
        ret_data = _call_func(func, pickle.loads(data))
        server.send_response(200)
        server.end_headers()
        if ret_data:
            server.wfile.write(pickle.dumps(ret_data, protocol=pickle.HIGHEST_PROTOCOL))
    except Exception as exc:  # pylint: disable=broad-except
        if not isinstance(exc, (CacheMiss, MetadataNotAvailable)):
            LOG.error('IPC callback raised exception: {exc}', exc=exc)
            import traceback
            LOG.error(traceback.format_exc())
        server.send_error(500, json.dumps(common.ipc_convert_exc_to_json(exc)))