def test_secondary_failure(self, done): loop = IOLoop.instance() c = motor.MotorReplicaSetClient(self.seed, replicaSet=self.name) c.open_sync() self.assertTrue(bool(len(c.secondaries))) primary = c.primary secondaries = c.secondaries killed = ha_tools.kill_secondary() self.assertTrue(bool(len(killed))) self.assertEqual(primary, c.primary) yield gen.Task(loop.add_timeout, time.time() + 2 * MONITOR_INTERVAL) secondaries = c.secondaries ha_tools.restart_members([killed]) self.assertEqual(primary, c.primary) # Wait for secondary to join, and for MotorReplicaSetClient # to detect it. for _ in xrange(30): if c.secondaries != secondaries: break yield gen.Task(loop.add_timeout, time.time() + 1) else: self.fail("Dead secondary not detected") done()
def test_secondary_failure(self): c = motor.MotorReplicaSetClient(self.seed, replicaSet=self.name) yield c.open() secondaries = c.secondaries self.assertTrue(secondaries) killed = ha_tools.kill_secondary() self.assertTrue(bool(len(killed))) yield self.pause(2 * MONITOR_INTERVAL) for _ in range(30): if c.secondaries != secondaries: break yield self.pause(1) else: self.fail("Dead secondary not detected")
def test_secondary_failure(self): c = motor.MotorReplicaSetClient(self.seed, replicaSet=self.name) yield c.open() secondaries = c.secondaries self.assertTrue(secondaries) killed = ha_tools.kill_secondary() self.assertTrue(bool(len(killed))) yield self.pause(2 * MONITOR_INTERVAL) for _ in range(30): if c.secondaries != secondaries: break yield self.pause(1) else: self.fail("Dead secondary not detected")