void MonMap::set_initial_members(CephContext *cct,
list<std::string>& initial_members,
- string my_name, const entity_addr_t& my_addr,
+ string my_name,
+ const entity_addrvec_t& my_addrs,
set<entity_addr_t> *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);
}
// add missing initial members
- for (list<string>::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);
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();
*/
void set_initial_members(CephContext *cct,
list<std::string>& initial_members,
- string my_name, const entity_addr_t& my_addr,
+ string my_name,
+ const entity_addrvec_t& my_addrs,
set<entity_addr_t> *removed);
void print(ostream& out) const;
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;
cout << "initial_members " << initial_members << ", filtering seed monmap" << std::endl;
set<entity_addr_t> removed;
monmap.set_initial_members(g_ceph_context, initial_members,
- string(), entity_addr_t(),
+ string(), entity_addrvec_t(),
&removed);
cout << "removed " << removed << std::endl;
}