diff options
author | Matthias Radestock <matthias@rabbitmq.com> | 2014-01-24 20:26:15 +0000 |
---|---|---|
committer | Matthias Radestock <matthias@rabbitmq.com> | 2014-01-24 20:26:15 +0000 |
commit | f46058f4e138f8c9adf4526569440d17ec6b701e (patch) | |
tree | 10a3658c142458f790f03cf5aa96f06d12242028 | |
parent | 2fd1033c59f15f71b0184bdd99fd701762cbcd27 (diff) | |
download | rabbitmq-server-f46058f4e138f8c9adf4526569440d17ec6b701e.tar.gz |
turns out we needed recursive=true after all
...but actually do this whole thing differently
-rw-r--r-- | src/rabbit_recovery_terms.erl | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rabbit_recovery_terms.erl b/src/rabbit_recovery_terms.erl index 352f70b5..efb94b81 100644 --- a/src/rabbit_recovery_terms.erl +++ b/src/rabbit_recovery_terms.erl @@ -67,16 +67,18 @@ upgrade_recovery_terms() -> open_table(), try QueuesDir = filename:join(rabbit_mnesia:dir(), "queues"), - DotFiles = filelib:fold_files(QueuesDir, "^clean\.dot$", false, - fun(F, Acc) -> [F|Acc] end, []), + Dirs = case rabbit_file:list_dir(QueuesDir) of + {ok, Entries} -> Entries; + {error, _} -> [] + end, [begin + File = filename:join([QueuesDir, Dir, "clean.dot"]), case rabbit_file:read_term_file(File) of - {ok, Terms} -> Key = filename:basename(filename:dirname(File)), - ok = store(Key, Terms); - _ -> ok + {ok, Terms} -> ok = store(Dir, Terms); + {error, _} -> ok end, file:delete(File) - end || File <- DotFiles], + end || Dir <- Dirs], ok after close_table() |