fixup! fixup! cluster/services/patroni: test in simulacrum
This commit is contained in:
parent
8b569c0993
commit
64fda7ed8f
1 changed files with 9 additions and 5 deletions
|
@ -92,19 +92,22 @@ in
|
||||||
nodes = [ n for n in machines if n.name in nodeNames ]
|
nodes = [ n for n in machines if n.name in nodeNames ]
|
||||||
clients = [ n for n in machines if n.name in clientNames ]
|
clients = [ n for n in machines if n.name in clientNames ]
|
||||||
|
|
||||||
|
def booted(nodes):
|
||||||
|
return filter(lambda node: node.booted, nodes)
|
||||||
|
|
||||||
def wait_for_all_nodes_ready(expected_replicas=2):
|
def wait_for_all_nodes_ready(expected_replicas=2):
|
||||||
booted_nodes = filter(lambda node: node.booted, nodes)
|
booted_nodes = booted(nodes)
|
||||||
for node in booted_nodes:
|
for node in booted_nodes:
|
||||||
print(node.succeed("patronictl list ${clusterName}"))
|
print(node.succeed("patronictl list ${clusterName}"))
|
||||||
node.wait_until_succeeds(f"[ $(patronictl list -f json ${clusterName} | jq 'length') == {expected_replicas + 1} ]")
|
node.wait_until_succeeds(f"[ $(patronictl list -f json ${clusterName} | jq 'length') == {expected_replicas + 1} ]")
|
||||||
node.wait_until_succeeds("[ $(patronictl list -f json ${clusterName} | jq 'map(select(.Role | test(\"^Leader$\"))) | map(select(.State | test(\"^running$\"))) | length') == 1 ]")
|
node.wait_until_succeeds("[ $(patronictl list -f json ${clusterName} | jq 'map(select(.Role | test(\"^Leader$\"))) | map(select(.State | test(\"^running$\"))) | length') == 1 ]")
|
||||||
node.wait_until_succeeds(f"[ $(patronictl list -f json ${clusterName} | jq 'map(select(.Role | test(\"^Replica$\"))) | map(select(.State | test(\"^streaming$\"))) | length') == {expected_replicas} ]")
|
node.wait_until_succeeds(f"[ $(patronictl list -f json ${clusterName} | jq 'map(select(.Role | test(\"^Replica$\"))) | map(select(.State | test(\"^streaming$\"))) | length') == {expected_replicas} ]")
|
||||||
print(node.succeed("patronictl list ${clusterName}"))
|
print(node.succeed("patronictl list ${clusterName}"))
|
||||||
for client in clients:
|
for client in booted(clients):
|
||||||
client.wait_until_succeeds("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --command='select 1;'")
|
client.wait_until_succeeds("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --command='select 1;'")
|
||||||
|
|
||||||
def run_dummy_queries():
|
def run_dummy_queries():
|
||||||
for client in clients:
|
for client in booted(clients):
|
||||||
client.succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='insert into dummy(val) values (101);'")
|
client.succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='insert into dummy(val) values (101);'")
|
||||||
client.succeed("test $(psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='select val from dummy where val = 101;') -eq 101")
|
client.succeed("test $(psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='select val from dummy where val = 101;') -eq 101")
|
||||||
client.succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='delete from dummy where val = 101;'")
|
client.succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='delete from dummy where val = 101;'")
|
||||||
|
@ -115,8 +118,9 @@ in
|
||||||
wait_for_all_nodes_ready()
|
wait_for_all_nodes_ready()
|
||||||
|
|
||||||
with subtest("should be able to insert and select"):
|
with subtest("should be able to insert and select"):
|
||||||
clients[0].succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --command='create table dummy as select * from generate_series(1, 100) as val;'")
|
booted_clients = list(booted(clients))
|
||||||
for client in clients:
|
booted_clients[0].succeed("psql -h ${link.ipv4} -p ${link.portStr} -U postgres --command='create table dummy as select * from generate_series(1, 100) as val;'")
|
||||||
|
for client in booted_clients:
|
||||||
client.succeed("test $(psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100")
|
client.succeed("test $(psql -h ${link.ipv4} -p ${link.portStr} -U postgres --pset='pager=off' --tuples-only --command='select count(distinct val) from dummy;') -eq 100")
|
||||||
|
|
||||||
with subtest("should restart after all nodes are crashed"):
|
with subtest("should restart after all nodes are crashed"):
|
||||||
|
|
Loading…
Reference in a new issue