From ccf554bdee68e913ea8275733050a8c612104435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Mon, 18 Jan 2016 12:22:17 +0100 Subject: [PATCH] Convert to Cowboy REST (cherry picked from commit da70f42d91f87497d89ee24983229b0cdbd86c3f) --- deps/rabbitmq_tracing/Makefile | 2 +- deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl | 10 +++++----- .../src/rabbit_tracing_wm_file.erl | 12 +++++++----- .../src/rabbit_tracing_wm_files.erl | 9 +++++---- .../src/rabbit_tracing_wm_trace.erl | 14 ++++++++------ .../src/rabbit_tracing_wm_traces.erl | 9 +++++---- 6 files changed, 31 insertions(+), 25 deletions(-) diff --git a/deps/rabbitmq_tracing/Makefile b/deps/rabbitmq_tracing/Makefile index d0ec067b58..c15ed08a45 100644 --- a/deps/rabbitmq_tracing/Makefile +++ b/deps/rabbitmq_tracing/Makefile @@ -1,6 +1,6 @@ PROJECT = rabbitmq_tracing -DEPS = rabbitmq_management webmachine +DEPS = rabbitmq_management TEST_DEPS += rabbit DEP_PLUGINS = rabbit_common/mk/rabbitmq-plugin.mk diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl index dd213d5e35..74625f6b35 100644 --- a/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl +++ b/deps/rabbitmq_tracing/src/rabbit_tracing_mgmt.erl @@ -20,10 +20,10 @@ -export([dispatcher/0, web_ui/0]). -dispatcher() -> [{["traces"], rabbit_tracing_wm_traces, []}, - {["traces", vhost], rabbit_tracing_wm_traces, []}, - {["traces", vhost, name], rabbit_tracing_wm_trace, []}, - {["trace-files"], rabbit_tracing_wm_files, []}, - {["trace-files", name], rabbit_tracing_wm_file, []}]. +dispatcher() -> [{"/traces", rabbit_tracing_wm_traces, []}, + {"/traces/:vhost", rabbit_tracing_wm_traces, []}, + {"/traces/:vhost/:name", rabbit_tracing_wm_trace, []}, + {"/trace-files", rabbit_tracing_wm_files, []}, + {"/trace-files/:name", rabbit_tracing_wm_file, []}]. web_ui() -> [{javascript, <<"tracing.js">>}]. diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl index 8966e8ea2e..d377b5313e 100644 --- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl +++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_file.erl @@ -15,20 +15,22 @@ -module(rabbit_tracing_wm_file). --export([init/1, resource_exists/2, serve/2, content_types_provided/2, +-export([init/3]). +-export([rest_init/2, resource_exists/2, serve/2, content_types_provided/2, is_authorized/2, allowed_methods/2, delete_resource/2]). -include_lib("rabbitmq_management/include/rabbit_mgmt.hrl"). --include_lib("webmachine/include/webmachine.hrl"). %%-------------------------------------------------------------------- -init(_Config) -> {ok, #context{}}. +init(_, _, _) -> {upgrade, protocol, cowboy_rest}. + +rest_init(ReqData, _) -> {ok, ReqData, #context{}}. content_types_provided(ReqData, Context) -> - {[{"text/plain", serve}], ReqData, Context}. + {[{<<"text/plain">>, serve}], ReqData, Context}. allowed_methods(ReqData, Context) -> - {['HEAD', 'GET', 'DELETE'], ReqData, Context}. + {[<<"HEAD">>, <<"GET">>, <<"DELETE">>], ReqData, Context}. resource_exists(ReqData, Context) -> Name = rabbit_mgmt_util:id(name, ReqData), diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl index d4312c7c09..7936647314 100644 --- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl +++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_files.erl @@ -16,17 +16,18 @@ -module(rabbit_tracing_wm_files). --export([init/1, to_json/2, content_types_provided/2, is_authorized/2]). +-export([init/3]). +-export([rest_init/2, to_json/2, content_types_provided/2, is_authorized/2]). -include_lib("rabbitmq_management/include/rabbit_mgmt.hrl"). --include_lib("webmachine/include/webmachine.hrl"). %%-------------------------------------------------------------------- +init(_, _, _) -> {upgrade, protocol, cowboy_rest}. -init(_Config) -> {ok, #context{}}. +rest_init(ReqData, _) -> {ok, ReqData, #context{}}. content_types_provided(ReqData, Context) -> - {[{"application/json", to_json}], ReqData, Context}. + {[{<<"application/json">>, to_json}], ReqData, Context}. to_json(ReqData, Context) -> rabbit_mgmt_util:reply(rabbit_tracing_files:list(), ReqData, Context). diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl index 96456bb4ee..63af47ac7b 100644 --- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl +++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_trace.erl @@ -15,7 +15,8 @@ -module(rabbit_tracing_wm_trace). --export([init/1, resource_exists/2, to_json/2, +-export([init/3]). +-export([rest_init/2, resource_exists/2, to_json/2, content_types_provided/2, content_types_accepted/2, is_authorized/2, allowed_methods/2, accept_content/2, delete_resource/2]). @@ -26,19 +27,20 @@ -import(rabbit_misc, [pget/2, pget/3]). -include_lib("rabbitmq_management/include/rabbit_mgmt.hrl"). --include_lib("webmachine/include/webmachine.hrl"). %%-------------------------------------------------------------------- -init(_Config) -> {ok, #context{}}. +init(_, _, _) -> {upgrade, protocol, cowboy_rest}. + +rest_init(ReqData, _) -> {ok, ReqData, #context{}}. content_types_provided(ReqData, Context) -> - {[{"application/json", to_json}], ReqData, Context}. + {[{<<"application/json">>, to_json}], ReqData, Context}. content_types_accepted(ReqData, Context) -> - {[{"application/json", accept_content}], ReqData, Context}. + {[{<<"application/json">>, accept_content}], ReqData, Context}. allowed_methods(ReqData, Context) -> - {['HEAD', 'GET', 'PUT', 'DELETE'], ReqData, Context}. + {[<<"HEAD">>, <<"GET">>, <<"PUT">>, <<"DELETE">>], ReqData, Context}. resource_exists(ReqData, Context) -> {case trace(ReqData) of diff --git a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl index 959edc9492..a9d523c515 100644 --- a/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl +++ b/deps/rabbitmq_tracing/src/rabbit_tracing_wm_traces.erl @@ -16,17 +16,18 @@ -module(rabbit_tracing_wm_traces). --export([init/1, to_json/2, content_types_provided/2, is_authorized/2]). +-export([init/3]). +-export([rest_init/2, to_json/2, content_types_provided/2, is_authorized/2]). -include_lib("rabbitmq_management/include/rabbit_mgmt.hrl"). --include_lib("webmachine/include/webmachine.hrl"). %%-------------------------------------------------------------------- +init(_, _, _) -> {upgrade, protocol, cowboy_rest}. -init(_Config) -> {ok, #context{}}. +rest_init(ReqData, _) -> {ok, ReqData, #context{}}. content_types_provided(ReqData, Context) -> - {[{"application/json", to_json}], ReqData, Context}. + {[{<<"application/json">>, to_json}], ReqData, Context}. to_json(ReqData, Context) -> rabbit_mgmt_util:reply(rabbit_tracing_traces:list(), ReqData, Context).