fix 消息格式
This commit is contained in:
parent
bc0f906f66
commit
94d20f88f4
@ -125,9 +125,11 @@ remove_container(Pid, ContainerName) when is_pid(Pid), is_binary(ContainerName)
|
|||||||
container_call(Pid, docker_container_builder:remove_request(ContainerName)).
|
container_call(Pid, docker_container_builder:remove_request(ContainerName)).
|
||||||
|
|
||||||
-spec await_reply(Pid :: pid(), Ref :: reference(), Timeout :: integer()) ->
|
-spec await_reply(Pid :: pid(), Ref :: reference(), Timeout :: integer()) ->
|
||||||
{ok, Result :: term()} | {error, Reason :: term()}.
|
ok | {ok, Result :: term()} | {error, Reason :: term()}.
|
||||||
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
|
||||||
|
{request_reply, Ref, ok} ->
|
||||||
|
ok;
|
||||||
{request_reply, Ref, {ok, Result}} ->
|
{request_reply, Ref, {ok, Result}} ->
|
||||||
{ok, Result};
|
{ok, Result};
|
||||||
{request_reply, Ref, {error, Reason}} ->
|
{request_reply, Ref, {error, Reason}} ->
|
||||||
|
|||||||
@ -24,6 +24,8 @@ handle_request("GET", "/container/get_all", #{<<"uuid">> := UUID}, _) when is_bi
|
|||||||
case iot_host:get_containers(Pid) of
|
case iot_host:get_containers(Pid) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -49,6 +51,8 @@ handle_request("POST", "/container/push_config", _,
|
|||||||
case iot_host:config_container(Pid, ContainerName, Config) of
|
case iot_host:config_container(Pid, ContainerName, Config) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, Timeout) of
|
case iot_host:await_reply(Pid, Ref, Timeout) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -69,6 +73,8 @@ handle_request("POST", "/container/deploy", _, #{<<"uuid">> := UUID, <<"task_id"
|
|||||||
case iot_host:deploy_container(Pid, TaskId, Config) of
|
case iot_host:deploy_container(Pid, TaskId, Config) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -88,6 +94,8 @@ handle_request("POST", "/container/start", _, #{<<"uuid">> := UUID, <<"container
|
|||||||
case iot_host:start_container(Pid, ContainerName) of
|
case iot_host:start_container(Pid, ContainerName) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -107,6 +115,8 @@ handle_request("POST", "/container/stop", _, #{<<"uuid">> := UUID, <<"container_
|
|||||||
case iot_host:stop_container(Pid, ContainerName) of
|
case iot_host:stop_container(Pid, ContainerName) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -125,6 +135,8 @@ handle_request("POST", "/container/kill", _, #{<<"uuid">> := UUID, <<"container_
|
|||||||
case iot_host:kill_container(Pid, ContainerName) of
|
case iot_host:kill_container(Pid, ContainerName) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
@ -144,6 +156,8 @@ handle_request("POST", "/container/remove", _, #{<<"uuid">> := UUID, <<"containe
|
|||||||
case iot_host:remove_container(Pid, ContainerName) of
|
case iot_host:remove_container(Pid, ContainerName) of
|
||||||
{ok, Ref} ->
|
{ok, Ref} ->
|
||||||
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
case iot_host:await_reply(Pid, Ref, ?REQ_TIMEOUT) of
|
||||||
|
ok ->
|
||||||
|
{ok, 200, request_success_response(<<"ok">>)};
|
||||||
{ok, Result} ->
|
{ok, Result} ->
|
||||||
{ok, 200, request_success_response(Result)};
|
{ok, 200, request_success_response(Result)};
|
||||||
{error, Reason} ->
|
{error, Reason} ->
|
||||||
|
|||||||
@ -196,7 +196,7 @@ handle_request_frame(Ref,
|
|||||||
case iot_host:attach_channel(HostPid, self()) of
|
case iot_host:attach_channel(HostPid, self()) of
|
||||||
ok ->
|
ok ->
|
||||||
erlang:monitor(process, HostPid),
|
erlang:monitor(process, HostPid),
|
||||||
send_reply_frame(Transport, Socket, Ref, {auth_response, {ok, <<"ok">>}}),
|
send_reply_frame(Transport, Socket, Ref, {auth_response, ok}),
|
||||||
{noreply, State#state{uuid = UUID, host_pid = HostPid}};
|
{noreply, State#state{uuid = UUID, host_pid = HostPid}};
|
||||||
{denied, Reason} when is_binary(Reason) ->
|
{denied, Reason} when is_binary(Reason) ->
|
||||||
erlang:monitor(process, HostPid),
|
erlang:monitor(process, HostPid),
|
||||||
@ -265,8 +265,10 @@ send_reply_frame(Transport, Socket, Ref, Reply) ->
|
|||||||
Packet = term_to_binary({response, Ref, Reply}),
|
Packet = term_to_binary({response, Ref, Reply}),
|
||||||
Transport:send(Socket, Packet).
|
Transport:send(Socket, Packet).
|
||||||
|
|
||||||
-spec decode_reply({container_response, {ok, term()} | {error, term()}} | tuple()) ->
|
-spec decode_reply({container_response, ok | {ok, term()} | {error, term()}} | tuple()) ->
|
||||||
{ok, term()} | {error, term()}.
|
ok | {ok, term()} | {error, term()}.
|
||||||
|
decode_reply({container_response, ok}) ->
|
||||||
|
ok;
|
||||||
decode_reply({container_response, {ok, Result}}) ->
|
decode_reply({container_response, {ok, Result}}) ->
|
||||||
{ok, Result};
|
{ok, Result};
|
||||||
decode_reply({container_response, {error, Reason}}) ->
|
decode_reply({container_response, {error, Reason}}) ->
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user