]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
mon/MonMap: take addrvec for set_initial_members
authorSage Weil <sage@redhat.com>
Fri, 13 Jul 2018 13:57:22 +0000 (08:57 -0500)
committerSage Weil <sage@redhat.com>
Fri, 21 Dec 2018 21:31:32 +0000 (15:31 -0600)
Signed-off-by: Sage Weil <sage@redhat.com>
src/mon/MonMap.cc
src/mon/MonMap.h
src/mon/Monitor.cc
src/tools/monmaptool.cc

index 94a6c258c3c374ef5129566f83cae395af763ac0..b2efb69c2253a11e27bc0a8d79b2b67e5268ffe3 100644 (file)
@@ -399,20 +399,23 @@ int MonMap::init_with_hosts(const std::string& hostlist,
 
 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);
@@ -423,11 +426,11 @@ void MonMap::set_initial_members(CephContext *cct,
   }
 
   // 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);
@@ -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();
index 5b22ceba1cbf21c9e88c7c473450e88a4f9ec5fb..07ee3478d7835a74c8bc66a634ba3445068090bf 100644 (file)
@@ -412,7 +412,8 @@ public:
    */
   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;
index def920c9bdece410c6f56c6c07033f9e0f059b5c..f58d2fc356e3cd7eb79f406b1f2fa3f2616b5236 100644 (file)
@@ -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;
index 3cc7906463b9c90e072e3958360448395cb2808a..79d3c16e1412738980f64948735e0037cff64920 100644 (file)
@@ -336,7 +336,7 @@ int main(int argc, const char **argv)
       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;
     }