From 2bab2dcac13de524fe6767119efa9573f81c9afd Mon Sep 17 00:00:00 2001 From: Yuan Zhou Date: Thu, 17 Jan 2019 23:37:12 +0800 Subject: [PATCH] tools: refuse to start if obj cache daemon fail to initialize cache dir Signed-off-by: Yuan Zhou --- src/tools/immutable_object_cache/ObjectCacheStore.cc | 12 ++++++++++-- src/tools/immutable_object_cache/main.cc | 12 +++++------- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/tools/immutable_object_cache/ObjectCacheStore.cc b/src/tools/immutable_object_cache/ObjectCacheStore.cc index ea066e6d7f9ba..cb5a84e9c05c6 100644 --- a/src/tools/immutable_object_cache/ObjectCacheStore.cc +++ b/src/tools/immutable_object_cache/ObjectCacheStore.cc @@ -51,10 +51,18 @@ int ObjectCacheStore::init(bool reset) { //TODO(): fsck and reuse existing cache objects if (reset) { + std::error_code ec; if (efs::exists(m_cache_root_dir)) { - efs::remove_all(m_cache_root_dir); + if (!efs::remove_all(m_cache_root_dir, ec)) { + lderr(m_cct) << "fail to remove old cache store: " << ec << dendl; + return -1; + } + } + + if (!efs::create_directories(m_cache_root_dir, ec)) { + lderr(m_cct) << "fail to create cache store dir: " << ec << dendl; + return -1; } - efs::create_directories(m_cache_root_dir); } return ret; diff --git a/src/tools/immutable_object_cache/main.cc b/src/tools/immutable_object_cache/main.cc index a030c5cdbbe91..dffae87acc95a 100644 --- a/src/tools/immutable_object_cache/main.cc +++ b/src/tools/immutable_object_cache/main.cc @@ -35,17 +35,15 @@ int main(int argc, const char **argv) env_to_vec(args); argv_to_vec(argc, argv, args); + if (ceph_argparse_need_usage(args)) { + usage(); + exit(0); + } + auto cct = global_init(nullptr, args, CEPH_ENTITY_TYPE_CLIENT, CODE_ENVIRONMENT_DAEMON, CINIT_FLAG_UNPRIVILEGED_DAEMON_DEFAULTS); - for (auto i = args.begin(); i != args.end(); ++i) { - if (ceph_argparse_flag(args, i, "-h", "--help", (char*)NULL)) { - usage(); - return EXIT_SUCCESS; - } - } - if (g_conf()->daemonize) { global_init_daemonize(g_ceph_context); } -- 2.39.5