#include "mds/mdstypes.h"
class CephContext;
-
-#define MDS_FEATURE_INCOMPAT_BASE CompatSet::Feature(1, "base v0.20")
-#define MDS_FEATURE_INCOMPAT_CLIENTRANGES CompatSet::Feature(2, "client writeable ranges")
-#define MDS_FEATURE_INCOMPAT_FILELAYOUT CompatSet::Feature(3, "default file layouts on dirs")
-#define MDS_FEATURE_INCOMPAT_DIRINODE CompatSet::Feature(4, "dir inode in separate object")
-#define MDS_FEATURE_INCOMPAT_ENCODING CompatSet::Feature(5, "mds uses versioned encoding")
-#define MDS_FEATURE_INCOMPAT_OMAPDIRFRAG CompatSet::Feature(6, "dirfrag is stored in omap")
-#define MDS_FEATURE_INCOMPAT_INLINE CompatSet::Feature(7, "mds uses inline data")
-#define MDS_FEATURE_INCOMPAT_NOANCHOR CompatSet::Feature(8, "no anchor table")
+class health_check_map_t;
#define MDS_FS_NAME_DEFAULT "cephfs"
standby_daemons(rhs.standby_daemons),
standby_epochs(rhs.standby_epochs)
{
+ filesystems.clear();
for (const auto &i : rhs.filesystems) {
const auto &fs = i.second;
filesystems[fs->fscid] = std::make_shared<Filesystem>(*fs);
standby_daemons = rhs.standby_daemons;
standby_epochs = rhs.standby_epochs;
+ filesystems.clear();
for (const auto &i : rhs.filesystems) {
const auto &fs = i.second;
filesystems[fs->fscid] = std::make_shared<Filesystem>(*fs);
mds_gid_t find_standby_for(mds_role_t mds, const std::string& name) const;
- mds_gid_t find_unused(fs_cluster_id_t fscid, bool force_standby_active) const;
+ mds_gid_t find_unused_for(mds_role_t mds, bool force_standby_active) const;
mds_gid_t find_replacement_for(mds_role_t mds, const std::string& name,
bool force_standby_active) const;
void get_health(list<pair<health_status_t,std::string> >& summary,
list<pair<health_status_t,std::string> > *detail) const;
+ void get_health_checks(health_check_map_t *checks) const;
+
bool check_health(void);
/**
bufferlist::iterator p = bl.begin();
decode(p);
}
+ void sanitize(std::function<bool(int64_t pool)> pool_exists);
void print(ostream& out) const;
void print_summary(Formatter *f, ostream *out) const;