From: Sage Weil Date: Fri, 13 Jul 2018 13:57:22 +0000 (-0500) Subject: mon/MonMap: take addrvec for set_initial_members X-Git-Tag: v14.1.0~484^2~94 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=491b3e45c4eb582746d8f0bcff93edda70c70aaa;p=ceph.git mon/MonMap: take addrvec for set_initial_members Signed-off-by: Sage Weil --- diff --git a/src/mon/MonMap.cc b/src/mon/MonMap.cc index 94a6c258c3c3..b2efb69c2253 100644 --- a/src/mon/MonMap.cc +++ b/src/mon/MonMap.cc @@ -399,20 +399,23 @@ int MonMap::init_with_hosts(const std::string& hostlist, void MonMap::set_initial_members(CephContext *cct, list& initial_members, - string my_name, const entity_addr_t& my_addr, + string my_name, + const entity_addrvec_t& my_addrs, set *removed) { // remove non-initial members unsigned i = 0; while (i < size()) { string n = get_name(i); - if (std::find(initial_members.begin(), initial_members.end(), n) != initial_members.end()) { + if (std::find(initial_members.begin(), initial_members.end(), n) + != initial_members.end()) { lgeneric_dout(cct, 1) << " keeping " << n << " " << get_addrs(i) << dendl; i++; continue; } - lgeneric_dout(cct, 1) << " removing " << get_name(i) << " " << get_addrs(i) << dendl; + lgeneric_dout(cct, 1) << " removing " << get_name(i) << " " << get_addrs(i) + << dendl; if (removed) { for (auto& j : get_addrs(i).v) { removed->insert(j); @@ -423,11 +426,11 @@ void MonMap::set_initial_members(CephContext *cct, } // add missing initial members - for (list::iterator p = initial_members.begin(); p != initial_members.end(); ++p) { - if (!contains(*p)) { - if (*p == my_name) { - lgeneric_dout(cct, 1) << " adding self " << *p << " " << my_addr << dendl; - add(*p, my_addr); + for (auto& p : initial_members) { + if (!contains(p)) { + if (p == my_name) { + lgeneric_dout(cct, 1) << " adding self " << p << " " << my_addr << dendl; + add(p, my_addrs); } else { entity_addr_t a; a.set_type(entity_addr_t::TYPE_LEGACY); @@ -437,10 +440,10 @@ void MonMap::set_initial_members(CephContext *cct, if (!contains(a)) break; } - lgeneric_dout(cct, 1) << " adding " << *p << " " << a << dendl; - add(*p, a); + lgeneric_dout(cct, 1) << " adding " << p << " " << a << dendl; + add(p, entity_addrvec_t(a)); } - ceph_assert(contains(*p)); + ceph_assert(contains(p)); } } calc_legacy_ranks(); diff --git a/src/mon/MonMap.h b/src/mon/MonMap.h index 5b22ceba1cbf..07ee3478d783 100644 --- a/src/mon/MonMap.h +++ b/src/mon/MonMap.h @@ -412,7 +412,8 @@ public: */ void set_initial_members(CephContext *cct, list& initial_members, - string my_name, const entity_addr_t& my_addr, + string my_name, + const entity_addrvec_t& my_addrs, set *removed); void print(ostream& out) const; diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc index def920c9bdec..f58d2fc356e3 100644 --- a/src/mon/Monitor.cc +++ b/src/mon/Monitor.cc @@ -701,8 +701,9 @@ int Monitor::preinit() if (!initial_members.empty()) { dout(1) << " initial_members " << initial_members << ", filtering seed monmap" << dendl; - monmap->set_initial_members(g_ceph_context, initial_members, name, messenger->get_myaddr(), - &extra_probe_peers); + monmap->set_initial_members( + g_ceph_context, initial_members, name, messenger->get_myaddrs(), + &extra_probe_peers); dout(10) << " monmap is " << *monmap << dendl; dout(10) << " extra probe peers " << extra_probe_peers << dendl; diff --git a/src/tools/monmaptool.cc b/src/tools/monmaptool.cc index 3cc7906463b9..79d3c16e1412 100644 --- a/src/tools/monmaptool.cc +++ b/src/tools/monmaptool.cc @@ -336,7 +336,7 @@ int main(int argc, const char **argv) cout << "initial_members " << initial_members << ", filtering seed monmap" << std::endl; set removed; monmap.set_initial_members(g_ceph_context, initial_members, - string(), entity_addr_t(), + string(), entity_addrvec_t(), &removed); cout << "removed " << removed << std::endl; }