From ba391f4b6e26d6a1eaa25e9b2d1a4fdc9dc87f22 Mon Sep 17 00:00:00 2001 From: anlicheng <244108715@qq.com> Date: Tue, 6 May 2025 13:14:26 +0800 Subject: [PATCH] fix --- apps/efka/include/message_pb.hrl | 5 +- apps/efka/src/efka_agent.erl | 6 +- apps/efka/src/efka_downloader.erl | 28 +++---- apps/efka/src/efka_inetd.erl | 25 +++--- apps/efka/src/proto/message_pb.erl | 121 ++++++++++++++++++----------- message_pb.proto | 5 +- 6 files changed, 109 insertions(+), 81 deletions(-) diff --git a/apps/efka/include/message_pb.hrl b/apps/efka/include/message_pb.hrl index 6a57228..07f9171 100644 --- a/apps/efka/include/message_pb.hrl +++ b/apps/efka/include/message_pb.hrl @@ -38,8 +38,9 @@ -ifndef('DEPLOY_PB_H'). -define('DEPLOY_PB_H', true). -record(deploy, - {from = <<>> :: unicode:chardata() | undefined, % = 1, optional - service_id = <<>> :: unicode:chardata() | undefined % = 2, optional + {task_id = 0 :: non_neg_integer() | undefined, % = 1, optional, 32 bits + from = <<>> :: unicode:chardata() | undefined, % = 2, optional + service_id = <<>> :: unicode:chardata() | undefined % = 3, optional }). -endif. diff --git a/apps/efka/src/efka_agent.erl b/apps/efka/src/efka_agent.erl index 33e06d2..1864b62 100644 --- a/apps/efka/src/efka_agent.erl +++ b/apps/efka/src/efka_agent.erl @@ -200,12 +200,12 @@ handle_info({auth_reply, {error, Reason}}, State = #state{transport_pid = Transp %% 微服务部署 handle_info({server_push_message, PacketId, <>}, State = #state{transport_pid = TransportPid}) -> - #deploy{from = From, service_id = ServiceId} = message_pb:decode_msg(DeployBin, deploy), + #deploy{task_id = TaskId, from = From, service_id = ServiceId} = message_pb:decode_msg(DeployBin, deploy), - Reply = case efka_inetd:deploy(ServiceId, From) of + Reply = case efka_inetd:deploy(TaskId, ServiceId, From) of ok -> #deploy_reply{is_ok = true, message = <<"">>}; - {error, Reason} -> + {error, Reason} when is_binary(Reason) -> #deploy_reply{is_ok = false, message = Reason} end, efka_transport:response(TransportPid, PacketId, message_pb:encode_msg(Reply)), diff --git a/apps/efka/src/efka_downloader.erl b/apps/efka/src/efka_downloader.erl index 492667e..378ed8d 100644 --- a/apps/efka/src/efka_downloader.erl +++ b/apps/efka/src/efka_downloader.erl @@ -12,7 +12,7 @@ -behaviour(gen_server). %% API --export([start_link/0, download/3]). +-export([start_monitor/0, download/3]). -export([test/0]). %% gen_server callbacks @@ -27,7 +27,7 @@ %%%=================================================================== test() -> - {ok, Pid} = start_link(), + {ok, Pid} = start_monitor(), Url = "http://118.178.229.213:3000/anlicheng/ekfa/archive/main.tar.gz", TargetDir = "/tmp/", Ref = download(Pid, Url, TargetDir), @@ -39,16 +39,13 @@ test() -> -spec download(Pid :: pid(), Url :: string(), TargetDir :: string()) -> reference(). download(Pid, Url, TargetDir) when is_pid(Pid), is_list(Url), is_list(TargetDir) -> - Ref = make_ref(), - ReceiverPid = self(), - gen_server:cast(Pid, {download, ReceiverPid, Ref, Url, TargetDir}), - Ref. + gen_server:cast(Pid, {download, Url, TargetDir}). %% @doc Spawns the server and registers the local name (unique) --spec(start_link() -> - {ok, Pid :: pid()} | ignore | {error, Reason :: term()}). -start_link() -> - gen_server:start_link(?MODULE, [], []). +-spec(start_monitor() -> + {ok, {Pid :: pid(), Ref :: reference()}} | ignore | {error, Reason :: term()}). +start_monitor() -> + gen_server:start_monitor(?MODULE, [], []). %%%=================================================================== %%% gen_server callbacks @@ -81,7 +78,7 @@ handle_call(_Request, _From, State = #state{}) -> {noreply, NewState :: #state{}} | {noreply, NewState :: #state{}, timeout() | hibernate} | {stop, Reason :: term(), NewState :: #state{}}). -handle_cast({download, ReceiverPid, Ref, Url, TargetDir}, State = #state{}) -> +handle_cast({download, Url, TargetDir}, State = #state{}) -> SslOpts = [ {ssl, [ % 完全禁用证书验证 @@ -100,16 +97,15 @@ handle_cast({download, ReceiverPid, Ref, Url, TargetDir}, State = #state{}) -> EndTs = os:timestamp(), %% 计算操作的时间,单位为毫秒 CostMs = timer:now_diff(EndTs, StartTs) div 1000, - ReceiverPid ! {download_response, Ref, {ok, CostMs}}; + {stop, {ok, CostMs}, State}; {error, Reason} -> %% 出错需要删除掉文件 file:delete(FullFilename), - ReceiverPid ! {download_response, Ref, {error, Reason}} + {stop, {error, Reason}, State} end; {error, Reason} -> - ReceiverPid ! {download_response, Ref, {error, Reason}} - end, - {noreply, State}. + {stop, {error, Reason}, State} + end. %% @private %% @doc Handling all non call/cast messages diff --git a/apps/efka/src/efka_inetd.erl b/apps/efka/src/efka_inetd.erl index 799a8ee..b3439f8 100644 --- a/apps/efka/src/efka_inetd.erl +++ b/apps/efka/src/efka_inetd.erl @@ -15,7 +15,7 @@ %% API -export([start_link/0]). --export([deploy/2]). +-export([deploy/3]). -export([ensure_dirs/3, check_lock/1]). %% gen_server callbacks @@ -24,15 +24,18 @@ -define(SERVER, ?MODULE). -record(state, { - root_dir :: string() + root_dir :: string(), + %% 建立任务到ref之间的映射, #{MRef => taskId} + task_map = #{} }). %%%=================================================================== %%% API %%%=================================================================== -deploy(ServerId, From) when is_binary(ServerId), is_binary(From) -> - gen_server:call(?SERVER, {deploy, ServerId, From}). +-spec deploy(TaskId :: integer(), ServerId :: binary(), From :: binary()) -> ok | {error, Reason :: binary()}. +deploy(TaskId, ServerId, From) when is_integer(TaskId), is_binary(ServerId), is_binary(From) -> + gen_server:call(?SERVER, {deploy, TaskId, ServerId, From}). %% @doc Spawns the server and registers the local name (unique) -spec(start_link() -> @@ -63,7 +66,7 @@ init([]) -> {noreply, NewState :: #state{}, timeout() | hibernate} | {stop, Reason :: term(), Reply :: term(), NewState :: #state{}} | {stop, Reason :: term(), NewState :: #state{}}). -handle_call({deploy, ServerId, From}, _From, State = #state{root_dir = RootDir}) -> +handle_call({deploy, TaskId, ServerId, From}, _From, State = #state{root_dir = RootDir, task_map = TaskMap}) -> %% 创建目录 {ok, ServerRootDir} = ensure_dirs(RootDir, ServerId, From), case check_lock(ServerRootDir) of @@ -73,16 +76,14 @@ handle_call({deploy, ServerId, From}, _From, State = #state{root_dir = RootDir}) DownloadUrl = make_download_url(From), case check_download_url(DownloadUrl) of ok -> - {reply, ok, State}; + {ok, {TaskPid, MRef}} = efka_downloader:start_monitor(), + efka_downloader:download(TaskPid, DownloadUrl, ServerRootDir), + {reply, ok, State#state{task_map = maps:put(MRef, TaskId, TaskMap)}}; + {error, Reason} -> lager:debug("[efka_inetd] check_download_url: ~p, get error: ~p", [DownloadUrl, Reason]), {reply, {error, <<"download url error">>}, State} - end, - - {ok, TaskPid} = efka_downloader:start_link(), - efka_downloader:download(TaskPid, DownloadUrl, ServerRootDir), - - ok + end end; handle_call(_Request, _From, State = #state{}) -> diff --git a/apps/efka/src/proto/message_pb.erl b/apps/efka/src/proto/message_pb.erl index ea03566..ebb09f1 100644 --- a/apps/efka/src/proto/message_pb.erl +++ b/apps/efka/src/proto/message_pb.erl @@ -235,24 +235,33 @@ encode_msg_activate_push(#activate_push{auth = F1}, Bin, TrUserData) -> encode_msg_deploy(Msg, TrUserData) -> encode_msg_deploy(Msg, <<>>, TrUserData). -encode_msg_deploy(#deploy{from = F1, service_id = F2}, Bin, TrUserData) -> +encode_msg_deploy(#deploy{task_id = F1, from = F2, service_id = F3}, Bin, TrUserData) -> B1 = if F1 == undefined -> Bin; true -> begin TrF1 = id(F1, TrUserData), - case is_empty_string(TrF1) of - true -> Bin; - false -> e_type_string(TrF1, <>, TrUserData) + if TrF1 =:= 0 -> Bin; + true -> e_varint(TrF1, <>, TrUserData) end end end, - if F2 == undefined -> B1; + B2 = if F2 == undefined -> B1; + true -> + begin + TrF2 = id(F2, TrUserData), + case is_empty_string(TrF2) of + true -> B1; + false -> e_type_string(TrF2, <>, TrUserData) + end + end + end, + if F3 == undefined -> B2; true -> begin - TrF2 = id(F2, TrUserData), - case is_empty_string(TrF2) of - true -> B1; - false -> e_type_string(TrF2, <>, TrUserData) + TrF3 = id(F3, TrUserData), + case is_empty_string(TrF3) of + true -> B2; + false -> e_type_string(TrF3, <>, TrUserData) end end end. @@ -1061,56 +1070,63 @@ skip_32_activate_push(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp skip_64_activate_push(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, TrUserData) -> dfp_read_field_def_activate_push(Rest, Z1, Z2, F, F@_1, TrUserData). -decode_msg_deploy(Bin, TrUserData) -> dfp_read_field_def_deploy(Bin, 0, 0, 0, id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). +decode_msg_deploy(Bin, TrUserData) -> dfp_read_field_def_deploy(Bin, 0, 0, 0, id(0, TrUserData), id(<<>>, TrUserData), id(<<>>, TrUserData), TrUserData). -dfp_read_field_def_deploy(<<10, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_deploy_from(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_deploy(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> d_field_deploy_service_id(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -dfp_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, _) -> #deploy{from = F@_1, service_id = F@_2}; -dfp_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dg_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, TrUserData). +dfp_read_field_def_deploy(<<8, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_task_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<18, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_from(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<26, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> d_field_deploy_service_id(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +dfp_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #deploy{task_id = F@_1, from = F@_2, service_id = F@_3}; +dfp_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dg_read_field_def_deploy(Other, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -dg_read_field_def_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 32 - 7 -> dg_read_field_def_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -dg_read_field_def_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, TrUserData) -> +dg_read_field_def_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 32 - 7 -> dg_read_field_def_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +dg_read_field_def_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, _, F@_1, F@_2, F@_3, TrUserData) -> Key = X bsl N + Acc, case Key of - 10 -> d_field_deploy_from(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); - 18 -> d_field_deploy_service_id(Rest, 0, 0, 0, F@_1, F@_2, TrUserData); + 8 -> d_field_deploy_task_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 18 -> d_field_deploy_from(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); + 26 -> d_field_deploy_service_id(Rest, 0, 0, 0, F@_1, F@_2, F@_3, TrUserData); _ -> case Key band 7 of - 0 -> skip_varint_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 1 -> skip_64_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 2 -> skip_length_delimited_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 3 -> skip_group_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData); - 5 -> skip_32_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, TrUserData) + 0 -> skip_varint_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 1 -> skip_64_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 2 -> skip_length_delimited_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 3 -> skip_group_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData); + 5 -> skip_32_deploy(Rest, 0, 0, Key bsr 3, F@_1, F@_2, F@_3, TrUserData) end end; -dg_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, _) -> #deploy{from = F@_1, service_id = F@_2}. +dg_read_field_def_deploy(<<>>, 0, 0, _, F@_1, F@_2, F@_3, _) -> #deploy{task_id = F@_1, from = F@_2, service_id = F@_3}. -d_field_deploy_from(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_deploy_from(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_deploy_from(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, TrUserData) -> +d_field_deploy_task_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_task_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_task_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, _, F@_2, F@_3, TrUserData) -> + {NewFValue, RestF} = {id((X bsl N + Acc) band 4294967295, TrUserData), Rest}, + dfp_read_field_def_deploy(RestF, 0, 0, F, NewFValue, F@_2, F@_3, TrUserData). + +d_field_deploy_from(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_from(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_from(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, F@_3, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_deploy(RestF, 0, 0, F, NewFValue, F@_2, TrUserData). + dfp_read_field_def_deploy(RestF, 0, 0, F, F@_1, NewFValue, F@_3, TrUserData). -d_field_deploy_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> d_field_deploy_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -d_field_deploy_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, _, TrUserData) -> +d_field_deploy_service_id(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> d_field_deploy_service_id(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +d_field_deploy_service_id(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, _, TrUserData) -> {NewFValue, RestF} = begin Len = X bsl N + Acc, <> = Rest, Bytes2 = binary:copy(Bytes), {id(Bytes2, TrUserData), Rest2} end, - dfp_read_field_def_deploy(RestF, 0, 0, F, F@_1, NewFValue, TrUserData). + dfp_read_field_def_deploy(RestF, 0, 0, F, F@_1, F@_2, NewFValue, TrUserData). -skip_varint_deploy(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> skip_varint_deploy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData); -skip_varint_deploy(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_varint_deploy(<<1:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> skip_varint_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData); +skip_varint_deploy(<<0:1, _:7, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_length_delimited_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) when N < 57 -> skip_length_delimited_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, TrUserData); -skip_length_delimited_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, TrUserData) -> +skip_length_delimited_deploy(<<1:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) when N < 57 -> skip_length_delimited_deploy(Rest, N + 7, X bsl N + Acc, F, F@_1, F@_2, F@_3, TrUserData); +skip_length_delimited_deploy(<<0:1, X:7, Rest/binary>>, N, Acc, F, F@_1, F@_2, F@_3, TrUserData) -> Length = X bsl N + Acc, <<_:Length/binary, Rest2/binary>> = Rest, - dfp_read_field_def_deploy(Rest2, 0, 0, F, F@_1, F@_2, TrUserData). + dfp_read_field_def_deploy(Rest2, 0, 0, F, F@_1, F@_2, F@_3, TrUserData). -skip_group_deploy(Bin, _, Z2, FNum, F@_1, F@_2, TrUserData) -> +skip_group_deploy(Bin, _, Z2, FNum, F@_1, F@_2, F@_3, TrUserData) -> {_, Rest} = read_group(Bin, FNum), - dfp_read_field_def_deploy(Rest, 0, Z2, FNum, F@_1, F@_2, TrUserData). + dfp_read_field_def_deploy(Rest, 0, Z2, FNum, F@_1, F@_2, F@_3, TrUserData). -skip_32_deploy(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_32_deploy(<<_:32, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). -skip_64_deploy(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, TrUserData). +skip_64_deploy(<<_:64, Rest/binary>>, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData) -> dfp_read_field_def_deploy(Rest, Z1, Z2, F, F@_1, F@_2, F@_3, TrUserData). decode_msg_deploy_reply(Bin, TrUserData) -> dfp_read_field_def_deploy_reply(Bin, 0, 0, 0, id(false, TrUserData), id(<<>>, TrUserData), TrUserData). @@ -2044,8 +2060,12 @@ merge_msg_activate_push(#activate_push{auth = PFauth}, #activate_push{auth = NFa end}. -compile({nowarn_unused_function,merge_msg_deploy/3}). -merge_msg_deploy(#deploy{from = PFfrom, service_id = PFservice_id}, #deploy{from = NFfrom, service_id = NFservice_id}, _) -> - #deploy{from = +merge_msg_deploy(#deploy{task_id = PFtask_id, from = PFfrom, service_id = PFservice_id}, #deploy{task_id = NFtask_id, from = NFfrom, service_id = NFservice_id}, _) -> + #deploy{task_id = + if NFtask_id =:= undefined -> PFtask_id; + true -> NFtask_id + end, + from = if NFfrom =:= undefined -> PFfrom; true -> NFfrom end, @@ -2335,12 +2355,15 @@ v_msg_activate_push(X, Path, _TrUserData) -> mk_type_error({expected_msg, activa -compile({nowarn_unused_function,v_msg_deploy/3}). -dialyzer({nowarn_function,v_msg_deploy/3}). -v_msg_deploy(#deploy{from = F1, service_id = F2}, Path, TrUserData) -> +v_msg_deploy(#deploy{task_id = F1, from = F2, service_id = F3}, Path, TrUserData) -> if F1 == undefined -> ok; - true -> v_type_string(F1, [from | Path], TrUserData) + true -> v_type_uint32(F1, [task_id | Path], TrUserData) end, if F2 == undefined -> ok; - true -> v_type_string(F2, [service_id | Path], TrUserData) + true -> v_type_string(F2, [from | Path], TrUserData) + end, + if F3 == undefined -> ok; + true -> v_type_string(F3, [service_id | Path], TrUserData) end, ok; v_msg_deploy(X, Path, _TrUserData) -> mk_type_error({expected_msg, deploy}, X, Path). @@ -2677,7 +2700,10 @@ get_msg_defs() -> #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, #field{name = repository_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, {{msg, activate_push}, [#field{name = auth, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, - {{msg, deploy}, [#field{name = from, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = service_id, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, + {{msg, deploy}, + [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #field{name = from, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = service_id, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]}, {{msg, deploy_reply}, [#field{name = is_ok, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, topic_message}, [#field{name = topic, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = content, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]}, {{msg, session_reply}, [#field{name = a, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]}, @@ -2754,7 +2780,10 @@ find_msg_def(auth_reply) -> #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, #field{name = repository_url, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; find_msg_def(activate_push) -> [#field{name = auth, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; -find_msg_def(deploy) -> [#field{name = from, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = service_id, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; +find_msg_def(deploy) -> + [#field{name = task_id, fnum = 1, rnum = 2, type = uint32, occurrence = optional, opts = []}, + #field{name = from, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}, + #field{name = service_id, fnum = 3, rnum = 4, type = string, occurrence = optional, opts = []}]; find_msg_def(deploy_reply) -> [#field{name = is_ok, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}, #field{name = message, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def(topic_message) -> [#field{name = topic, fnum = 1, rnum = 2, type = string, occurrence = optional, opts = []}, #field{name = content, fnum = 2, rnum = 3, type = string, occurrence = optional, opts = []}]; find_msg_def(session_reply) -> [#field{name = a, fnum = 1, rnum = 2, type = bool, occurrence = optional, opts = []}]; diff --git a/message_pb.proto b/message_pb.proto index 0d8c293..1694a92 100644 --- a/message_pb.proto +++ b/message_pb.proto @@ -23,8 +23,9 @@ message ActivatePush { // 部署逻辑 message Deploy { - string from = 1; - string service_id = 2; + uint32 task_id = 1; + string from = 2; + string service_id = 3; } message DeployReply {