Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 80d5922

Browse files
committed
use fixed ports (5432+i)
1 parent 6487f97 commit 80d5922

File tree

1 file changed

+33
-21
lines changed

1 file changed

+33
-21
lines changed

run_shardlord.py

Lines changed: 33 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,22 @@
44
from time import sleep
55

66
from testgres import PostgresNode
7-
from testgres import get_new_node, default_username
87

98

109
DBNAME = "postgres"
1110

1211

1312
class Shardlord(PostgresNode):
14-
def __init__(self, name):
15-
super(Shardlord, self).__init__(name=name, port=5432, use_logging=True)
13+
def __init__(self, name, port=None):
14+
super(Shardlord, self).__init__(name=name,
15+
port=port,
16+
use_logging=True)
1617

1718
self.nodes = []
1819

1920
@staticmethod
2021
def _common_conn_string(port):
21-
return (
22-
"dbname={} port={} "
23-
).format(DBNAME, port)
22+
return "dbname={} port={}".format(DBNAME, port)
2423

2524
@staticmethod
2625
def _common_conf_lines():
@@ -62,8 +61,7 @@ def init(self):
6261
return self
6362

6463
def install(self):
65-
self.safe_psql(dbname=DBNAME,
66-
query="create extension pg_shardman cascade")
64+
self.safe_psql(DBNAME, "create extension pg_shardman cascade")
6765

6866
return self
6967

@@ -75,7 +73,7 @@ def cleanup(self):
7573

7674
return self
7775

78-
def add_node(self, name):
76+
def add_node(self, name, port=None):
7977
config_lines = (
8078
"max_logical_replication_workers = 50\n"
8179
"max_worker_processes = 60\n"
@@ -86,15 +84,14 @@ def add_node(self, name):
8684
config_lines += self._common_conf_lines()
8785

8886
# create a new node
89-
node = get_new_node(name, use_logging=True)
87+
node = PostgresNode(name=name, port=port, use_logging=True)
9088
self.nodes.append(node)
9189

9290
# start this node
9391
node.init() \
9492
.append_conf("postgresql.conf", config_lines) \
9593
.start() \
96-
.safe_psql(dbname=DBNAME,
97-
query="create extension pg_shardman cascade")
94+
.safe_psql(DBNAME, "create extension pg_shardman cascade")
9895

9996
# finally, register this node
10097
conn_string = self._common_conn_string(node.port)
@@ -105,20 +102,35 @@ def add_node(self, name):
105102

106103

107104
if __name__ == "__main__":
105+
# prepare ports for nodes
106+
ports = [5432+i for i in range(4)]
107+
ports.reverse()
108+
109+
# collect all logs into a single file
108110
logfile = "/tmp/shmn.log"
109-
open(logfile, 'w').close() # truncate
111+
open(logfile, 'w').close() # truncate log file
110112
logging.basicConfig(filename=logfile, level=logging.DEBUG)
111-
with Shardlord("DarthVader") as lord:
113+
114+
with Shardlord(name="DarthVader", port=ports.pop()) as lord:
112115
lord.init().start().install()
113116

114-
luke = lord.add_node("Luke")
115-
lord.add_node("ObiVan")
116-
lord.add_node("C3PO")
117+
luke = lord.add_node(name="Luke", port=ports.pop())
118+
lord.add_node(name="ObiVan", port=ports.pop())
119+
lord.add_node(name="C3PO", port=ports.pop())
120+
121+
luke.safe_psql(DBNAME, "drop table if exists pt cascade")
122+
123+
luke.safe_psql(DBNAME, """
124+
create table pt(id int4 not null, payload float4);
125+
""")
126+
127+
luke.safe_psql(DBNAME, """
128+
insert into pt select generate_series(1, 10), random();
129+
""")
117130

118-
luke.safe_psql(DBNAME, "drop table if exists pt cascade;")
119-
luke.safe_psql(DBNAME, "CREATE TABLE pt(id INT NOT NULL, payload REAL);")
120-
luke.safe_psql(DBNAME, "INSERT INTO pt SELECT generate_series(1, 10), random();")
121-
lord.safe_psql(DBNAME, "select shardman.create_hash_partitions(2, 'pt', 'id', 4, true);");
131+
lord.safe_psql(DBNAME, """
132+
select shardman.create_hash_partitions(2, 'pt', 'id', 4, true);
133+
""")
122134

123135
print("%s:" % lord.name)
124136
print("\t-> port %i" % lord.port)

0 commit comments

Comments
 (0)