* @{
*/
virtual void init() { }
- virtual health_status_t get_health(
- Formatter *f,
- list<pair<health_status_t,string> > *detail) {
- return HEALTH_OK;
- }
+ virtual void get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
+ list<pair<health_status_t,string> > *detail) { }
virtual bool service_dispatch(Message *m);
virtual void start_epoch() { }
last_warned_percent = 0;
}
-health_status_t DataHealthService::get_health(
+void DataHealthService::get_health(
Formatter *f,
+ list<pair<health_status_t,string> >& summary,
list<pair<health_status_t,string> > *detail)
{
dout(10) << __func__ << dendl;
f->open_array_section("mons");
}
- health_status_t overall_status = HEALTH_OK;
-
for (map<entity_inst_t,DataStats>::iterator it = stats.begin();
it != stats.end(); ++it) {
string mon_name = mon->monmap->get_name(it->first.addr);
health_detail.append(ss.str());
}
- if (overall_status > health_status)
- overall_status = health_status;
if (detail && health_status != HEALTH_OK) {
stringstream ss;
f->close_section(); // mons
f->close_section(); // data_health
}
-
- return overall_status;
}
int DataHealthService::update_store_stats(DataStats &ours)
start_tick();
}
- virtual health_status_t get_health(Formatter *f,
+ virtual void get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
list<pair<health_status_t,string> > *detail);
virtual int get_type() {
services.clear();
}
-health_status_t HealthMonitor::get_health(Formatter *f,
- list<pair<health_status_t,string> > *detail)
+void HealthMonitor::get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
+ list<pair<health_status_t,string> > *detail)
{
- health_status_t overall = HEALTH_OK;
if (f) {
f->open_object_section("health");
f->open_array_section("health_services");
for (map<int,HealthService*>::iterator it = services.begin();
it != services.end();
++it) {
- health_status_t h = it->second->get_health(f, detail);
- if (overall > h)
- overall = h;
+ it->second->get_health(f, summary, detail);
}
if (f) {
f->close_section(); // health_services
f->close_section(); // health
}
-
- return overall;
}
* @{
*/
virtual void init();
- virtual health_status_t get_health(Formatter *f,
- list<pair<health_status_t,string> > *detail);
+ virtual void get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
+ list<pair<health_status_t,string> > *detail);
virtual bool service_dispatch(Message *m);
virtual void start_epoch() {
virtual bool service_dispatch(MMonHealth *m) = 0;
public:
- virtual health_status_t get_health(Formatter *f,
- list<pair<health_status_t,string> > *detail) = 0;
+ virtual void get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
+ list<pair<health_status_t,string> > *detail) = 0;
virtual int get_type() = 0;
virtual string get_name() const = 0;
};
s->get_health(summary, detailbl ? &detail : NULL);
}
+ health_monitor->get_health(f, summary, (detailbl ? &detail : NULL));
+
if (f)
f->open_array_section("summary");
stringstream ss;
if (f)
f->close_section();
- health_status_t hmstatus = health_monitor->get_health(f, (detailbl ? &detail : NULL));
- if (overall > hmstatus)
- overall = hmstatus;
-
stringstream fss;
fss << overall;
status = fss.str() + ss.str();
virtual void init() { }
- virtual health_status_t get_health(Formatter *f,
+ virtual void get_health(Formatter *f,
+ list<pair<health_status_t,string> >& summary,
list<pair<health_status_t,string> > *detail) = 0;
virtual int get_type() = 0;
virtual string get_name() const = 0;