fixeria has submitted this change. ( https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42451?usp=email )
Change subject: rest_server: log received requests (as debug) ......................................................................
rest_server: log received requests (as debug)
Change-Id: I25da9662fb98a0eafcedfde21b12a937225f5fb9 Related: SYS#7066 --- M src/osmo_s1gw_sup.erl M src/rest_server.erl 2 files changed, 27 insertions(+), 1 deletion(-)
Approvals: Jenkins Builder: Verified pespin: Looks good to me, but someone else must approve fixeria: Looks good to me, approved laforge: Looks good to me, but someone else must approve
diff --git a/src/osmo_s1gw_sup.erl b/src/osmo_s1gw_sup.erl index 06174b2..fd89b3c 100644 --- a/src/osmo_s1gw_sup.erl +++ b/src/osmo_s1gw_sup.erl @@ -163,7 +163,8 @@ #{callback => rest_server, spec_path => list_to_binary(osmo_s1gw:get_priv("openapi.json")), port => osmo_s1gw:get_env(rest_srv_port, ?ENV_DEFAULT_REST_SRV_PORT), - swagger_ui => osmo_s1gw:get_env(rest_srv_swagger_ui, ?ENV_DEFAULT_REST_SRV_SWAGGER_UI)}. + swagger_ui => osmo_s1gw:get_env(rest_srv_swagger_ui, ?ENV_DEFAULT_REST_SRV_SWAGGER_UI), + preprocess_middlewares => [rest_server]}.
%% vim:set ts=4 sw=4 et: diff --git a/src/rest_server.erl b/src/rest_server.erl index 19554ac..f9176cb 100644 --- a/src/rest_server.erl +++ b/src/rest_server.erl @@ -34,6 +34,8 @@
-module(rest_server).
+-behaviour(erf_preprocess_middleware). + -export([config_read/1, metrics_list/1, pfcp_assoc_state/1, @@ -53,6 +55,8 @@ erab_delete/1 ]).
+-export([preprocess/1]). + -include_lib("kernel/include/logger.hrl").
-include("osmo_s1gw.hrl"). @@ -629,4 +633,25 @@ bval(V) -> V.
+%% ------------------------------------------------------------------ +%% erf_preprocess_middleware API +%% ------------------------------------------------------------------ + +-spec preprocess(erf:request()) -> erf:request(). +preprocess(#{peer := Peer, + method := Method, + path := Path, + query_parameters := QP} = Request) -> + %% We're not really pre-processing anything here, just logging requests + MethodStr = string:uppercase(atom_to_list(Method)), + PathStr = lists:join("/", [binary_to_list(P) || P <- Path]), + QPStr = case QP of + [] -> ""; + _ -> [$? | lists:join($&, [<<K/bytes, $=, V/bytes>> || {K, V} <- QP])] + end, + ?LOG_DEBUG("[REST] ~s - "~s /~s~s"", + [Peer, MethodStr, PathStr, QPStr]), + Request. + + %% vim:set ts=4 sw=4 et: