Convert to Cowboy REST

(cherry picked from commit da70f42d91f87497d89ee24983229b0cdbd86c3f)
This commit is contained in:
Loïc Hoguin 2016-01-18 12:22:17 +01:00
parent 1f774106d7
commit ccf554bdee
6 changed files with 31 additions and 25 deletions

View File

@ -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

View File

@ -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">>}].

View File

@ -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),

View File

@ -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).

View File

@ -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

View File

@ -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).