1
0
Fork 0

Update E2E for Raft port join

master
Philip O'Toole 10 months ago
parent 84c284c2eb
commit 0692e138ad

@ -165,7 +165,7 @@ class Node(object):
if self.raft_adv is None:
self.raft_adv = self.raft_addr
def start(self, join=None, join_as=None, join_attempts=None, join_interval=None,
def start(self, join=None, join_attempts=None, join_interval=None,
disco_mode=None, disco_key=None, disco_config=None, wait=True, timeout=TIMEOUT):
if self.process is not None:
return
@ -199,8 +199,6 @@ class Node(object):
command += ['-auto-restore', self.auto_restore]
if join is not None:
command += ['-join', join]
if join_as is not None:
command += ['-join-as', join_as]
if join_attempts is not None:
command += ['-join-attempts', str(join_attempts)]
if join_interval is not None:
@ -352,7 +350,7 @@ class Node(object):
return int(self.status()['store']['raft']['last_snapshot_index'])
def num_join_requests(self):
return int(self.expvar()['http']['joins'])
return int(self.expvar()['cluster']['num_join_req'])
def num_snapshots(self):
return int(self.expvar()['store']['num_snapshots'])

@ -26,7 +26,7 @@ class TestJoinEncryptedNoVerify(unittest.TestCase):
n0.wait_for_leader()
n1 = Node(RQLITED_PATH, '1', node_cert=certFile, node_key=keyFile, node_no_verify=False)
n1.start(join=n0.APIAddr())
n1.start(join=n0.RaftAddr())
self.assertRaises(Exception, n1.wait_for_leader) # Join should fail due to bad cert.
deprovision_node(n0)
@ -70,18 +70,18 @@ class TestIdempotentJoin(unittest.TestCase):
self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.assertEqual(self.n0.num_join_requests(), 1)
self.n1.stop()
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.assertEqual(self.n0.num_join_requests(), 2)
class TestRedirectedJoin(unittest.TestCase):
class TestForwardedJoin(unittest.TestCase):
def tearDown(self):
deprovision_node(self.n0)
deprovision_node(self.n1)
@ -94,29 +94,29 @@ class TestRedirectedJoin(unittest.TestCase):
l0 = self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.assertTrue(self.n1.is_follower())
self.n2 = Node(RQLITED_PATH, '2')
self.n2.start(join=self.n1.APIAddr())
self.n2.start(join=self.n1.RaftAddr())
l2 = self.n2.wait_for_leader()
self.assertEqual(l0, l2)
def test_api_adv(self):
'''Test that a node can join via a follower that advertises a different API address'''
def test_raft_adv(self):
'''Test that a node can join via a follower that advertises a different Raft address'''
self.n0 = Node(RQLITED_PATH, '0',
api_addr="0.0.0.0:4001", api_adv="localhost:4001")
raft_addr="0.0.0.0:4002", raft_adv="localhost:4002")
self.n0.start()
l0 = self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.assertTrue(self.n1.is_follower())
self.n2 = Node(RQLITED_PATH, '2')
self.n2.start(join=self.n1.APIAddr())
self.n2.start(join=self.n1.RaftAddr())
l2 = self.n2.wait_for_leader()
self.assertEqual(l0, l2)
@ -127,11 +127,11 @@ class TestJoinCatchup(unittest.TestCase):
self.n0.wait_for_leader()
self.n1 = Node(RQLITED_PATH, '1')
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.n2 = Node(RQLITED_PATH, '2')
self.n2.start(join=self.n0.APIAddr())
self.n2.start(join=self.n0.RaftAddr())
self.n2.wait_for_leader()
self.cluster = Cluster([self.n0, self.n1, self.n2])
@ -164,7 +164,7 @@ class TestJoinCatchup(unittest.TestCase):
applied = n0.wait_for_all_fsm()
# Restart follower, explicity rejoin, and ensure it picks up new records
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.n1.wait_for_fsm_index(applied)
self.assertEqual(n0.expvar()['store']['num_ignored_joins'], 1)
@ -197,7 +197,7 @@ class TestJoinCatchup(unittest.TestCase):
# Restart follower with new network attributes, explicity rejoin, and ensure it picks up new records
self.n1.scramble_network()
self.n1.start(join=self.n0.APIAddr())
self.n1.start(join=self.n0.RaftAddr())
self.n1.wait_for_leader()
self.assertEqual(n0.expvar()['store']['num_removed_before_joins'], 1)
self.n1.wait_for_fsm_index(applied)

@ -24,11 +24,11 @@ class TestEndToEnd(unittest.TestCase):
n0.wait_for_leader()
n1 = Node(RQLITED_PATH, '1')
n1.start(join=n0.APIAddr())
n1.start(join=n0.RaftAddr())
n1.wait_for_leader()
n2 = Node(RQLITED_PATH, '2')
n2.start(join=n0.APIAddr())
n2.start(join=n0.RaftAddr())
n2.wait_for_leader()
self.cluster = Cluster([n0, n1, n2])

@ -24,11 +24,11 @@ class TestEndToEndAdvAddr(TestEndToEnd):
n0.wait_for_leader()
n1 = Node(RQLITED_PATH, '1')
n1.start(join=n0.APIAddr())
n1.start(join=n0.RaftAddr())
n1.wait_for_leader()
n2 = Node(RQLITED_PATH, '2')
n2.start(join=n0.APIAddr())
n2.start(join=n0.RaftAddr())
n2.wait_for_leader()
self.cluster = Cluster([n0, n1, n2])
@ -46,11 +46,11 @@ class TestEndToEndAdvAddrEncryptedNode(TestEndToEnd):
n0.wait_for_leader()
n1 = Node(RQLITED_PATH, '1', node_cert=certFile, node_key=keyFile, node_no_verify=True)
n1.start(join=n0.APIAddr())
n1.start(join=n0.RaftAddr())
n1.wait_for_leader()
n2 = Node(RQLITED_PATH, '2', node_cert=certFile, node_key=keyFile, node_no_verify=True)
n2.start(join=n0.APIAddr())
n2.start(join=n0.RaftAddr())
n2.wait_for_leader()
self.cluster = Cluster([n0, n1, n2])

Loading…
Cancel
Save