summaryrefslogtreecommitdiff
path: root/components/schedule
diff options
context:
space:
mode:
authorUlf Wiger <ulf@wiger.net>2015-06-02 18:06:24 +0200
committerUlf Wiger <ulf@feuerlabs.com>2015-06-10 11:31:17 +0200
commit72d6344a9e95b79ac5166a43255f14481641b30c (patch)
tree2c6e4955f0ab668d6edc8db79d2cd4887c643c42 /components/schedule
parent328c1c0917ca36ce4aaa46ca529548d4e14f9b30 (diff)
downloadrvi_core-72d6344a9e95b79ac5166a43255f14481641b30c.tar.gz
Service invocation signed and validated
Diffstat (limited to 'components/schedule')
-rw-r--r--components/schedule/src/rvi_schedule.erl4
-rw-r--r--components/schedule/src/schedule_rpc.erl47
2 files changed, 15 insertions, 36 deletions
diff --git a/components/schedule/src/rvi_schedule.erl b/components/schedule/src/rvi_schedule.erl
index 2b4606e..f99f74e 100644
--- a/components/schedule/src/rvi_schedule.erl
+++ b/components/schedule/src/rvi_schedule.erl
@@ -14,9 +14,7 @@
SvcName :: string(),
Timeout :: integer(),
Parameters :: any(),
- Signature :: string(),
- Certificate :: string()) -> Result::tuple().
-
+ Signature :: binary()) -> Result::tuple().
-callback register_remote_services(CompSpec :: #component_spec{},
NetworkAddress :: string(),
diff --git a/components/schedule/src/schedule_rpc.erl b/components/schedule/src/schedule_rpc.erl
index 8289234..4726521 100644
--- a/components/schedule/src/schedule_rpc.erl
+++ b/components/schedule/src/schedule_rpc.erl
@@ -13,7 +13,7 @@
-include_lib("rvi_common/include/rvi_common.hrl").
%% API
-export([start_link/0]).
--export([schedule_message/6]).
+-export([schedule_message/5]).
%% Invoked by service discovery
%% FIXME: Should be rvi_service_discovery behavior
@@ -64,8 +64,7 @@
routes, %% Routes retrieved for this
timeout_tref, %% Reference to erlang timer associated with this message.
parameters,
- signature,
- certificate
+ signature
}).
@@ -125,16 +124,14 @@ schedule_message(CompSpec,
SvcName,
Timeout,
Parameters,
- Signature,
- Certificate) ->
+ Signature) ->
rvi_common:request(schedule, ?MODULE,
schedule_message,
[{ service, SvcName },
{ timeout, Timeout },
{ parameters, Parameters },
- { signature, Signature },
- { certificate, Certificate }],
+ { signature, Signature }],
[status, transaction_id], CompSpec).
@@ -162,20 +159,17 @@ handle_rpc("schedule_message", Args) ->
{ok, Timeout} = rvi_common:get_json_element(["timeout"], Args),
{ok, Parameters} = rvi_common:get_json_element(["parameters"], Args),
{ok, Signature} = rvi_common:get_json_element(["signature"], Args),
- {ok, Certificate} = rvi_common:get_json_element(["certificate"], Args),
?debug("schedule_rpc:schedule_request(): service: ~p", [ SvcName]),
?debug("schedule_rpc:schedule_request(): timeout: ~p", [ Timeout]),
%% ?debug("schedule_rpc:schedule_request(): parameters: ~p", [Parameters]),
?debug("schedule_rpc:schedule_request(): signature: ~p", [Signature]),
- ?debug("schedule_rpc:schedule_request(): certificate: ~p", [Certificate]),
[ok, TransID] = gen_server:call(?SERVER, { rvi, schedule_message,
[ SvcName,
Timeout,
Parameters,
- Signature,
- Certificate]}),
+ Signature]}),
{ok, [ { status, rvi_common:json_rpc_status(ok)},
{ transaction_id, TransID } ] };
@@ -214,14 +208,12 @@ handle_call( { rvi, schedule_message,
[SvcName,
Timeout,
Parameters,
- Signature,
- Certificate] }, _From, St) ->
+ Signature] }, _From, St) ->
?debug("sched:sched_msg(): service: ~p", [SvcName]),
?debug("sched:sched_msg(): timeout: ~p", [Timeout]),
?debug("sched:sched_msg(): parameters: ~p", [Parameters]),
?debug("sched:sched_msg(): signature: ~p", [Signature]),
- ?debug("sched:sched_msg(): certificate ~p", [Certificate]),
%%?debug("sched:sched_msg(): St: ~p", [St]),
%% Create a transaction ID
@@ -233,8 +225,7 @@ handle_call( { rvi, schedule_message,
rvi_routing:get_service_routes(SvcName), %% Can be [] (no route)
Timeout,
Parameters,
- Signature,
- Certificate,
+ Signature,
NSt1),
{ reply, [ok, TransID], NSt2 };
@@ -349,7 +340,6 @@ handle_info({ rvi_message_timeout, SvcName, DLMod,TransID},
Msg#message.timeout,
Msg#message.parameters,
Msg#message.signature,
- Msg#message.certificate,
St),
{noreply, NSt}
end;
@@ -433,8 +423,7 @@ queue_message(SvcName,
[ ],
Timeout,
Parameters,
- Signature,
- Certificate,
+ Signature,
St) ->
TOut = calc_relative_tout(Timeout),
@@ -454,8 +443,7 @@ queue_message(SvcName,
routes = [],
timeout_tref = 0,
parameters = Parameters,
- signature = Signature,
- certificate = Certificate
+ signature = Signature
},
TOut),
{ok, St};
@@ -467,14 +455,12 @@ queue_message(SvcName,
[ { { ProtoMod, ProtoOpt }, { DLMod, DLOpt } } | RemainingRoutes ],
Timeout,
Parameters,
- Signature,
- Certificate,
+ Signature,
St) ->
?debug("sched:q(~p:~s): timeout: ~p", [DLMod, SvcName, Timeout]),
%%?debug("sched:q(~p:~s): parameters: ~p", [DLMod, SvcName, Parameters]),
%%?debug("sched:q(~p:~s): signature: ~p", [DLMod, SvcName, Signature]),
- %%?debug("sched:q(~p:~s): certificate: ~p", [DLMod, SvcName, Certificate]),
SvcRec = find_or_create_service(SvcName, DLMod, St),
@@ -493,8 +479,7 @@ queue_message(SvcName,
routes = RemainingRoutes,
timeout_tref = 0,
parameters = Parameters,
- signature = Signature,
- certificate = Certificate
+ signature = Signature
},
case DLMod:setup_data_link(St#st.cs, SvcName, DLOpt) of
@@ -528,8 +513,7 @@ queue_message(SvcName,
RemainingRoutes,
Timeout,
Parameters,
- Signature,
- Certificate,
+ Signature,
St)
end.
@@ -545,8 +529,7 @@ send_message(local, _, _, _, Msg, St) ->
Msg#message.service,
Msg#message.timeout,
Msg#message.parameters,
- Msg#message.signature,
- Msg#message.certificate),
+ Msg#message.signature),
{ok, St};
%% Forward message to protocol.
@@ -566,8 +549,7 @@ send_message(DataLinkMod, DataLinkOpts,
DataLinkMod,
DataLinkOpts,
Msg#message.parameters,
- Msg#message.signature,
- Msg#message.certificate) of
+ Msg#message.signature) of
%% Success
[ok] ->
@@ -586,7 +568,6 @@ send_message(DataLinkMod, DataLinkOpts,
Msg#message.timeout,
Msg#message.parameters,
Msg#message.signature,
- Msg#message.certificate,
St)
end.