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>2019-11-20 16:58:56 -0600
commitc9b8e25eac479fdcbf275ac39323fc355715620d (patch)
tree1384db738d31305f4f2686da2437ef1486d6bb1a
parent2d3737c898184f9fd3ed33bbb482dab4258ab538 (diff)
downloadcouchdb-c9b8e25eac479fdcbf275ac39323fc355715620d.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.