def test_api(self): comm.start_cluster('127.0.0.1', 7100) comm.join_cluster('127.0.0.1', 7100, '127.0.0.1', 7101) comm.replicate('127.0.0.1', 7100, '127.0.0.1', 7102) time.sleep(1) rc = RedisCluster([{'host': '127.0.0.1', 'port': 7100}]) for i in xrange(20): rc.set('key_%s' % i, 'value_%s' % i) for i in xrange(20): self.assertEqual('value_%s' % i, rc.get('key_%s' % i)) nodes = base.list_nodes('127.0.0.1', 7100) self.assertEqual(3, len(nodes)) self.assertEqual(range(8192), nodes[('127.0.0.1', 7101)].assigned_slots) self.assertEqual(range(8192, 16384), nodes[('127.0.0.1', 7100)].assigned_slots) comm.quit_cluster('127.0.0.1', 7101) nodes = base.list_nodes('127.0.0.1', 7100) self.assertEqual(range(16384), nodes[('127.0.0.1', 7100)].assigned_slots) for i in xrange(20): self.assertEqual('value_%s' % i, rc.get('key_%s' % i)) for i in xrange(20): rc.delete('key_%s' % i) comm.quit_cluster('127.0.0.1', 7102) comm.shutdown_cluster('127.0.0.1', 7100)
def test_quit_problems(self): comm.start_cluster('127.0.0.1', 7100) comm.join_cluster('127.0.0.1', 7100, '127.0.0.1', 7101) comm.replicate('127.0.0.1', 7100, '127.0.0.1', 7102) time.sleep(1) rc = RedisCluster([{'host': '127.0.0.1', 'port': 7100}]) for i in xrange(20): rc.set('key_%s' % i, 'value_%s' % i) for i in xrange(20): self.assertEqual('value_%s' % i, rc.get('key_%s' % i)) nodes = base.list_nodes('127.0.0.1', 7100) self.assertEqual(3, len(nodes)) self.assertEqual(range(8192), nodes[('127.0.0.1', 7101)].assigned_slots) self.assertEqual(range(8192, 16384), nodes[('127.0.0.1', 7100)].assigned_slots) for i in xrange(20): rc.delete('key_%s' % i) self.assertRaisesRegexp(ValueError, '^The master still has slaves$', comm.quit_cluster, '127.0.0.1', 7100) comm.quit_cluster('127.0.0.1', 7102) comm.quit_cluster('127.0.0.1', 7101) self.assertRaisesRegexp(ValueError, '^This is the last node', comm.quit_cluster, '127.0.0.1', 7100) comm.shutdown_cluster('127.0.0.1', 7100)
def start_cluster(): logging.info("start cluster") servers = [("127.0.0.1", port) for port in PORTS] half = len(servers) / 2 command.start_cluster_on_multi(servers[0:half]) time.sleep(5) for i in range(half): command.replicate("127.0.0.1", PORTS[i], "127.0.0.1", PORTS[i + half])
def start_cluster(): logging.info("start cluster") servers = [('127.0.0.1', port) for port in PORTS] half = len(servers) / 2 command.start_cluster_on_multi(servers[0:half]) time.sleep(5) for i in range(half): command.replicate("127.0.0.1", PORTS[i], "127.0.0.1", PORTS[i + half])
def start_cluster(): logging.info("start cluster") time.sleep(2) servers = [('127.0.0.1', port) for port in PORTS] try: command.start_cluster_on_multi(servers) except Exception as e: logging.error(e) time.sleep(5) for port in PORTS: for r in range(1, REPLICAS): slave_port = port + r * 100 logging.info("replicate: 127.0.0.1:%d <- 127.0.0.1:%d", port, slave_port) command.replicate("127.0.0.1", port, "127.0.0.1", slave_port)