We should use the monclient and subscriptions instead.
#include "mon/MonClient.h"
#include "msg/SimpleMessenger.h"
#include "osd/OSDMap.h"
-#include "messages/MOSDGetMap.h"
#include "osdc/Objecter.h"
#include "osdc/Journaler.h"
#include "mds/mdstypes.h"
#include "osdc/Objecter.h"
-#include "messages/MOSDGetMap.h"
#include "messages/MClientMount.h"
#include "messages/MClientMountAck.h"
#include "messages/MGenericMessage.h"
#include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
#include "messages/MClientRequest.h"
#include "messages/MClientRequestForward.h"
// update messenger.
dout(1) << "handle_mds_map i am now mds" << whoami << "." << incarnation << dendl;
messenger->set_myname(entity_name_t::MDS(whoami));
-
- // do i need an osdmap?
- if (oldwhoami < 0) {
- // we need an osdmap too.
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), 0));
- }
}
// tell objecter my incarnation
sub_have[what].have = have;
sub_have[what].onetime = true;
return true;
- }
+ } else
+ sub_have[what].have = have;
return false;
}
void _sub_got(nstring what, version_t have) {
#include "messages/MOSDPGTemp.h"
#include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
#include "messages/MOSDPGNotify.h"
#include "messages/MOSDPGQuery.h"
#include "messages/MOSDPGLog.h"
if (now - last_mon_heartbeat > g_conf.osd_mon_heartbeat_interval) {
last_mon_heartbeat = now;
dout(10) << "i have no heartbeat peers; checking mon for new map" << dendl;
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
+ monc->sub_want_onetime("osdmap", osdmap->get_epoch());
}
}
void OSD::wait_for_new_map(Message *m)
{
- // ask
- if (waiting_for_osdmap.empty()) {
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
- }
+ // ask?
+ if (waiting_for_osdmap.empty())
+ monc->sub_want_onetime("osdmap", osdmap->get_epoch());
waiting_for_osdmap.push_back(m);
}
}
else {
dout(10) << "handle_osd_map missing epoch " << cur+1 << dendl;
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), cur+1));
+ monc->sub_want_onetime("osdmap", cur);
break;
}
#include "messages/MOSDOp.h"
#include "messages/MOSDOpReply.h"
#include "messages/MOSDMap.h"
-#include "messages/MOSDGetMap.h"
#include "messages/MPoolOp.h"
#include "messages/MPoolOpReply.h"
}
else {
dout(3) << "handle_osd_map requesting missing epoch " << osdmap->get_epoch()+1 << dendl;
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), osdmap->get_epoch()+1));
+ monc->sub_want_onetime("osdmap", osdmap->get_epoch());
break;
}
scan_pgs(changed_pgs);
} else {
dout(3) << "handle_osd_map hmm, i want a full map, requesting" << dendl;
- monc->send_mon_message(new MOSDGetMap(monc->get_fsid(), 0));
+ monc->sub_want_onetime("osdmap", 0);
}
}