summaryrefslogtreecommitdiff
path: root/src/weatherreport/src/weatherreport_check.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/weatherreport/src/weatherreport_check.erl')
-rw-r--r--src/weatherreport/src/weatherreport_check.erl113
1 files changed, 0 insertions, 113 deletions
diff --git a/src/weatherreport/src/weatherreport_check.erl b/src/weatherreport/src/weatherreport_check.erl
deleted file mode 100644
index 65ce1a416..000000000
--- a/src/weatherreport/src/weatherreport_check.erl
+++ /dev/null
@@ -1,113 +0,0 @@
-%% -------------------------------------------------------------------
-%%
-%% derived from riaknostic - automated diagnostic tools for Riak
-%%
-%% Copyright (c) 2011 Basho Technologies, Inc. All Rights Reserved.
-%%
-%% This file is provided to you under the Apache License,
-%% Version 2.0 (the "License"); you may not use this file
-%% except in compliance with the License. You may obtain
-%% a copy of the License at
-%%
-%% http://www.apache.org/licenses/LICENSE-2.0
-%%
-%% Unless required by applicable law or agreed to in writing,
-%% software distributed under the License is distributed on an
-%% "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-%% KIND, either express or implied. See the License for the
-%% specific language governing permissions and limitations
-%% under the License.
-%%
-%% -------------------------------------------------------------------
-%%
-%% File renamed from riaknostic_check.erl to weatherreport_check.erl
-%% and modified to work with Apache CouchDB
-%%
-%% Copyright (c) 2014 Cloudant
-%%
-%% -------------------------------------------------------------------
-
-%% @doc <p>Enforces a common API among all diagnostic modules and
-%% provides some automation around their execution.</p>
-%% <h2>Behaviour Specification</h2>
-%%
-%% <h3>description/0</h3>
-%% <pre>-spec description() -> iodata().</pre>
-%% <p>A short description of what the diagnostic does, which will be
-%% printed when the script is given the <code>-l</code> flag.</p>
-%%
-%% <h3>valid/0</h3>
-%% <pre>-spec valid() -> boolean().</pre>
-%% <p>Whether the diagnostic is valid to run. For example, some checks
-%% require connectivity to the cluster node and hence call {@link
-%% weatherreport_node:can_connect/0. weatherreport_node:can_connect()}.</p>
-%%
-%% <h3>check/0</h3>
-%% <pre>-spec check() -> [{atom(), term()}].</pre>
-%% <p>Runs the diagnostic, returning a list of pairs, where the first
-%% is a severity level and the second is any term that is understood
-%% by the <code>format/1</code> callback.</p>
-%%
-%% <h3>format/1</h3>
-%% <pre>-spec format(term()) -> iodata() | {io:format(), [term()]}.</pre>
-%% <p>Formats terms that were returned from <code>check/0</code> for
-%% output to the console. Valid return values are an iolist (string,
-%% binary, etc) or a pair of a format string and a list of terms, as
-%% you would pass to {@link io:format/2. io:format/2}.</p>
-%% @end
-
--module(weatherreport_check).
--export([behaviour_info/1]).
--export([
- check/2,
- modules/0,
- print/1
-]).
-
-%% @doc The behaviour definition for diagnostic modules.
--spec behaviour_info(atom()) -> 'undefined' | [{atom(), arity()}].
-behaviour_info(callbacks) ->
- [
- {description, 0},
- {valid, 0},
- {check, 1},
- {format, 1}
- ];
-behaviour_info(_) ->
- undefined.
-
-%% @doc Runs the diagnostic in the given module, if it is valid. Returns a
-%% list of messages that will be printed later using print/1.
--spec check(Module :: module(), list()) -> [{atom(), module(), term()}].
-check(Module, Opts) ->
- case Module:valid() of
- true ->
- [{Level, Module, Message} || {Level, Message} <- Module:check(Opts)];
- _ ->
- []
- end.
-
-%% @doc Collects a list of diagnostic modules included in the
-%% weatherreport application.
--spec modules() -> [module()].
-modules() ->
- {ok, Mods} = application:get_key(weatherreport, modules),
- [
- M
- || M <- Mods,
- Attr <- M:module_info(attributes),
- {behaviour, [?MODULE]} =:= Attr orelse {behavior, [?MODULE]} =:= Attr
- ].
-
-%% @doc Formats and prints the given message. The diagnostic
-%% module's format/1 function will be called to provide a
-%% human-readable message. It should return an iolist() or a 2-tuple
-%% consisting of a format string and a list of terms.
--spec print({Node :: atom(), Level :: atom(), Module :: module(), Data :: term()}) -> ok.
-print({Node, Level, Mod, Data}) ->
- case Mod:format(Data) of
- {Format, Terms} ->
- weatherreport_log:log(Node, Level, Format, Terms);
- String ->
- weatherreport_log:log(Node, Level, String)
- end.