summaryrefslogtreecommitdiff
path: root/src/configuration.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/configuration.erl')
-rw-r--r--src/configuration.erl100
1 files changed, 0 insertions, 100 deletions
diff --git a/src/configuration.erl b/src/configuration.erl
deleted file mode 100644
index db44e83c..00000000
--- a/src/configuration.erl
+++ /dev/null
@@ -1,100 +0,0 @@
-%%% -*- erlang-indent-level:2 -*-
-%%%-------------------------------------------------------------------
-%%% File: configuration.erl
-%%% @author Cliff Moon <cliff@powerset.com>
-%%% @author Brad Anderson <brad@cloudant.com>
-%%% @copyright 2008 Cliff Moon
-%%% @doc
-%%% This module keeps Dynomite source relatively unchanged, but
-%%% reads from couchdb config stuffs
-%%% @end
-%%%
-%%% @since 2008-07-18 by Cliff Moon
-%%%-------------------------------------------------------------------
--module(configuration).
--author('cliff@powerset.com').
--author('brad@cloudant.com').
-
-%%-behaviour(gen_server).
-
-%% API
--export([start_link/1, get_config/1, get_config/0, set_config/1, stop/0]).
-
--include_lib("eunit/include/eunit.hrl").
-
--include("../include/config.hrl").
--include("../include/common.hrl").
-
--define(SERVER, couch_config).
--define(i2l(V), integer_to_list(V)).
--define(l2i(V), list_to_integer(V)).
-
-
-%% -----------------------------------------------------------------
-%% API
-%% -----------------------------------------------------------------
-
-%% @doc starts couch_config gen_server if it's not already started
-start_link(DynomiteConfig) ->
- couch_config_event:start_link(),
- couch_config:start_link([]),
- set_config(DynomiteConfig).
-
-
-%% @doc get the config for a remote node
-get_config(Node) ->
- ClusterConfig = rpc:call(Node, couch_config, get, ["cluster"]),
- Directory = rpc:call(Node, couch_config, get, ["couchdb", "database_dir"]),
- couch2dynomite_config(ClusterConfig, Directory).
-
-
-%% @doc get the config for the local node
-get_config() ->
- get_config(node()).
-
-
-%% @doc given a Dynomite config record, put the values into the Couch config
-set_config(DynomiteConfig) ->
- dynomite2couch_config(DynomiteConfig).
-
-
-%% @doc stop the config server (nothing to do until after couch_config refactor)
-stop() ->
- couch_config:stop().
-
-
-%% -----------------------------------------------------------------
-%% Internal functions
-%% -----------------------------------------------------------------
-
-%% @doc turn a couch config proplist into a dynomite configuration record
-couch2dynomite_config(ClusterConfig, Directory) ->
- Q = ?l2i(couch_util:get_value("q", ClusterConfig, "3")),
- R = ?l2i(couch_util:get_value("r", ClusterConfig, "2")),
- W = ?l2i(couch_util:get_value("w", ClusterConfig, "1")),
- N = ?l2i(couch_util:get_value("n", ClusterConfig, "4")),
- %% use couch's database_dir here, to avoid /tmp/data not existing
- Webport = ?l2i(couch_util:get_value("webport", ClusterConfig, "8080")),
- Meta = couch_util:get_value("meta", ClusterConfig, []),
- StorageMod = couch_util:get_value("storage_mod", ClusterConfig, []),
- #config{q=Q, r=R, w=W, n=N, directory=Directory, web_port=Webport,
- meta=Meta, storage_mod=StorageMod}.
-
-
-%% @doc workhorse for set_config/1 above
-dynomite2couch_config(DynomiteConfig) ->
- couch_config:set("cluster", "q", ?i2l(DynomiteConfig#config.q), false),
- couch_config:set("cluster", "r", ?i2l(DynomiteConfig#config.r), false),
- couch_config:set("cluster", "w", ?i2l(DynomiteConfig#config.w), false),
- couch_config:set("cluster", "n", ?i2l(DynomiteConfig#config.n), false),
- couch_config:set("couchdb", "database_dir", DynomiteConfig#config.directory,
- false),
- couch_config:set("cluster", "webport",
- case DynomiteConfig#config.web_port of
- undefined -> "8080";
- _ -> ?i2l(DynomiteConfig#config.web_port)
- end, false),
- couch_config:set("cluster", "meta", DynomiteConfig#config.meta, false),
- couch_config:set("cluster", "storage_mod",
- DynomiteConfig#config.storage_mod, false),
- ok.