Add manual security doc migration logic
diff --git a/src/cassim.erl b/src/cassim.erl
index 3af0096..65d942c 100644
--- a/src/cassim.erl
+++ b/src/cassim.erl
@@ -37,6 +37,11 @@
set_security/3
]).
+-export([
+ migrate_database/1,
+ migrate_databases/0
+]).
+
-include_lib("couch/include/couch_db.hrl").
@@ -95,3 +100,31 @@
set_security(DbName, SecObj, Options) ->
cassim_security:set_security(DbName, SecObj, Options).
+
+
+migrate_databases() ->
+ {ok, Dbs} = fabric:all_dbs(),
+ lists:foldl(
+ fun(DbName, Errors) ->
+ try
+ MetaId = cassim_metadata_cache:security_meta_id(DbName),
+ case cassim_metadata_cache:fetch_cached_meta(MetaId) of
+ undefined ->
+ ok = migrate_database(DbName);
+ _ ->
+ ok
+ end,
+ Errors
+ catch Error:Reason ->
+ [{DbName, Error, Reason} | Errors]
+ end
+ end,
+ [],
+ Dbs
+ ).
+
+
+migrate_database(DbName) ->
+ SecProps = fabric:get_security(DbName),
+ {ok, _Props} = cassim_security:migrate_security_props(DbName, SecProps),
+ ok.
diff --git a/src/cassim_metadata_cache.erl b/src/cassim_metadata_cache.erl
index 002ee43..35b5dad 100644
--- a/src/cassim_metadata_cache.erl
+++ b/src/cassim_metadata_cache.erl
@@ -31,6 +31,7 @@
load_meta/1,
load_meta/2,
load_meta/3,
+ fetch_cached_meta/1,
metadata_db/0,
metadata_db_exists/0,
cleanup_old_docs/1
@@ -211,7 +212,7 @@
{error, timeout};
Resp ->
couch_log:notice(
- "unexpected response retrieving metadata doc [~s/]~s: ~s",
+ "unexpected response retrieving metadata doc [~s/]~s: ~p",
[DbName, MetaId, Resp]),
{error, Resp}
end.