summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorILYA Khlopotov <iilyak@apache.org>2019-11-12 16:14:55 +0000
committerPaul J. Davis <paul.joseph.davis@gmail.com>2020-03-02 12:26:21 -0600
commit555d28cea854e6d199cb2fe0f5faaec1add8f0a9 (patch)
treec8026f8f936de608e8aa1f21386b39db3ce7d355
parent6c11319023b439332052b07b5698bbd45a8f4059 (diff)
downloadcouchdb-555d28cea854e6d199cb2fe0f5faaec1add8f0a9.tar.gz
Implement fabric2_server:fdb_cluster/0
-rw-r--r--src/fabric/src/fabric2_server.erl35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/fabric/src/fabric2_server.erl b/src/fabric/src/fabric2_server.erl
index 9dd0b7739..b1c38ef55 100644
--- a/src/fabric/src/fabric2_server.erl
+++ b/src/fabric/src/fabric2_server.erl
@@ -20,7 +20,8 @@
fetch/1,
store/1,
remove/1,
- fdb_directory/0
+ fdb_directory/0,
+ fdb_cluster/0
]).
@@ -39,6 +40,7 @@
-define(CLUSTER_FILE, "/usr/local/etc/foundationdb/fdb.cluster").
-define(FDB_DIRECTORY, fdb_directory).
+-define(FDB_CLUSTER, fdb_cluster).
-define(DEFAULT_FDB_DIRECTORY, <<"couchdb">>).
@@ -76,13 +78,16 @@ init(_) ->
{write_concurrency, true}
]),
- Db = case application:get_env(fabric, eunit_run) of
+ {Cluster, Db} = case application:get_env(fabric, eunit_run) of
{ok, true} ->
- erlfdb_util:get_test_db([empty]);
+ {<<"eunit_test">>, erlfdb_util:get_test_db([empty])};
undefined ->
- ClusterStr = config:get("erlfdb", "cluster_file", ?CLUSTER_FILE),
- erlfdb:open(iolist_to_binary(ClusterStr))
+ ClusterFileStr = config:get("erlfdb", "cluster_file", ?CLUSTER_FILE),
+ {ok, ConnectionStr} = file:read_file(ClusterFileStr),
+ DbHandle = erlfdb:open(iolist_to_binary(ClusterFileStr)),
+ {string:trim(ConnectionStr), DbHandle}
end,
+ application:set_env(fabric, ?FDB_CLUSTER, Cluster),
application:set_env(fabric, db, Db),
Dir = case config:get("fabric", "fdb_directory") of
@@ -117,15 +122,21 @@ code_change(_OldVsn, St, _Extra) ->
fdb_directory() ->
- case get(?FDB_DIRECTORY) of
+ get_env(?FDB_DIRECTORY).
+
+fdb_cluster() ->
+ get_env(?FDB_CLUSTER).
+
+get_env(Key) ->
+ case get(Key) of
undefined ->
- case application:get_env(fabric, ?FDB_DIRECTORY) of
+ case application:get_env(fabric, Key) of
undefined ->
erlang:error(fabric_application_not_started);
- {ok, Dir} ->
- put(?FDB_DIRECTORY, Dir),
- Dir
+ {ok, Value} ->
+ put(Key, Value),
+ Value
end;
- Dir ->
- Dir
+ Value ->
+ Value
end.