]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
msg/msg_types: default parse to v2 addrs
authorSage Weil <sage@redhat.com>
Tue, 6 Nov 2018 22:08:26 +0000 (16:08 -0600)
committerSage Weil <sage@redhat.com>
Fri, 21 Dec 2018 21:31:32 +0000 (15:31 -0600)
If we parse "1.2.3.4", parse to v2:1.2.3.4:0/0, not a v1 legacy addr.

Signed-off-by: Sage Weil <sage@redhat.com>
src/msg/msg_types.cc
src/msg/msg_types.h
src/test/cli/monmaptool/add-many.t
src/test/common/dns_resolve.cc
src/test/test_addrs.cc

index 8b87647bcb2f9c1f2806f6a6d1bbae3098f5b38d..d7e26b3f88b9550d2e70e29680b7f9fa8735f2fa 100644 (file)
@@ -76,7 +76,6 @@ bool entity_addr_t::parse(const char *s, const char **end)
     start += 3;
     newtype = TYPE_MSGR2;
   } else if (*s == '-') {
-    *this = entity_addr_t();
     if (end) {
       *end = s + 1;
     }
index d49b39ff32af1d90572a2e15a74b3c3441c6be7f..349692536efd8786671e502f7bab1dfbf67dc9a8 100644 (file)
@@ -233,7 +233,7 @@ struct entity_addr_t {
     TYPE_LEGACY = 1,  ///< legacy msgr1 protocol (ceph jewel and older)
     TYPE_MSGR2 = 2,   ///< msgr2 protocol (new in ceph kraken)
   } type_t;
-  static const type_t TYPE_DEFAULT = TYPE_LEGACY;
+  static const type_t TYPE_DEFAULT = TYPE_MSGR2;
   static const char *get_type_name(int t) {
     switch (t) {
     case TYPE_NONE: return "none";
index 1b19a41ec5a0e4eb43a856baf981774af38c7898..92f4a9ee692b31d8cbfbdf3a14ccb3c4d718bde0 100644 (file)
@@ -22,8 +22,8 @@
   last_changed \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)
   created \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+ (re)
   0: v1:2.3.4.5:6789/0 mon.foo
-  1: v1:3.4.5.6:7890/0 mon.bar
-  2: v1:4.5.6.7:8901/0 mon.baz
+  1: v2:3.4.5.6:7890/0 mon.bar
+  2: v2:4.5.6.7:8901/0 mon.baz
 
   $ NEW_FSID="$(monmaptool --print mymonmap|grep ^fsid)"
   $ [ "$ORIG_FSID" = "$NEW_FSID" ]
index 937b4a2fd6a1a88259eeec724fffa3445caac7d0..9bd2a93cdca0bd3d916bf7628557f1ae05337731 100644 (file)
@@ -64,7 +64,7 @@ TEST_F(DNSResolverTest, resolve_ip_addr) {
 
   std::ostringstream os;
   os << addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.11:0/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.11:0/0");
 }
 
 TEST_F(DNSResolverTest, resolve_ip_addr_fail) {
@@ -146,17 +146,17 @@ TEST_F(DNSResolverTest, resolve_srv_hosts_empty_domain) {
   ASSERT_NE(it, records.end());
   std::ostringstream os;
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.11:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.11:6789/0");
   os.str("");
   it = records.find("mon.b");
   ASSERT_NE(it, records.end());
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.12:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.12:6789/0");
   os.str("");
   it = records.find("mon.c");
   ASSERT_NE(it, records.end());
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.13:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.13:6789/0");
 }
 
 TEST_F(DNSResolverTest, resolve_srv_hosts_full_domain) {
@@ -216,17 +216,17 @@ TEST_F(DNSResolverTest, resolve_srv_hosts_full_domain) {
   ASSERT_NE(it, records.end());
   std::ostringstream os;
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.11:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.11:6789/0");
   os.str("");
   it = records.find("mon.b");
   ASSERT_NE(it, records.end());
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.12:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.12:6789/0");
   os.str("");
   it = records.find("mon.c");
   ASSERT_NE(it, records.end());
   os << it->second.addr;
-  ASSERT_EQ(os.str(), "v1:192.168.1.13:6789/0");
+  ASSERT_EQ(os.str(), "v2:192.168.1.13:6789/0");
 }
 
 TEST_F(DNSResolverTest, resolve_srv_hosts_fail) {
index 20dd5ce1dfa63716d6de3168e909bb5b0a30dfa1..155f8eb4bf1d8a89a986926c22656069329805c7 100644 (file)
 // input, parsed+printed addr output, leftover
 // if the parse fails, output + leftover should both be blank.
 const char *addr_checks[][3] = {
-  { "127.0.0.1", "v1:127.0.0.1:0/0", "" },
-  { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" },
-  { "127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" },
-  { "127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" },
+  { "127.0.0.1", "v2:127.0.0.1:0/0", "" },
+  { "127.0.0.1 foo", "v2:127.0.0.1:0/0", " foo" },
+  { "127.0.0.1:1234 foo", "v2:127.0.0.1:1234/0", " foo" },
+  { "127.0.0.1:1234/5678 foo", "v2:127.0.0.1:1234/5678", " foo" },
   { "1.2.3:4 a", "", "" },
-  { "2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" },
-  { "[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" },
+  { "2607:f298:4:2243::5522", "v2:[2607:f298:4:2243::5522]:0/0", "" },
+  { "[2607:f298:4:2243::5522]", "v2:[2607:f298:4:2243::5522]:0/0", "" },
   { "2607:f298:4:2243::5522a", "", "" },
-  { "[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" },
-  { "[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" },
-  { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" },
-  { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" },
-  { "::", "v1:[::]:0/0", "" },
-  { "::zz", "v1:[::]:0/0", "zz" },
-  { ":: 12:34", "v1:[::]:0/0", " 12:34" },
+  { "[2607:f298:4:2243::5522]a", "v2:[2607:f298:4:2243::5522]:0/0", "a" },
+  { "[2607:f298:4:2243::5522]:1234a", "v2:[2607:f298:4:2243::5522]:1234/0", "a" },
+  { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v2:[2001:db8:85a3::8a2e:370:7334]:0/0", "" },
+  { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v2:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" },
+  { "::", "v2:[::]:0/0", "" },
+  { "::zz", "v2:[::]:0/0", "zz" },
+  { ":: 12:34", "v2:[::]:0/0", " 12:34" },
   { "-", "-", "" },
   { "-asdf", "-", "asdf" },
   { "v1:1.2.3.4", "v1:1.2.3.4:0/0", "" },
@@ -69,17 +69,19 @@ TEST(Msgr, TestAddrParsing)
   }
 }
 
+// check that legacy encoding to new decoding behaves
+
 const char *addr_checks2[][3] = {
-  { "127.0.0.1", "v1:127.0.0.1:0/0", "" },
-  { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" },
-  { "127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" },
-  { "127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" },
-  { "2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" },
-  { "[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" },
-  { "[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" },
-  { "[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" },
-  { "2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" },
-  { "2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" },
+  { "v1:127.0.0.1", "v1:127.0.0.1:0/0", "" },
+  { "v1:127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" },
+  { "v1:127.0.0.1:1234 foo", "v1:127.0.0.1:1234/0", " foo" },
+  { "v1:127.0.0.1:1234/5678 foo", "v1:127.0.0.1:1234/5678", " foo" },
+  { "v1:2607:f298:4:2243::5522", "v1:[2607:f298:4:2243::5522]:0/0", "" },
+  { "v1:[2607:f298:4:2243::5522]", "v1:[2607:f298:4:2243::5522]:0/0", "" },
+  { "v1:[2607:f298:4:2243::5522]a", "v1:[2607:f298:4:2243::5522]:0/0", "a" },
+  { "v1:[2607:f298:4:2243::5522]:1234a", "v1:[2607:f298:4:2243::5522]:1234/0", "a" },
+  { "v1:2001:0db8:85a3:0000:0000:8a2e:0370:7334", "v1:[2001:db8:85a3::8a2e:370:7334]:0/0", "" },
+  { "v1:2001:2db8:85a3:4334:4324:8a2e:1370:7334", "v1:[2001:2db8:85a3:4334:4324:8a2e:1370:7334]:0/0", "" },
   { "v1:1.2.3.4", "v1:1.2.3.4:0/0", "" },
   { "v1:1.2.3.4:12", "v1:1.2.3.4:12/0", "" },
   { "v1:1.2.3.4:12/34", "v1:1.2.3.4:12/34", "" },
@@ -98,6 +100,7 @@ TEST(Msgr, TestAddrEncodeAddrvecDecode)
     addr.encode(bl, 0);
     auto bli = bl.cbegin();
     addrvec.decode(bli);
+    cout << addr_checks2[i][0] << " " << addr << " " << addrvec << std::endl;
     ASSERT_EQ(addr, addrvec.v[0]);
   }
 }
@@ -240,10 +243,10 @@ TEST(Msgr, TestAddrvecEncodeAddrDecode3)
 }
 
 const char *addrvec_parse_checks[][3] = {
-  { "127.0.0.1", "v1:127.0.0.1:0/0", "" },
-  { "127.0.0.1 foo", "v1:127.0.0.1:0/0", " foo" },
-  { "127.0.0.1 1.2.3.4 foo", "[v1:127.0.0.1:0/0,v1:1.2.3.4:0/0]", " foo" },
-  { "127.0.0.1 :: - foo", "[v1:127.0.0.1:0/0,v1:[::]:0/0,-]", " foo" },
+  { "127.0.0.1", "v2:127.0.0.1:0/0", "" },
+  { "127.0.0.1 foo", "v2:127.0.0.1:0/0", " foo" },
+  { "127.0.0.1 1.2.3.4 foo", "[v2:127.0.0.1:0/0,v2:1.2.3.4:0/0]", " foo" },
+  { "127.0.0.1 :: - foo", "[v2:127.0.0.1:0/0,v2:[::]:0/0,-]", " foo" },
   { NULL, NULL, NULL },
 };