Skip to content

Commit fdc861d

Browse files
authored
Merge pull request #74 from Ensembl/bugfixes/server-startup
Moved reflection package yagrc to test.
2 parents f9440b3 + a165f65 commit fdc861d

File tree

7 files changed

+12
-21
lines changed

7 files changed

+12
-21
lines changed

README.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
<<<<<<< HEAD
21
# Ensembl Metadata API / GRPC API
32
# SQLAlchemy ORM for the Ensembl Metadata database.
43
# GRPC Service protofile to interact with metadata database through GRPC
@@ -55,8 +54,6 @@ workon ensembl_metadata_api
5554
pip install --upgrade pip
5655
pip install -r requirements-dev.txt
5756
```
58-
59-
=======
6057
To generate client and server files
6158
(Remember to run these after adding a new method in ensembl_metadata.proto)
6259
```
@@ -138,7 +135,7 @@ mypy src
138135
```
139136
Pylint will check the code for syntax, name errors and formatting style.
140137
Mypy will use type hints to statically type check the code.
141-
=======
138+
142139
cd ensembl-metadata-service
143140
pylint src tests
144141
mypy src tests
@@ -153,5 +150,5 @@ docker build -t ensembl-metadata-service .
153150
154151
### To run docker container
155152
```
156-
docker run -t -i -e METADATA_URI=<URI> -e TAXONOMY_URI=<URI> -p 80:80 ensembl-metadata-service
153+
docker run -t -i -e METADATA_URI=<URI> -e TAXONOMY_URI=<URI> -p 80:80 ensembl-metadata-api
157154
```

requirements-test.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,3 +4,4 @@ pylint
44
mypy
55
coverage[toml]
66
pytest-grpc
7+
yagrc==1.1.2

requirements.in

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@ grpcio
33
grpcio-tools
44
grpcio-reflection
55
sqlalchemy
6-
types-pymysql
7-
yagrc
6+
types-pymysql

requirements.txt

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,8 @@ grpcio==1.62.0
2121
# -r requirements.in
2222
# grpcio-reflection
2323
# grpcio-tools
24-
# yagrc
2524
grpcio-reflection==1.62.0
26-
# via
27-
# -r requirements.in
28-
# yagrc
25+
# via -r requirements.in
2926
grpcio-tools==1.62.0
3027
# via -r requirements.in
3128
idna==3.6
@@ -42,8 +39,7 @@ protobuf==4.25.3
4239
# via
4340
# grpcio-reflection
4441
# grpcio-tools
45-
# yagrc
46-
pytest==8.0.1
42+
pytest==8.0.2
4743
# via
4844
# ensembl-py
4945
# pytest-dependency
@@ -68,8 +64,6 @@ types-pymysql==1.1.0.1
6864
# via -r requirements.in
6965
urllib3==2.2.1
7066
# via requests
71-
yagrc==1.1.2
72-
# via -r requirements.in
7367

7468
# The following packages are considered to be unsafe in a requirements file:
7569
# setuptools

src/ensembl/production/metadata/api/models/dataset.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ class Dataset(LoadAble, Base):
4848
created = Column(DATETIME(fsp=6), server_default=func.now(), default=datetime.datetime.utcnow)
4949
dataset_source_id = Column(ForeignKey('dataset_source.dataset_source_id'), nullable=False, index=True)
5050
label = Column(String(128), nullable=False)
51-
status = Column(Enum('Submitted', 'Progressing', 'Processed'), server_default=text("'Submitted'"))
51+
status = Column(Enum('Submitted', 'Progressing', 'Processed', 'Released'),
52+
server_default=text("'Submitted'"))
5253

5354
# One to many relationships
5455
# dataset_id to dataset attribute and genome dataset

src/ensembl/production/metadata/grpc/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -59,3 +59,4 @@ def __init__(self):
5959
self.pool_recycle = os.environ.get("POOL_RECYCLE", 50)
6060
self.allow_unreleased = parse_boolean_var(os.environ.get("ALLOW_UNRELEASED", False))
6161
self.debug_mode = parse_boolean_var(os.environ.get("DEBUG", False))
62+
self.service_port = int(os.environ.get("SERVICE_PORT", 50051))

src/ensembl/production/metadata/grpc/service.py

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,17 @@ def serve():
3939
reflection.SERVICE_NAME
4040
)
4141
reflection.enable_server_reflection(SERVICE_NAMES, server)
42-
server.add_insecure_port("[::]:50051")
42+
server.add_insecure_port(f"[::]:{cfg.service_port}")
4343
server.start()
4444
try:
45-
logger.info(f"Starting GRPC Server from {cfg.metadata_uri}")
46-
logger.info(f"DEBUG: {cfg.debug_mode}")
45+
logger.info(f"Starting GRPC Server on {cfg.service_port} DEBUG: {cfg.debug_mode}")
4746
server.wait_for_termination()
48-
yield server
4947
except KeyboardInterrupt:
5048
logger.info("KeyboardInterrupt caught, stopping the server...")
5149
server.stop(grace=0) # Immediately stop the server
5250
logger.info("gRPC server has shut down gracefully")
5351

5452

5553
if __name__ == "__main__":
56-
logger.info("gRPC server starting on port 50051...")
54+
logger.info(f"gRPC server starting...")
5755
serve()

0 commit comments

Comments
 (0)