fix
This commit is contained in:
parent
afb41d4914
commit
c91b0b1a45
@ -75,10 +75,25 @@
|
|||||||
}).
|
}).
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
-ifndef('RPCREPLY.RPCRESULT_PB_H').
|
||||||
|
-define('RPCREPLY.RPCRESULT_PB_H', true).
|
||||||
|
-record('RpcReply.RpcResult',
|
||||||
|
{data = <<>> :: iodata() | undefined % = 1, optional
|
||||||
|
}).
|
||||||
|
-endif.
|
||||||
|
|
||||||
|
-ifndef('RPCREPLY.RPCERROR_PB_H').
|
||||||
|
-define('RPCREPLY.RPCERROR_PB_H', true).
|
||||||
|
-record('RpcReply.RpcError',
|
||||||
|
{code = 0 :: integer() | undefined, % = 1, optional, 32 bits
|
||||||
|
message = <<>> :: unicode:chardata() | undefined % = 2, optional
|
||||||
|
}).
|
||||||
|
-endif.
|
||||||
|
|
||||||
-ifndef('RPCREPLY_PB_H').
|
-ifndef('RPCREPLY_PB_H').
|
||||||
-define('RPCREPLY_PB_H', true).
|
-define('RPCREPLY_PB_H', true).
|
||||||
-record('RpcReply',
|
-record('RpcReply',
|
||||||
{body :: {result, iodata()} | {error, iodata()} | undefined % oneof
|
{reply :: {result, message_pb:'RpcReply.RpcResult'()} | {error, message_pb:'RpcReply.RpcError'()} | undefined % oneof
|
||||||
}).
|
}).
|
||||||
-endif.
|
-endif.
|
||||||
|
|
||||||
|
|||||||
@ -58,9 +58,18 @@ message RpcRequest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
message RpcReply {
|
message RpcReply {
|
||||||
oneof body {
|
message RpcResult {
|
||||||
bytes result = 1;
|
bytes data = 1;
|
||||||
bytes error = 2;
|
}
|
||||||
|
|
||||||
|
message RpcError {
|
||||||
|
int32 code = 1;
|
||||||
|
string message = 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
oneof reply {
|
||||||
|
RpcResult result = 1;
|
||||||
|
RpcError error = 2;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -129,17 +129,18 @@ remove_container(Pid, ContainerName) when is_pid(Pid), is_binary(ContainerName)
|
|||||||
Params = jiffy:encode(#{<<"container_name">> => ContainerName}, [force_utf8]),
|
Params = jiffy:encode(#{<<"container_name">> => ContainerName}, [force_utf8]),
|
||||||
gen_statem:call(Pid, {jsonrpc_call, self(), {<<"remove_container">>, Params}}).
|
gen_statem:call(Pid, {jsonrpc_call, self(), {<<"remove_container">>, Params}}).
|
||||||
|
|
||||||
-spec await_reply(Pid :: pid(), Ref :: reference(), Timeout :: integer()) -> {ok, Result :: binary()} | {error, Reason :: binary()}.
|
-spec await_reply(Pid :: pid(), Ref :: reference(), Timeout :: integer()) ->
|
||||||
|
{ok, Result :: binary()} | {error, Code :: integer(), Reason :: binary()}.
|
||||||
await_reply(Pid, Ref, Timeout) when is_pid(Pid), is_reference(Ref), is_integer(Timeout) ->
|
await_reply(Pid, Ref, Timeout) when is_pid(Pid), is_reference(Ref), is_integer(Timeout) ->
|
||||||
receive
|
receive
|
||||||
{rpc_reply, Ref, #'RpcReply'{body = {result, ResultBin}}} ->
|
{rpc_reply, Ref, #'RpcReply'{reply = {result, #'RpcReply.RpcResult'{data = ResultBin}}}} ->
|
||||||
{ok, iolist_to_binary(ResultBin)};
|
{ok, iolist_to_binary(ResultBin)};
|
||||||
{rpc_reply, Ref, #'RpcReply'{body = {error, ErrorBin}}} ->
|
{rpc_reply, Ref, #'RpcReply'{reply = {error, #'RpcReply.RpcError'{code = Code, message = Message}}}} ->
|
||||||
{error, iolist_to_binary(ErrorBin)}
|
{error, Code, unicode:characters_to_binary(Message)}
|
||||||
after Timeout ->
|
after Timeout ->
|
||||||
ok = gen_statem:call(Pid, {cancel_jsonrpc_call, Ref}),
|
ok = gen_statem:call(Pid, {cancel_jsonrpc_call, Ref}),
|
||||||
flush_reply(Ref),
|
flush_reply(Ref),
|
||||||
{error, <<"timeout">>}
|
{error, -1, <<"timeout">>}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
-spec pub(Pid :: pid(), Topic :: binary(), Qos :: integer(), Content :: binary()) -> ok | {error, Reason :: any()}.
|
-spec pub(Pid :: pid(), Topic :: binary(), Qos :: integer(), Content :: binary()) -> ok | {error, Reason :: any()}.
|
||||||
|
|||||||
@ -70,15 +70,19 @@
|
|||||||
|
|
||||||
-type 'RpcRequest'() :: #'RpcRequest'{}.
|
-type 'RpcRequest'() :: #'RpcRequest'{}.
|
||||||
|
|
||||||
|
-type 'RpcReply.RpcResult'() :: #'RpcReply.RpcResult'{}.
|
||||||
|
|
||||||
|
-type 'RpcReply.RpcError'() :: #'RpcReply.RpcError'{}.
|
||||||
|
|
||||||
-type 'RpcReply'() :: #'RpcReply'{}.
|
-type 'RpcReply'() :: #'RpcReply'{}.
|
||||||
|
|
||||||
-type 'Data'() :: #'Data'{}.
|
-type 'Data'() :: #'Data'{}.
|
||||||
|
|
||||||
-type 'TaskEventStream'() :: #'TaskEventStream'{}.
|
-type 'TaskEventStream'() :: #'TaskEventStream'{}.
|
||||||
|
|
||||||
-export_type(['RequestFrame'/0, 'ResponseFrame'/0, 'CastFrame'/0, 'AuthRequest'/0, 'AuthReply'/0, 'Pub'/0, 'Command'/0, 'RpcRequest'/0, 'RpcReply'/0, 'Data'/0, 'TaskEventStream'/0]).
|
-export_type(['RequestFrame'/0, 'ResponseFrame'/0, 'CastFrame'/0, 'AuthRequest'/0, 'AuthReply'/0, 'Pub'/0, 'Command'/0, 'RpcRequest'/0, 'RpcReply.RpcResult'/0, 'RpcReply.RpcError'/0, 'RpcReply'/0, 'Data'/0, 'TaskEventStream'/0]).
|
||||||
-type '$msg_name'() :: 'RequestFrame' | 'ResponseFrame' | 'CastFrame' | 'AuthRequest' | 'AuthReply' | 'Pub' | 'Command' | 'RpcRequest' | 'RpcReply' | 'Data' | 'TaskEventStream'.
|
-type '$msg_name'() :: 'RequestFrame' | 'ResponseFrame' | 'CastFrame' | 'AuthRequest' | 'AuthReply' | 'Pub' | 'Command' | 'RpcRequest' | 'RpcReply.RpcResult' | 'RpcReply.RpcError' | 'RpcReply' | 'Data' | 'TaskEventStream'.
|
||||||
-type '$msg'() :: 'RequestFrame'() | 'ResponseFrame'() | 'CastFrame'() | 'AuthRequest'() | 'AuthReply'() | 'Pub'() | 'Command'() | 'RpcRequest'() | 'RpcReply'() | 'Data'() | 'TaskEventStream'().
|
-type '$msg'() :: 'RequestFrame'() | 'ResponseFrame'() | 'CastFrame'() | 'AuthRequest'() | 'AuthReply'() | 'Pub'() | 'Command'() | 'RpcRequest'() | 'RpcReply.RpcResult'() | 'RpcReply.RpcError'() | 'RpcReply'() | 'Data'() | 'TaskEventStream'().
|
||||||
-export_type(['$msg_name'/0, '$msg'/0]).
|
-export_type(['$msg_name'/0, '$msg'/0]).
|
||||||
|
|
||||||
-if(?OTP_RELEASE >= 24).
|
-if(?OTP_RELEASE >= 24).
|
||||||
@ -113,6 +117,8 @@ encode_msg(Msg, MsgName, Opts) ->
|
|||||||
'Pub' -> encode_msg_Pub(id(Msg, TrUserData), TrUserData);
|
'Pub' -> encode_msg_Pub(id(Msg, TrUserData), TrUserData);
|
||||||
'Command' -> encode_msg_Command(id(Msg, TrUserData), TrUserData);
|
'Command' -> encode_msg_Command(id(Msg, TrUserData), TrUserData);
|
||||||
'RpcRequest' -> encode_msg_RpcRequest(id(Msg, TrUserData), TrUserData);
|
'RpcRequest' -> encode_msg_RpcRequest(id(Msg, TrUserData), TrUserData);
|
||||||
|
'RpcReply.RpcResult' -> 'encode_msg_RpcReply.RpcResult'(id(Msg, TrUserData), TrUserData);
|
||||||
|
'RpcReply.RpcError' -> 'encode_msg_RpcReply.RpcError'(id(Msg, TrUserData), TrUserData);
|
||||||
'RpcReply' -> encode_msg_RpcReply(id(Msg, TrUserData), TrUserData);
|
'RpcReply' -> encode_msg_RpcReply(id(Msg, TrUserData), TrUserData);
|
||||||
'Data' -> encode_msg_Data(id(Msg, TrUserData), TrUserData);
|
'Data' -> encode_msg_Data(id(Msg, TrUserData), TrUserData);
|
||||||
'TaskEventStream' -> encode_msg_TaskEventStream(id(Msg, TrUserData), TrUserData)
|
'TaskEventStream' -> encode_msg_TaskEventStream(id(Msg, TrUserData), TrUserData)
|
||||||
@ -336,15 +342,54 @@ encode_msg_RpcRequest(#'RpcRequest'{method = F1, params = F2}, Bin, TrUserData)
|
|||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
'encode_msg_RpcReply.RpcResult'(Msg, TrUserData) -> 'encode_msg_RpcReply.RpcResult'(Msg, <<>>, TrUserData).
|
||||||
|
|
||||||
|
|
||||||
|
'encode_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = F1}, Bin, TrUserData) ->
|
||||||
|
if F1 == undefined -> Bin;
|
||||||
|
true ->
|
||||||
|
begin
|
||||||
|
TrF1 = id(F1, TrUserData),
|
||||||
|
case iolist_size(TrF1) of
|
||||||
|
0 -> Bin;
|
||||||
|
_ -> e_type_bytes(TrF1, <<Bin/binary, 10>>, TrUserData)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end.
|
||||||
|
|
||||||
|
'encode_msg_RpcReply.RpcError'(Msg, TrUserData) -> 'encode_msg_RpcReply.RpcError'(Msg, <<>>, TrUserData).
|
||||||
|
|
||||||
|
|
||||||
|
'encode_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = F1, message = F2}, Bin, TrUserData) ->
|
||||||
|
B1 = if F1 == undefined -> Bin;
|
||||||
|
true ->
|
||||||
|
begin
|
||||||
|
TrF1 = id(F1, TrUserData),
|
||||||
|
if TrF1 =:= 0 -> Bin;
|
||||||
|
true -> e_type_int32(TrF1, <<Bin/binary, 8>>, TrUserData)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
if F2 == undefined -> B1;
|
||||||
|
true ->
|
||||||
|
begin
|
||||||
|
TrF2 = id(F2, TrUserData),
|
||||||
|
case is_empty_string(TrF2) of
|
||||||
|
true -> B1;
|
||||||
|
false -> e_type_string(TrF2, <<B1/binary, 18>>, TrUserData)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end.
|
||||||
|
|
||||||
encode_msg_RpcReply(Msg, TrUserData) -> encode_msg_RpcReply(Msg, <<>>, TrUserData).
|
encode_msg_RpcReply(Msg, TrUserData) -> encode_msg_RpcReply(Msg, <<>>, TrUserData).
|
||||||
|
|
||||||
|
|
||||||
encode_msg_RpcReply(#'RpcReply'{body = F1}, Bin, TrUserData) ->
|
encode_msg_RpcReply(#'RpcReply'{reply = F1}, Bin, TrUserData) ->
|
||||||
if F1 =:= undefined -> Bin;
|
if F1 =:= undefined -> Bin;
|
||||||
true ->
|
true ->
|
||||||
case id(F1, TrUserData) of
|
case id(F1, TrUserData) of
|
||||||
{result, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_type_bytes(TrTF1, <<Bin/binary, 10>>, TrUserData) end;
|
{result, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_RpcReply_result(TrTF1, <<Bin/binary, 10>>, TrUserData) end;
|
||||||
{error, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_type_bytes(TrTF1, <<Bin/binary, 18>>, TrUserData) end
|
{error, TF1} -> begin TrTF1 = id(TF1, TrUserData), e_mfield_RpcReply_error(TrTF1, <<Bin/binary, 18>>, TrUserData) end
|
||||||
end
|
end
|
||||||
end.
|
end.
|
||||||
|
|
||||||
@ -447,6 +492,16 @@ e_mfield_CastFrame_event_stream(Msg, Bin, TrUserData) ->
|
|||||||
Bin2 = e_varint(byte_size(SubBin), Bin),
|
Bin2 = e_varint(byte_size(SubBin), Bin),
|
||||||
<<Bin2/binary, SubBin/binary>>.
|
<<Bin2/binary, SubBin/binary>>.
|
||||||
|
|
||||||
|
e_mfield_RpcReply_result(Msg, Bin, TrUserData) ->
|
||||||
|
SubBin = 'encode_msg_RpcReply.RpcResult'(Msg, <<>>, TrUserData),
|
||||||
|
Bin2 = e_varint(byte_size(SubBin), Bin),
|
||||||
|
<<Bin2/binary, SubBin/binary>>.
|
||||||
|
|
||||||
|
e_mfield_RpcReply_error(Msg, Bin, TrUserData) ->
|
||||||
|
SubBin = 'encode_msg_RpcReply.RpcError'(Msg, <<>>, TrUserData),
|
||||||
|
Bin2 = e_varint(byte_size(SubBin), Bin),
|
||||||
|
<<Bin2/binary, SubBin/binary>>.
|
||||||
|
|
||||||
-compile({nowarn_unused_function,e_type_sint/3}).
|
-compile({nowarn_unused_function,e_type_sint/3}).
|
||||||
e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin);
|
e_type_sint(Value, Bin, _TrUserData) when Value >= 0 -> e_varint(Value * 2, Bin);
|
||||||
e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin).
|
e_type_sint(Value, Bin, _TrUserData) -> e_varint(Value * -2 - 1, Bin).
|
||||||
@ -541,6 +596,22 @@ e_varint(N, Bin) ->
|
|||||||
Bin2 = <<Bin/binary, (N band 127 bor 128)>>,
|
Bin2 = <<Bin/binary, (N band 127 bor 128)>>,
|
||||||
e_varint(N bsr 7, Bin2).
|
e_varint(N bsr 7, Bin2).
|
||||||
|
|
||||||
|
is_empty_string("") -> true;
|
||||||
|
is_empty_string(<<>>) -> true;
|
||||||
|
is_empty_string(L) when is_list(L) -> not string_has_chars(L);
|
||||||
|
is_empty_string(B) when is_binary(B) -> false.
|
||||||
|
|
||||||
|
string_has_chars([C | _]) when is_integer(C) -> true;
|
||||||
|
string_has_chars([H | T]) ->
|
||||||
|
case string_has_chars(H) of
|
||||||
|
true -> true;
|
||||||
|
false -> string_has_chars(T)
|
||||||
|
end;
|
||||||
|
string_has_chars(B) when is_binary(B), byte_size(B) =/= 0 -> true;
|
||||||
|
string_has_chars(C) when is_integer(C) -> true;
|
||||||
|
string_has_chars(<<>>) -> false;
|
||||||
|
string_has_chars([]) -> false.
|
||||||
|
|
||||||
|
|
||||||
decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []).
|
decode_msg(Bin, MsgName) when is_binary(Bin) -> decode_msg(Bin, MsgName, []).
|
||||||
|
|
||||||
@ -577,6 +648,8 @@ decode_msg_2_doit('AuthReply', Bin, TrUserData) -> id(decode_msg_AuthReply(Bin,
|
|||||||
decode_msg_2_doit('Pub', Bin, TrUserData) -> id(decode_msg_Pub(Bin, TrUserData), TrUserData);
|
decode_msg_2_doit('Pub', Bin, TrUserData) -> id(decode_msg_Pub(Bin, TrUserData), TrUserData);
|
||||||
decode_msg_2_doit('Command', Bin, TrUserData) -> id(decode_msg_Command(Bin, TrUserData), TrUserData);
|
decode_msg_2_doit('Command', Bin, TrUserData) -> id(decode_msg_Command(Bin, TrUserData), TrUserData);
|
||||||
decode_msg_2_doit('RpcRequest', Bin, TrUserData) -> id(decode_msg_RpcRequest(Bin, TrUserData), TrUserData);
|
decode_msg_2_doit('RpcRequest', Bin, TrUserData) -> id(decode_msg_RpcRequest(Bin, TrUserData), TrUserData);
|
||||||
|
decode_msg_2_doit('RpcReply.RpcResult', Bin, TrUserData) -> id('decode_msg_RpcReply.RpcResult'(Bin, TrUserData), TrUserData);
|
||||||
|
decode_msg_2_doit('RpcReply.RpcError', Bin, TrUserData) -> id('decode_msg_RpcReply.RpcError'(Bin, TrUserData), TrUserData);
|
||||||
decode_msg_2_doit('RpcReply', Bin, TrUserData) -> id(decode_msg_RpcReply(Bin, TrUserData), TrUserData);
|
decode_msg_2_doit('RpcReply', Bin, TrUserData) -> id(decode_msg_RpcReply(Bin, TrUserData), TrUserData);
|
||||||
decode_msg_2_doit('Data', Bin, TrUserData) -> id(decode_msg_Data(Bin, TrUserData), TrUserData);
|
decode_msg_2_doit('Data', Bin, TrUserData) -> id(decode_msg_Data(Bin, TrUserData), TrUserData);
|
||||||
decode_msg_2_doit('TaskEventStream', Bin, TrUserData) -> id(decode_msg_TaskEventStream(Bin, TrUserData), TrUserData).
|
decode_msg_2_doit('TaskEventStream', Bin, TrUserData) -> id(decode_msg_TaskEventStream(Bin, TrUserData), TrUserData).
|
||||||
@ -1123,11 +1196,106 @@ skip_32_RpcRequest(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) ->
|
|||||||
|
|
||||||
skip_64_RpcRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
skip_64_RpcRequest(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_RpcRequest(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'decode_msg_RpcReply.RpcResult'(Bin, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Bin, 0, 0, 0, id(<<>>, TrUserData), TrUserData).
|
||||||
|
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'd_field_RpcReply.RpcResult_data'(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply.RpcResult'{data = F@_1};
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(Other, Z1, Z2, F, F@_1, TrUserData) -> 'dg_read_field_def_RpcReply.RpcResult'(Other, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'dg_read_field_def_RpcReply.RpcResult'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_RpcReply.RpcResult'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
|
'dg_read_field_def_RpcReply.RpcResult'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserData) ->
|
||||||
|
Key = X bsl N + Acc,
|
||||||
|
case Key of
|
||||||
|
10 -> 'd_field_RpcReply.RpcResult_data'(Rest, 0, 0, 0, F@_1, TrUserData);
|
||||||
|
_ ->
|
||||||
|
case Key band 7 of
|
||||||
|
0 -> 'skip_varint_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||||
|
1 -> 'skip_64_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||||
|
2 -> 'skip_length_delimited_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||||
|
3 -> 'skip_group_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData);
|
||||||
|
5 -> 'skip_32_RpcReply.RpcResult'(Rest, 0, 0, Key bsr 3, F@_1, TrUserData)
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
'dg_read_field_def_RpcReply.RpcResult'(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply.RpcResult'{data = F@_1}.
|
||||||
|
|
||||||
|
'd_field_RpcReply.RpcResult_data'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcResult_data'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
|
'd_field_RpcReply.RpcResult_data'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) ->
|
||||||
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(RestF, 0, 0, F, NewFValue, TrUserData).
|
||||||
|
|
||||||
|
'skip_varint_RpcReply.RpcResult'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'skip_varint_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||||
|
'skip_varint_RpcReply.RpcResult'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'skip_length_delimited_RpcReply.RpcResult'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> 'skip_length_delimited_RpcReply.RpcResult'(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
|
'skip_length_delimited_RpcReply.RpcResult'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) ->
|
||||||
|
Length = X bsl N + Acc,
|
||||||
|
<<_:Length/binary, Rest2/binary>> = Rest,
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(Rest2, 0, 0, F, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'skip_group_RpcReply.RpcResult'(Bin, _, Z2, FNum, F@_1, TrUserData) ->
|
||||||
|
{_, Rest} = read_group(Bin, FNum),
|
||||||
|
'dfp_read_field_def_RpcReply.RpcResult'(Rest, 0, Z2, FNum, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'skip_32_RpcReply.RpcResult'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'skip_64_RpcReply.RpcResult'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcResult'(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
|
'decode_msg_RpcReply.RpcError'(Bin, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), TrUserData).
|
||||||
|
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_RpcReply.RpcError_code'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'd_field_RpcReply.RpcError_message'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcReply.RpcError'{code = F@_1, message = F@_2};
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dg_read_field_def_RpcReply.RpcError'(Other, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'dg_read_field_def_RpcReply.RpcError'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> 'dg_read_field_def_RpcReply.RpcError'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
||||||
|
'dg_read_field_def_RpcReply.RpcError'(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) ->
|
||||||
|
Key = X bsl N + Acc,
|
||||||
|
case Key of
|
||||||
|
8 -> 'd_field_RpcReply.RpcError_code'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
||||||
|
18 -> 'd_field_RpcReply.RpcError_message'(Rest, 0, 0, 0, F@_1, F@_2, TrUserData);
|
||||||
|
_ ->
|
||||||
|
case Key band 7 of
|
||||||
|
0 -> 'skip_varint_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
||||||
|
1 -> 'skip_64_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
||||||
|
2 -> 'skip_length_delimited_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
||||||
|
3 -> 'skip_group_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData);
|
||||||
|
5 -> 'skip_32_RpcReply.RpcError'(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData)
|
||||||
|
end
|
||||||
|
end;
|
||||||
|
'dg_read_field_def_RpcReply.RpcError'(<<>>, 0, 0, _, F@_1, F@_2, _) -> #'RpcReply.RpcError'{code = F@_1, message = F@_2}.
|
||||||
|
|
||||||
|
'd_field_RpcReply.RpcError_code'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcError_code'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
||||||
|
'd_field_RpcReply.RpcError_code'(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) ->
|
||||||
|
{NewFValue, RestF} = {begin <<Res:32/signed-native>> = <<(X bsl N + Acc):32/unsigned-native>>, id(Res, TrUserData) end, Rest},
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(RestF, 0, 0, F, NewFValue, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'd_field_RpcReply.RpcError_message'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'd_field_RpcReply.RpcError_message'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
||||||
|
'd_field_RpcReply.RpcError_message'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) ->
|
||||||
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(RestF, 0, 0, F, F@_1, NewFValue, TrUserData).
|
||||||
|
|
||||||
|
'skip_varint_RpcReply.RpcError'(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'skip_varint_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData);
|
||||||
|
'skip_varint_RpcReply.RpcError'(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'skip_length_delimited_RpcReply.RpcError'(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> 'skip_length_delimited_RpcReply.RpcError'(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData);
|
||||||
|
'skip_length_delimited_RpcReply.RpcError'(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) ->
|
||||||
|
Length = X bsl N + Acc,
|
||||||
|
<<_:Length/binary, Rest2/binary>> = Rest,
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(Rest2, 0, 0, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'skip_group_RpcReply.RpcError'(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) ->
|
||||||
|
{_, Rest} = read_group(Bin, FNum),
|
||||||
|
'dfp_read_field_def_RpcReply.RpcError'(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'skip_32_RpcReply.RpcError'(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
|
'skip_64_RpcReply.RpcError'(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> 'dfp_read_field_def_RpcReply.RpcError'(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData).
|
||||||
|
|
||||||
decode_msg_RpcReply(Bin, TrUserData) -> dfp_read_field_def_RpcReply(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData).
|
decode_msg_RpcReply(Bin, TrUserData) -> dfp_read_field_def_RpcReply(Bin, 0, 0, 0, id(undefined, TrUserData), TrUserData).
|
||||||
|
|
||||||
dfp_read_field_def_RpcReply(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_result(Rest, Z1, Z2, F, F@_1, TrUserData);
|
dfp_read_field_def_RpcReply(<<10, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_result(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||||
dfp_read_field_def_RpcReply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_error(Rest, Z1, Z2, F, F@_1, TrUserData);
|
dfp_read_field_def_RpcReply(<<18, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> d_field_RpcReply_error(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||||
dfp_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{body = F@_1};
|
dfp_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{reply = F@_1};
|
||||||
dfp_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData).
|
dfp_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData) -> dg_read_field_def_RpcReply(Other, Z1, Z2, F, F@_1, TrUserData).
|
||||||
|
|
||||||
dg_read_field_def_RpcReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_RpcReply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
dg_read_field_def_RpcReply(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 32 - 7 -> dg_read_field_def_RpcReply(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
@ -1145,17 +1313,35 @@ dg_read_field_def_RpcReply(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, TrUserDat
|
|||||||
5 -> skip_32_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData)
|
5 -> skip_32_RpcReply(Rest, 0, 0, Key bsr 3, F@_1, TrUserData)
|
||||||
end
|
end
|
||||||
end;
|
end;
|
||||||
dg_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{body = F@_1}.
|
dg_read_field_def_RpcReply(<<>>, 0, 0, _, F@_1, _) -> #'RpcReply'{reply = F@_1}.
|
||||||
|
|
||||||
d_field_RpcReply_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_result(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
d_field_RpcReply_result(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_result(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
d_field_RpcReply_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) ->
|
d_field_RpcReply_result(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) ->
|
||||||
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bs:Len/binary, Rest2/binary>> = Rest, {id('decode_msg_RpcReply.RpcResult'(Bs, TrUserData), TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_RpcReply(RestF, 0, 0, F, id({result, NewFValue}, TrUserData), TrUserData).
|
dfp_read_field_def_RpcReply(RestF,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
F,
|
||||||
|
case Prev of
|
||||||
|
undefined -> id({result, NewFValue}, TrUserData);
|
||||||
|
{result, MVPrev} -> id({result, 'merge_msg_RpcReply.RpcResult'(MVPrev, NewFValue, TrUserData)}, TrUserData);
|
||||||
|
_ -> id({result, NewFValue}, TrUserData)
|
||||||
|
end,
|
||||||
|
TrUserData).
|
||||||
|
|
||||||
d_field_RpcReply_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_error(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
d_field_RpcReply_error(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, TrUserData) when N < 57 -> d_field_RpcReply_error(Rest, N + 7, X bsl N + Acc, F, F@_1, TrUserData);
|
||||||
d_field_RpcReply_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, TrUserData) ->
|
d_field_RpcReply_error(<<0:1, X:7, Rest/binary>>, N, Acc, F, Prev, TrUserData) ->
|
||||||
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bytes:Len/binary, Rest2/binary>> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end,
|
{NewFValue, RestF} = begin Len = X bsl N + Acc, <<Bs:Len/binary, Rest2/binary>> = Rest, {id('decode_msg_RpcReply.RpcError'(Bs, TrUserData), TrUserData), Rest2} end,
|
||||||
dfp_read_field_def_RpcReply(RestF, 0, 0, F, id({error, NewFValue}, TrUserData), TrUserData).
|
dfp_read_field_def_RpcReply(RestF,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
F,
|
||||||
|
case Prev of
|
||||||
|
undefined -> id({error, NewFValue}, TrUserData);
|
||||||
|
{error, MVPrev} -> id({error, 'merge_msg_RpcReply.RpcError'(MVPrev, NewFValue, TrUserData)}, TrUserData);
|
||||||
|
_ -> id({error, NewFValue}, TrUserData)
|
||||||
|
end,
|
||||||
|
TrUserData).
|
||||||
|
|
||||||
skip_varint_RpcReply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData);
|
skip_varint_RpcReply(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> skip_varint_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData);
|
||||||
skip_varint_RpcReply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData).
|
skip_varint_RpcReply(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_RpcReply(Rest, Z1, Z2, F, F@_1, TrUserData).
|
||||||
@ -1357,6 +1543,8 @@ merge_msgs(Prev, New, MsgName, Opts) ->
|
|||||||
'Pub' -> merge_msg_Pub(Prev, New, TrUserData);
|
'Pub' -> merge_msg_Pub(Prev, New, TrUserData);
|
||||||
'Command' -> merge_msg_Command(Prev, New, TrUserData);
|
'Command' -> merge_msg_Command(Prev, New, TrUserData);
|
||||||
'RpcRequest' -> merge_msg_RpcRequest(Prev, New, TrUserData);
|
'RpcRequest' -> merge_msg_RpcRequest(Prev, New, TrUserData);
|
||||||
|
'RpcReply.RpcResult' -> 'merge_msg_RpcReply.RpcResult'(Prev, New, TrUserData);
|
||||||
|
'RpcReply.RpcError' -> 'merge_msg_RpcReply.RpcError'(Prev, New, TrUserData);
|
||||||
'RpcReply' -> merge_msg_RpcReply(Prev, New, TrUserData);
|
'RpcReply' -> merge_msg_RpcReply(Prev, New, TrUserData);
|
||||||
'Data' -> merge_msg_Data(Prev, New, TrUserData);
|
'Data' -> merge_msg_Data(Prev, New, TrUserData);
|
||||||
'TaskEventStream' -> merge_msg_TaskEventStream(Prev, New, TrUserData)
|
'TaskEventStream' -> merge_msg_TaskEventStream(Prev, New, TrUserData)
|
||||||
@ -1473,11 +1661,32 @@ merge_msg_RpcRequest(#'RpcRequest'{method = PFmethod, params = PFparams}, #'RpcR
|
|||||||
true -> NFparams
|
true -> NFparams
|
||||||
end}.
|
end}.
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'merge_msg_RpcReply.RpcResult'/3}).
|
||||||
|
'merge_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = PFdata}, #'RpcReply.RpcResult'{data = NFdata}, _) ->
|
||||||
|
#'RpcReply.RpcResult'{data =
|
||||||
|
if NFdata =:= undefined -> PFdata;
|
||||||
|
true -> NFdata
|
||||||
|
end}.
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'merge_msg_RpcReply.RpcError'/3}).
|
||||||
|
'merge_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = PFcode, message = PFmessage}, #'RpcReply.RpcError'{code = NFcode, message = NFmessage}, _) ->
|
||||||
|
#'RpcReply.RpcError'{code =
|
||||||
|
if NFcode =:= undefined -> PFcode;
|
||||||
|
true -> NFcode
|
||||||
|
end,
|
||||||
|
message =
|
||||||
|
if NFmessage =:= undefined -> PFmessage;
|
||||||
|
true -> NFmessage
|
||||||
|
end}.
|
||||||
|
|
||||||
-compile({nowarn_unused_function,merge_msg_RpcReply/3}).
|
-compile({nowarn_unused_function,merge_msg_RpcReply/3}).
|
||||||
merge_msg_RpcReply(#'RpcReply'{body = PFbody}, #'RpcReply'{body = NFbody}, _) ->
|
merge_msg_RpcReply(#'RpcReply'{reply = PFreply}, #'RpcReply'{reply = NFreply}, TrUserData) ->
|
||||||
#'RpcReply'{body =
|
#'RpcReply'{reply =
|
||||||
if NFbody =:= undefined -> PFbody;
|
case {PFreply, NFreply} of
|
||||||
true -> NFbody
|
{{result, OPFreply}, {result, ONFreply}} -> {result, 'merge_msg_RpcReply.RpcResult'(OPFreply, ONFreply, TrUserData)};
|
||||||
|
{{error, OPFreply}, {error, ONFreply}} -> {error, 'merge_msg_RpcReply.RpcError'(OPFreply, ONFreply, TrUserData)};
|
||||||
|
{_, undefined} -> PFreply;
|
||||||
|
_ -> NFreply
|
||||||
end}.
|
end}.
|
||||||
|
|
||||||
-compile({nowarn_unused_function,merge_msg_Data/3}).
|
-compile({nowarn_unused_function,merge_msg_Data/3}).
|
||||||
@ -1525,6 +1734,8 @@ verify_msg(Msg, MsgName, Opts) ->
|
|||||||
'Pub' -> v_msg_Pub(Msg, [MsgName], TrUserData);
|
'Pub' -> v_msg_Pub(Msg, [MsgName], TrUserData);
|
||||||
'Command' -> v_msg_Command(Msg, [MsgName], TrUserData);
|
'Command' -> v_msg_Command(Msg, [MsgName], TrUserData);
|
||||||
'RpcRequest' -> v_msg_RpcRequest(Msg, [MsgName], TrUserData);
|
'RpcRequest' -> v_msg_RpcRequest(Msg, [MsgName], TrUserData);
|
||||||
|
'RpcReply.RpcResult' -> 'v_msg_RpcReply.RpcResult'(Msg, [MsgName], TrUserData);
|
||||||
|
'RpcReply.RpcError' -> 'v_msg_RpcReply.RpcError'(Msg, [MsgName], TrUserData);
|
||||||
'RpcReply' -> v_msg_RpcReply(Msg, [MsgName], TrUserData);
|
'RpcReply' -> v_msg_RpcReply(Msg, [MsgName], TrUserData);
|
||||||
'Data' -> v_msg_Data(Msg, [MsgName], TrUserData);
|
'Data' -> v_msg_Data(Msg, [MsgName], TrUserData);
|
||||||
'TaskEventStream' -> v_msg_TaskEventStream(Msg, [MsgName], TrUserData);
|
'TaskEventStream' -> v_msg_TaskEventStream(Msg, [MsgName], TrUserData);
|
||||||
@ -1668,18 +1879,47 @@ v_msg_RpcRequest(#'RpcRequest'{method = F1, params = F2}, Path, TrUserData) ->
|
|||||||
ok;
|
ok;
|
||||||
v_msg_RpcRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcRequest'}, X, Path).
|
v_msg_RpcRequest(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcRequest'}, X, Path).
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'v_submsg_RpcReply.RpcResult'/3}).
|
||||||
|
-dialyzer({nowarn_function,'v_submsg_RpcReply.RpcResult'/3}).
|
||||||
|
'v_submsg_RpcReply.RpcResult'(Msg, Path, TrUserData) -> 'v_msg_RpcReply.RpcResult'(Msg, Path, TrUserData).
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'v_msg_RpcReply.RpcResult'/3}).
|
||||||
|
-dialyzer({nowarn_function,'v_msg_RpcReply.RpcResult'/3}).
|
||||||
|
'v_msg_RpcReply.RpcResult'(#'RpcReply.RpcResult'{data = F1}, Path, TrUserData) ->
|
||||||
|
if F1 == undefined -> ok;
|
||||||
|
true -> v_type_bytes(F1, [data | Path], TrUserData)
|
||||||
|
end,
|
||||||
|
ok;
|
||||||
|
'v_msg_RpcReply.RpcResult'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply.RpcResult'}, X, Path).
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'v_submsg_RpcReply.RpcError'/3}).
|
||||||
|
-dialyzer({nowarn_function,'v_submsg_RpcReply.RpcError'/3}).
|
||||||
|
'v_submsg_RpcReply.RpcError'(Msg, Path, TrUserData) -> 'v_msg_RpcReply.RpcError'(Msg, Path, TrUserData).
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,'v_msg_RpcReply.RpcError'/3}).
|
||||||
|
-dialyzer({nowarn_function,'v_msg_RpcReply.RpcError'/3}).
|
||||||
|
'v_msg_RpcReply.RpcError'(#'RpcReply.RpcError'{code = F1, message = F2}, Path, TrUserData) ->
|
||||||
|
if F1 == undefined -> ok;
|
||||||
|
true -> v_type_int32(F1, [code | Path], TrUserData)
|
||||||
|
end,
|
||||||
|
if F2 == undefined -> ok;
|
||||||
|
true -> v_type_string(F2, [message | Path], TrUserData)
|
||||||
|
end,
|
||||||
|
ok;
|
||||||
|
'v_msg_RpcReply.RpcError'(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply.RpcError'}, X, Path).
|
||||||
|
|
||||||
-compile({nowarn_unused_function,v_submsg_RpcReply/3}).
|
-compile({nowarn_unused_function,v_submsg_RpcReply/3}).
|
||||||
-dialyzer({nowarn_function,v_submsg_RpcReply/3}).
|
-dialyzer({nowarn_function,v_submsg_RpcReply/3}).
|
||||||
v_submsg_RpcReply(Msg, Path, TrUserData) -> v_msg_RpcReply(Msg, Path, TrUserData).
|
v_submsg_RpcReply(Msg, Path, TrUserData) -> v_msg_RpcReply(Msg, Path, TrUserData).
|
||||||
|
|
||||||
-compile({nowarn_unused_function,v_msg_RpcReply/3}).
|
-compile({nowarn_unused_function,v_msg_RpcReply/3}).
|
||||||
-dialyzer({nowarn_function,v_msg_RpcReply/3}).
|
-dialyzer({nowarn_function,v_msg_RpcReply/3}).
|
||||||
v_msg_RpcReply(#'RpcReply'{body = F1}, Path, TrUserData) ->
|
v_msg_RpcReply(#'RpcReply'{reply = F1}, Path, TrUserData) ->
|
||||||
case F1 of
|
case F1 of
|
||||||
undefined -> ok;
|
undefined -> ok;
|
||||||
{result, OF1} -> v_type_bytes(OF1, [result, body | Path], TrUserData);
|
{result, OF1} -> 'v_submsg_RpcReply.RpcResult'(OF1, [result, reply | Path], TrUserData);
|
||||||
{error, OF1} -> v_type_bytes(OF1, [error, body | Path], TrUserData);
|
{error, OF1} -> 'v_submsg_RpcReply.RpcError'(OF1, [error, reply | Path], TrUserData);
|
||||||
_ -> mk_type_error(invalid_oneof, F1, [body | Path])
|
_ -> mk_type_error(invalid_oneof, F1, [reply | Path])
|
||||||
end,
|
end,
|
||||||
ok;
|
ok;
|
||||||
v_msg_RpcReply(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply'}, X, Path).
|
v_msg_RpcReply(X, Path, _TrUserData) -> mk_type_error({expected_msg, 'RpcReply'}, X, Path).
|
||||||
@ -1731,6 +1971,17 @@ v_type_uint32(N, _Path, _TrUserData) when is_integer(N), 0 =< N, N =< 4294967295
|
|||||||
v_type_uint32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, uint32, unsigned, 32}, N, Path);
|
v_type_uint32(N, Path, _TrUserData) when is_integer(N) -> mk_type_error({value_out_of_range, uint32, unsigned, 32}, N, Path);
|
||||||
v_type_uint32(X, Path, _TrUserData) -> mk_type_error({bad_integer, uint32, unsigned, 32}, X, Path).
|
v_type_uint32(X, Path, _TrUserData) -> mk_type_error({bad_integer, uint32, unsigned, 32}, X, Path).
|
||||||
|
|
||||||
|
-compile({nowarn_unused_function,v_type_string/3}).
|
||||||
|
-dialyzer({nowarn_function,v_type_string/3}).
|
||||||
|
v_type_string(S, Path, _TrUserData) when is_list(S); is_binary(S) ->
|
||||||
|
try unicode:characters_to_binary(S) of
|
||||||
|
B when is_binary(B) -> ok;
|
||||||
|
{error, _, _} -> mk_type_error(bad_unicode_string, S, Path)
|
||||||
|
catch
|
||||||
|
error:badarg -> mk_type_error(bad_unicode_string, S, Path)
|
||||||
|
end;
|
||||||
|
v_type_string(X, Path, _TrUserData) -> mk_type_error(bad_unicode_string, X, Path).
|
||||||
|
|
||||||
-compile({nowarn_unused_function,v_type_bytes/3}).
|
-compile({nowarn_unused_function,v_type_bytes/3}).
|
||||||
-dialyzer({nowarn_function,v_type_bytes/3}).
|
-dialyzer({nowarn_function,v_type_bytes/3}).
|
||||||
v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok;
|
v_type_bytes(B, _Path, _TrUserData) when is_binary(B) -> ok;
|
||||||
@ -1804,8 +2055,11 @@ get_msg_defs() ->
|
|||||||
#field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]},
|
#field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]},
|
||||||
{{msg, 'Command'}, [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
{{msg, 'Command'}, [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
||||||
{{msg, 'RpcRequest'}, [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
{{msg, 'RpcRequest'}, [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
||||||
|
{{msg, 'RpcReply.RpcResult'}, [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}]},
|
||||||
|
{{msg, 'RpcReply.RpcError'}, [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]},
|
||||||
{{msg, 'RpcReply'},
|
{{msg, 'RpcReply'},
|
||||||
[#gpb_oneof{name = body, rnum = 2, fields = [#field{name = result, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = bytes, occurrence = optional, opts = []}], opts = []}]},
|
[#gpb_oneof{name = reply, rnum = 2,
|
||||||
|
fields = [#field{name = result, fnum = 1, rnum = 2, type = {msg, 'RpcReply.RpcResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = {msg, 'RpcReply.RpcError'}, occurrence = optional, opts = []}], opts = []}]},
|
||||||
{{msg, 'Data'}, [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
{{msg, 'Data'}, [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}]},
|
||||||
{{msg, 'TaskEventStream'},
|
{{msg, 'TaskEventStream'},
|
||||||
[#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []},
|
[#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []},
|
||||||
@ -1813,13 +2067,13 @@ get_msg_defs() ->
|
|||||||
#field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}].
|
#field{name = stream, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}]}].
|
||||||
|
|
||||||
|
|
||||||
get_msg_names() -> ['RequestFrame', 'ResponseFrame', 'CastFrame', 'AuthRequest', 'AuthReply', 'Pub', 'Command', 'RpcRequest', 'RpcReply', 'Data', 'TaskEventStream'].
|
get_msg_names() -> ['RequestFrame', 'ResponseFrame', 'CastFrame', 'AuthRequest', 'AuthReply', 'Pub', 'Command', 'RpcRequest', 'RpcReply.RpcResult', 'RpcReply.RpcError', 'RpcReply', 'Data', 'TaskEventStream'].
|
||||||
|
|
||||||
|
|
||||||
get_group_names() -> [].
|
get_group_names() -> [].
|
||||||
|
|
||||||
|
|
||||||
get_msg_or_group_names() -> ['RequestFrame', 'ResponseFrame', 'CastFrame', 'AuthRequest', 'AuthReply', 'Pub', 'Command', 'RpcRequest', 'RpcReply', 'Data', 'TaskEventStream'].
|
get_msg_or_group_names() -> ['RequestFrame', 'ResponseFrame', 'CastFrame', 'AuthRequest', 'AuthReply', 'Pub', 'Command', 'RpcRequest', 'RpcReply.RpcResult', 'RpcReply.RpcError', 'RpcReply', 'Data', 'TaskEventStream'].
|
||||||
|
|
||||||
|
|
||||||
get_enum_names() -> [].
|
get_enum_names() -> [].
|
||||||
@ -1865,8 +2119,11 @@ find_msg_def('Pub') ->
|
|||||||
#field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}];
|
#field{name = content, fnum = 3, rnum = 4, type = bytes, occurrence = optional, opts = []}];
|
||||||
find_msg_def('Command') -> [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
find_msg_def('Command') -> [#field{name = command_type, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = command, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
||||||
find_msg_def('RpcRequest') -> [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
find_msg_def('RpcRequest') -> [#field{name = method, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = params, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
||||||
|
find_msg_def('RpcReply.RpcResult') -> [#field{name = data, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}];
|
||||||
|
find_msg_def('RpcReply.RpcError') -> [#field{name = code, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}];
|
||||||
find_msg_def('RpcReply') ->
|
find_msg_def('RpcReply') ->
|
||||||
[#gpb_oneof{name = body, rnum = 2, fields = [#field{name = result, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = bytes, occurrence = optional, opts = []}], opts = []}];
|
[#gpb_oneof{name = reply, rnum = 2,
|
||||||
|
fields = [#field{name = result, fnum = 1, rnum = 2, type = {msg, 'RpcReply.RpcResult'}, occurrence = optional, opts = []}, #field{name = error, fnum = 2, rnum = 2, type = {msg, 'RpcReply.RpcError'}, occurrence = optional, opts = []}], opts = []}];
|
||||||
find_msg_def('Data') -> [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
find_msg_def('Data') -> [#field{name = route_key, fnum = 1, rnum = 2, type = bytes, occurrence = optional, opts = []}, #field{name = metric, fnum = 2, rnum = 3, type = bytes, occurrence = optional, opts = []}];
|
||||||
find_msg_def('TaskEventStream') ->
|
find_msg_def('TaskEventStream') ->
|
||||||
[#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []},
|
[#field{name = task_id, fnum = 1, rnum = 2, type = int32, occurrence = optional, opts = []},
|
||||||
@ -1938,6 +2195,8 @@ fqbin_to_msg_name(<<"AuthReply">>) -> 'AuthReply';
|
|||||||
fqbin_to_msg_name(<<"Pub">>) -> 'Pub';
|
fqbin_to_msg_name(<<"Pub">>) -> 'Pub';
|
||||||
fqbin_to_msg_name(<<"Command">>) -> 'Command';
|
fqbin_to_msg_name(<<"Command">>) -> 'Command';
|
||||||
fqbin_to_msg_name(<<"RpcRequest">>) -> 'RpcRequest';
|
fqbin_to_msg_name(<<"RpcRequest">>) -> 'RpcRequest';
|
||||||
|
fqbin_to_msg_name(<<"RpcReply.RpcResult">>) -> 'RpcReply.RpcResult';
|
||||||
|
fqbin_to_msg_name(<<"RpcReply.RpcError">>) -> 'RpcReply.RpcError';
|
||||||
fqbin_to_msg_name(<<"RpcReply">>) -> 'RpcReply';
|
fqbin_to_msg_name(<<"RpcReply">>) -> 'RpcReply';
|
||||||
fqbin_to_msg_name(<<"Data">>) -> 'Data';
|
fqbin_to_msg_name(<<"Data">>) -> 'Data';
|
||||||
fqbin_to_msg_name(<<"TaskEventStream">>) -> 'TaskEventStream';
|
fqbin_to_msg_name(<<"TaskEventStream">>) -> 'TaskEventStream';
|
||||||
@ -1952,6 +2211,8 @@ msg_name_to_fqbin('AuthReply') -> <<"AuthReply">>;
|
|||||||
msg_name_to_fqbin('Pub') -> <<"Pub">>;
|
msg_name_to_fqbin('Pub') -> <<"Pub">>;
|
||||||
msg_name_to_fqbin('Command') -> <<"Command">>;
|
msg_name_to_fqbin('Command') -> <<"Command">>;
|
||||||
msg_name_to_fqbin('RpcRequest') -> <<"RpcRequest">>;
|
msg_name_to_fqbin('RpcRequest') -> <<"RpcRequest">>;
|
||||||
|
msg_name_to_fqbin('RpcReply.RpcResult') -> <<"RpcReply.RpcResult">>;
|
||||||
|
msg_name_to_fqbin('RpcReply.RpcError') -> <<"RpcReply.RpcError">>;
|
||||||
msg_name_to_fqbin('RpcReply') -> <<"RpcReply">>;
|
msg_name_to_fqbin('RpcReply') -> <<"RpcReply">>;
|
||||||
msg_name_to_fqbin('Data') -> <<"Data">>;
|
msg_name_to_fqbin('Data') -> <<"Data">>;
|
||||||
msg_name_to_fqbin('TaskEventStream') -> <<"TaskEventStream">>;
|
msg_name_to_fqbin('TaskEventStream') -> <<"TaskEventStream">>;
|
||||||
@ -1993,7 +2254,7 @@ get_all_source_basenames() -> ["message.proto"].
|
|||||||
get_all_proto_names() -> ["message"].
|
get_all_proto_names() -> ["message"].
|
||||||
|
|
||||||
|
|
||||||
get_msg_containment("message") -> ['AuthReply', 'AuthRequest', 'CastFrame', 'Command', 'Data', 'Pub', 'RequestFrame', 'ResponseFrame', 'RpcReply', 'RpcRequest', 'TaskEventStream'];
|
get_msg_containment("message") -> ['AuthReply', 'AuthRequest', 'CastFrame', 'Command', 'Data', 'Pub', 'RequestFrame', 'ResponseFrame', 'RpcReply', 'RpcReply.RpcError', 'RpcReply.RpcResult', 'RpcRequest', 'TaskEventStream'];
|
||||||
get_msg_containment(P) -> error({gpb_error, {badproto, P}}).
|
get_msg_containment(P) -> error({gpb_error, {badproto, P}}).
|
||||||
|
|
||||||
|
|
||||||
@ -2014,8 +2275,10 @@ get_enum_containment(P) -> error({gpb_error, {badproto, P}}).
|
|||||||
|
|
||||||
|
|
||||||
get_proto_by_msg_name_as_fqbin(<<"Data">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"Data">>) -> "message";
|
||||||
|
get_proto_by_msg_name_as_fqbin(<<"RpcReply.RpcError">>) -> "message";
|
||||||
get_proto_by_msg_name_as_fqbin(<<"Pub">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"Pub">>) -> "message";
|
||||||
get_proto_by_msg_name_as_fqbin(<<"RpcRequest">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"RpcRequest">>) -> "message";
|
||||||
|
get_proto_by_msg_name_as_fqbin(<<"RpcReply.RpcResult">>) -> "message";
|
||||||
get_proto_by_msg_name_as_fqbin(<<"Command">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"Command">>) -> "message";
|
||||||
get_proto_by_msg_name_as_fqbin(<<"AuthRequest">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"AuthRequest">>) -> "message";
|
||||||
get_proto_by_msg_name_as_fqbin(<<"ResponseFrame">>) -> "message";
|
get_proto_by_msg_name_as_fqbin(<<"ResponseFrame">>) -> "message";
|
||||||
|
|||||||
@ -26,8 +26,8 @@ handle_request("GET", "/container/get_all", #{<<"uuid">> := UUID}, _) when is_bi
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(-1, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(-1, Reason)}
|
{ok, 200, iot_util:json_error(-1, Reason)}
|
||||||
@ -51,8 +51,8 @@ handle_request("POST", "/container/push_config", _,
|
|||||||
case iot_host:await_reply(Pid, Ref, Timeout) of
|
case iot_host:await_reply(Pid, Ref, Timeout) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(-1, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(-1, Reason)}
|
{ok, 200, iot_util:json_error(-1, Reason)}
|
||||||
@ -78,8 +78,8 @@ handle_request("POST", "/container/deploy", _, #{<<"uuid">> := UUID, <<"task_id"
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(400, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(400, Reason)}
|
{ok, 200, iot_util:json_error(400, Reason)}
|
||||||
@ -101,8 +101,8 @@ handle_request("POST", "/container/start", _, #{<<"uuid">> := UUID, <<"container
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(400, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(400, Reason)}
|
{ok, 200, iot_util:json_error(400, Reason)}
|
||||||
@ -120,8 +120,8 @@ handle_request("POST", "/container/stop", _, #{<<"uuid">> := UUID, <<"container_
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(400, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(400, Reason)}
|
{ok, 200, iot_util:json_error(400, Reason)}
|
||||||
@ -138,8 +138,8 @@ handle_request("POST", "/container/kill", _, #{<<"uuid">> := UUID, <<"container_
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(400, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(400, Reason)}
|
{ok, 200, iot_util:json_error(400, Reason)}
|
||||||
@ -157,8 +157,8 @@ handle_request("POST", "/container/remove", _, #{<<"uuid">> := UUID, <<"containe
|
|||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, rpc_success_response(Result)};
|
{ok, 200, rpc_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Code, Reason} ->
|
||||||
{ok, 200, rpc_error_response(400, Reason)}
|
rpc_error_http_response(Code, Reason)
|
||||||
end;
|
end;
|
||||||
{error, Reason} when is_binary(Reason) ->
|
{error, Reason} when is_binary(Reason) ->
|
||||||
{ok, 200, iot_util:json_error(400, Reason)}
|
{ok, 200, iot_util:json_error(400, Reason)}
|
||||||
@ -330,6 +330,19 @@ rpc_error_response(Code, Reason) when is_integer(Code), is_binary(Reason) ->
|
|||||||
iot_util:json_error(Code, Reason)
|
iot_util:json_error(Code, Reason)
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
-spec rpc_error_http_response(Code :: integer(), Reason :: binary()) ->
|
||||||
|
{ok, HttpStatus :: integer(), Body :: iolist()}.
|
||||||
|
rpc_error_http_response(Code, Reason) when is_integer(Code), is_binary(Reason) ->
|
||||||
|
{ok, rpc_error_status(Code), rpc_error_response(Code, Reason)}.
|
||||||
|
|
||||||
|
-spec rpc_error_status(Code :: integer()) -> integer().
|
||||||
|
rpc_error_status(Code) when is_integer(Code), Code >= 400, Code < 600 ->
|
||||||
|
Code;
|
||||||
|
rpc_error_status(-1) ->
|
||||||
|
504;
|
||||||
|
rpc_error_status(_) ->
|
||||||
|
400.
|
||||||
|
|
||||||
decode_json_bytes(Data) when is_binary(Data) ->
|
decode_json_bytes(Data) when is_binary(Data) ->
|
||||||
case catch jiffy:decode(Data, [return_maps]) of
|
case catch jiffy:decode(Data, [return_maps]) of
|
||||||
{'EXIT', _} ->
|
{'EXIT', _} ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user