Skip to content

Commit 29d7227

Browse files
[fix] Fixed tool-builder non blocking on event stream (#24)
1 parent c4af82b commit 29d7227

File tree

8 files changed

+58
-10
lines changed

8 files changed

+58
-10
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[tool.poetry]
22
name = "redis-benchmarks-specification"
3-
version = "0.1.4"
3+
version = "0.1.5"
44
description = "The Redis benchmarks specification describes the cross-language/tools requirements and expectations to foster performance and observability standards around redis related technologies. Members from both industry and academia, including organizations and individuals are encouraged to contribute."
55
authors = ["filipecosta90 <filipecosta.90@gmail.com>"]
66
readme = "Readme.md"

redis_benchmarks_specification/__api__/api.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@
2727
LOG_DATEFMT,
2828
LOG_LEVEL,
2929
)
30+
from redis_benchmarks_specification.__common__.package import (
31+
populate_with_poetry_data,
32+
get_version_string,
33+
)
3034

3135
auth = HTTPBasicAuth()
3236

@@ -120,9 +124,11 @@ def base():
120124

121125

122126
def main():
127+
_, _, project_version = populate_with_poetry_data()
128+
project_name = "redis-benchmarks-specification API"
123129
global conn
124130
parser = argparse.ArgumentParser(
125-
description="redis-benchmarks-specification API",
131+
description=get_version_string(project_name, project_version),
126132
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
127133
)
128134
logging.info("redis-benchmarks-specification API. v{}".format(__version__))
@@ -157,6 +163,7 @@ def main():
157163
level=LOG_LEVEL,
158164
datefmt=LOG_DATEFMT,
159165
)
166+
logging.info(get_version_string(project_name, project_version))
160167
logging.info(
161168
"Using redis available at: {}:{}".format(
162169
GH_REDIS_SERVER_HOST, GH_REDIS_SERVER_PORT

redis_benchmarks_specification/__builder__/builder.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
2626
STREAM_KEYNAME_NEW_BUILD_EVENTS,
2727
)
28+
from redis_benchmarks_specification.__common__.package import (
29+
populate_with_poetry_data,
30+
get_version_string,
31+
)
2832

2933

3034
class ZipFileWithPermissions(ZipFile):
@@ -41,8 +45,10 @@ def _extract_member(self, member, targetpath, pwd):
4145

4246

4347
def main():
48+
_, _, project_version = populate_with_poetry_data()
49+
project_name = "redis-benchmarks-spec builder"
4450
parser = argparse.ArgumentParser(
45-
description="redis-benchmarks-spec builder",
51+
description=get_version_string(project_name, project_version),
4652
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
4753
)
4854
parser.add_argument(
@@ -60,7 +66,6 @@ def main():
6066
default=">",
6167
)
6268
args = parser.parse_args()
63-
6469
if args.logname is not None:
6570
print("Writting log to {}".format(args.logname))
6671
logging.basicConfig(
@@ -77,7 +82,7 @@ def main():
7782
level=LOG_LEVEL,
7883
datefmt=LOG_DATEFMT,
7984
)
80-
85+
logging.info(get_version_string(project_name, project_version))
8186
builders_folder = os.path.abspath(args.setups_folder + "/builders")
8287
logging.info("Using package dir {} for inner file paths".format(builders_folder))
8388
different_build_specs = os.listdir(builders_folder)
@@ -120,12 +125,13 @@ def main():
120125
)
121126

122127

123-
def builder_consumer_group_create(conn):
128+
def builder_consumer_group_create(conn, id="$"):
124129
try:
125130
conn.xgroup_create(
126131
STREAM_KEYNAME_GH_EVENTS_COMMIT,
127132
STREAM_GH_EVENTS_COMMIT_BUILDERS_CG,
128133
mkstream=True,
134+
id=id,
129135
)
130136
logging.info(
131137
"Created consumer group named {} to distribute work.".format(
@@ -149,6 +155,7 @@ def builder_process_stream(builders_folder, conn, different_build_specs, previou
149155
consumer_name,
150156
{STREAM_KEYNAME_GH_EVENTS_COMMIT: previous_id},
151157
count=1,
158+
block=0,
152159
)
153160

154161
if len(newTestInfo[0]) < 2 or len(newTestInfo[0][1]) < 1:
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,28 @@
1+
from redis_benchmarks_specification import __version__
2+
13
import os
4+
import toml
25

36
PACKAGE_DIR = os.path.dirname(os.path.abspath(__file__))
7+
8+
9+
def populate_with_poetry_data():
10+
project_name = "redis-benchmarks-specification"
11+
project_version = __version__
12+
project_description = None
13+
try:
14+
poetry_data = toml.load("pyproject.toml")["tool"]["poetry"]
15+
project_name = poetry_data["name"]
16+
project_version = poetry_data["version"]
17+
project_description = poetry_data["description"]
18+
except FileNotFoundError:
19+
pass
20+
21+
return project_name, project_description, project_version
22+
23+
24+
def get_version_string(project_name, project_version):
25+
version_str = "{project_name} {project_version}".format(
26+
project_name=project_name, project_version=project_version
27+
)
28+
return version_str

redis_benchmarks_specification/__self_contained_coordinator__/args.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
)
1414

1515

16-
def create_self_contained_coordinator_args():
16+
def create_self_contained_coordinator_args(project_name):
1717
parser = argparse.ArgumentParser(
18-
description="redis-benchmarks-spec runner(self-contained)",
18+
description=project_name,
1919
formatter_class=argparse.ArgumentDefaultsHelpFormatter,
2020
)
2121
parser.add_argument(

redis_benchmarks_specification/__self_contained_coordinator__/self_contained_coordinator.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,10 @@
3939
GH_REDIS_SERVER_USER,
4040
STREAM_GH_NEW_BUILD_RUNNERS_CG,
4141
)
42+
from redis_benchmarks_specification.__common__.package import (
43+
get_version_string,
44+
populate_with_poetry_data,
45+
)
4246
from redis_benchmarks_specification.__common__.spec import (
4347
extract_client_cpu_limit,
4448
extract_client_container_image,
@@ -50,7 +54,11 @@
5054

5155

5256
def main():
53-
parser = create_self_contained_coordinator_args()
57+
_, _, project_version = populate_with_poetry_data()
58+
project_name = "redis-benchmarks-spec runner(self-contained)"
59+
parser = create_self_contained_coordinator_args(
60+
get_version_string(project_name, project_version)
61+
)
5462
args = parser.parse_args()
5563

5664
if args.logname is not None:
@@ -69,6 +77,7 @@ def main():
6977
level=LOG_LEVEL,
7078
datefmt=LOG_DATEFMT,
7179
)
80+
logging.info(get_version_string(project_name, project_version))
7281
topologies_folder = os.path.abspath(args.setups_folder + "/topologies")
7382
logging.info("Using topologies folder dir {}".format(topologies_folder))
7483
topologies_files = pathlib.Path(topologies_folder).glob("*.yml")

utils/tests/test_builder.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ def test_commit_schema_to_stream_then_build():
3838
conn = redis.StrictRedis(port=16379)
3939
conn.ping()
4040
conn.flushall()
41-
builder_consumer_group_create(conn)
41+
builder_consumer_group_create(conn, "0")
4242
assert conn.xlen(STREAM_KEYNAME_GH_EVENTS_COMMIT) == 0
4343

4444
result, reply_fields, error_msg = commit_schema_to_stream(

utils/tests/test_data/dump.rdb

-2 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)