If `store->get_devname()` returns an empty device name, it means it couldn't
determine the device that backs the monitor DB store directory.
This can happen if `ceph-mon` runs with `PrivateDevices=yes` in systemd, or
within a container where the host `/dev` isn't exposed.
This commit makes sure we abort trying to get the device health at that point,
and return an appropriate error.
Signed-off-by: Benoît Knecht <bknecht@protonmail.ch>
(cherry picked from commit
c05a3b769dccf5fe839a2150e39d899516469164)
cmd_getval(cmdmap, "devid", want_devid);
string devname = store->get_devname();
+ if (devname.empty()) {
+ err << "could not determine device name for " << store->get_path();
+ r = -ENOENT;
+ goto abort;
+ }
set<string> devnames;
get_raw_devices(devname, &devnames);
json_spirit::mObject json_map;
return devname;
}
+ std::string get_path() {
+ return path;
+ }
+
std::shared_ptr<PriorityCache::PriCache> get_priority_cache() const {
return db->get_priority_cache();
}