mirror of
https://github.com/dragonflydb/dragonfly.git
synced 2024-12-14 11:58:02 +00:00
fix: cluster_mgr script (#4210)
This commit is contained in:
parent
57fd5f16a7
commit
d6f2b76666
2 changed files with 14 additions and 12 deletions
|
@ -24,7 +24,6 @@ def run_cluster_mgr(args):
|
||||||
return result.returncode == 0
|
return result.returncode == 0
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.skip("it leaves an unclosed instance that fails other tests")
|
|
||||||
@dfly_args({"proactor_threads": 2, "cluster_mode": "yes"})
|
@dfly_args({"proactor_threads": 2, "cluster_mode": "yes"})
|
||||||
async def test_cluster_mgr(df_factory):
|
async def test_cluster_mgr(df_factory):
|
||||||
NODES = 3
|
NODES = 3
|
||||||
|
@ -113,7 +112,7 @@ async def test_cluster_mgr(df_factory):
|
||||||
# Add replicas
|
# Add replicas
|
||||||
replica_clients = [replica.client() for replica in replicas]
|
replica_clients = [replica.client() for replica in replicas]
|
||||||
for i in range(NODES):
|
for i in range(NODES):
|
||||||
await replica_clients[i].execute_command(f"replicaof localhost {masters[i].port}")
|
await replica_clients[i].execute_command(f"replicaof 127.0.0.1 {masters[i].port}")
|
||||||
assert run_cluster_mgr(
|
assert run_cluster_mgr(
|
||||||
[
|
[
|
||||||
f"--action=attach",
|
f"--action=attach",
|
||||||
|
@ -133,7 +132,7 @@ async def test_cluster_mgr(df_factory):
|
||||||
|
|
||||||
# Revert take over
|
# Revert take over
|
||||||
c_master0 = masters[0].client()
|
c_master0 = masters[0].client()
|
||||||
await c_master0.execute_command(f"replicaof localhost {replicas[0].port}")
|
await c_master0.execute_command(f"replicaof 127.0.0.1 {replicas[0].port}")
|
||||||
assert run_cluster_mgr(
|
assert run_cluster_mgr(
|
||||||
[
|
[
|
||||||
f"--action=attach",
|
f"--action=attach",
|
||||||
|
@ -144,7 +143,7 @@ async def test_cluster_mgr(df_factory):
|
||||||
)
|
)
|
||||||
assert run_cluster_mgr(["--action=takeover", f"--target_port={masters[0].port}"])
|
assert run_cluster_mgr(["--action=takeover", f"--target_port={masters[0].port}"])
|
||||||
await c_master0.execute_command(f"replicaof no one")
|
await c_master0.execute_command(f"replicaof no one")
|
||||||
await replica_clients[0].execute_command(f"replicaof localhost {masters[0].port}")
|
await replica_clients[0].execute_command(f"replicaof 127.0.0.1 {masters[0].port}")
|
||||||
assert run_cluster_mgr(
|
assert run_cluster_mgr(
|
||||||
[
|
[
|
||||||
f"--action=attach",
|
f"--action=attach",
|
||||||
|
|
|
@ -57,12 +57,13 @@ def send_command(node, command, print_errors=True):
|
||||||
for i in range(0, 5):
|
for i in range(0, 5):
|
||||||
try:
|
try:
|
||||||
result = client.execute_command(*command)
|
result = client.execute_command(*command)
|
||||||
client.close()
|
|
||||||
return result
|
return result
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
if print_errors:
|
if print_errors:
|
||||||
print(e)
|
print(e)
|
||||||
time.sleep(0.1 * i)
|
time.sleep(0.1 * i)
|
||||||
|
finally:
|
||||||
|
client.close()
|
||||||
|
|
||||||
if print_errors:
|
if print_errors:
|
||||||
print(f"Unable to run command {command} against {node.host}:{node.port} after 5 attempts!")
|
print(f"Unable to run command {command} against {node.host}:{node.port} after 5 attempts!")
|
||||||
|
@ -123,10 +124,10 @@ def create_locally(args):
|
||||||
next_port = args.first_port
|
next_port = args.first_port
|
||||||
masters = []
|
masters = []
|
||||||
for i in range(args.num_masters):
|
for i in range(args.num_masters):
|
||||||
master = Master("localhost", next_port)
|
master = Master("127.0.0.1", next_port)
|
||||||
next_port += 1
|
next_port += 1
|
||||||
for j in range(args.replicas_per_master):
|
for j in range(args.replicas_per_master):
|
||||||
replica = Node("localhost", next_port)
|
replica = Node("127.0.0.1", next_port)
|
||||||
master.replicas.append(replica)
|
master.replicas.append(replica)
|
||||||
next_port += 1
|
next_port += 1
|
||||||
masters.append(master)
|
masters.append(master)
|
||||||
|
@ -205,6 +206,8 @@ def build_config_from_existing(args):
|
||||||
"replicas": [build_node(replica) for replica in shard["nodes"][1::]],
|
"replicas": [build_node(replica) for replica in shard["nodes"][1::]],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
client.close()
|
||||||
return config
|
return config
|
||||||
|
|
||||||
|
|
||||||
|
@ -456,16 +459,16 @@ Create a 6 node cluster locally, 3 of them masters with 1 replica each:
|
||||||
|
|
||||||
Connect to existing cluster and print current config:
|
Connect to existing cluster and print current config:
|
||||||
./cluster_mgr.py --action=print_config
|
./cluster_mgr.py --action=print_config
|
||||||
This will connect to localhost:6379 by default. Override with `--target_host` and `--target_port`
|
This will connect to 127.0.0.1:6379 by default. Override with `--target_host` and `--target_port`
|
||||||
|
|
||||||
Configure an existing Dragonfly server to be a standalone cluster (owning all slots):
|
Configure an existing Dragonfly server to be a standalone cluster (owning all slots):
|
||||||
./cluster_mgr.py --action=config_single_remote
|
./cluster_mgr.py --action=config_single_remote
|
||||||
This connects to an *existing* Dragonfly server, and pushes a config telling it to own all slots.
|
This connects to an *existing* Dragonfly server, and pushes a config telling it to own all slots.
|
||||||
This will connect to localhost:6379 by default. Override with `--target_host` and `--target_port`
|
This will connect to 127.0.0.1:6379 by default. Override with `--target_host` and `--target_port`
|
||||||
|
|
||||||
Attach an existing Dragonfly server to an existing cluster (owning no slots):
|
Attach an existing Dragonfly server to an existing cluster (owning no slots):
|
||||||
./cluster_mgr.py --action=attach --attach_host=HOST --attach_port=PORT
|
./cluster_mgr.py --action=attach --attach_host=HOST --attach_port=PORT
|
||||||
This will connect to existing cluster present at localhost:6379 by default. Override with
|
This will connect to existing cluster present at 127.0.0.1:6379 by default. Override with
|
||||||
`--target_host` and `--target_port`.
|
`--target_host` and `--target_port`.
|
||||||
To attach node as a replica - use --attach_as_replica=True. In such case, the node will be a
|
To attach node as a replica - use --attach_as_replica=True. In such case, the node will be a
|
||||||
replica of --target_host/--target_port.
|
replica of --target_host/--target_port.
|
||||||
|
@ -524,10 +527,10 @@ WARNING: Be careful! This will close all Dragonfly servers connected to the clus
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--slot_end", type=int, default=100, help="Last slot to move / migrate (inclusive)"
|
"--slot_end", type=int, default=100, help="Last slot to move / migrate (inclusive)"
|
||||||
)
|
)
|
||||||
parser.add_argument("--target_host", default="localhost", help="Master host/ip")
|
parser.add_argument("--target_host", default="127.0.0.1", help="Master host/ip")
|
||||||
parser.add_argument("--target_port", type=int, default=6379, help="Master port")
|
parser.add_argument("--target_port", type=int, default=6379, help="Master port")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--attach_host", default="localhost", help="New cluster node master host/ip"
|
"--attach_host", default="127.0.0.1", help="New cluster node master host/ip"
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--attach_port", type=int, default=6379, help="New cluster node master port"
|
"--attach_port", type=int, default=6379, help="New cluster node master port"
|
||||||
|
|
Loading…
Reference in a new issue