diff --git a/.gitignore b/.gitignore index 53f8e67287f1e43cf05af70f8252eb4df3576be2..3e79c7c63c4b544408ddf347f07c720b26d43248 100644 --- a/.gitignore +++ b/.gitignore @@ -6,9 +6,6 @@ __pycache__/ # C extensions *.so -# workspace configurations -pyproject.toml - # Distribution / packaging .Python build/ @@ -56,6 +53,7 @@ coverage.xml .pytest_cache/ .benchmarks/ cover/ +*_report.xml # Translations *.mo @@ -133,6 +131,9 @@ venv.bak/ # VSCode project settings .vscode/ +# Visual Studio project settings +/.vs + # Rope project settings .ropeproject @@ -161,11 +162,6 @@ cython_debug/ # TeraFlowSDN-generated files tfs_runtime_env_vars.sh - -# Coverage report files -*_report.xml delete_local_deployment.sh local_docker_deployment.sh local_k8s_deployment.sh -/src/common/proto/.gitkeep -/src/common/proto/__init__.py diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..b5c1b7dcb903bdf9759de8f90dd4766ba06393a7 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,11 @@ +# file containing the configuration for several tools used +# THIS FILE MUST NOT BE CHANGED + +[tool.black] +line-length = 88 + +[tool.isort] +profile = "black" +line_length = 88 +src_paths = "." +skip_gitignore = true \ No newline at end of file diff --git a/src/dbscanserving/Config.py b/src/dbscanserving/Config.py index 372416fad00d11e9bc01da3e697ddb6e3935ead5..5e462dac105205a3140ddb7b3a9a95c5feee3478 100644 --- a/src/dbscanserving/Config.py +++ b/src/dbscanserving/Config.py @@ -19,8 +19,6 @@ LOG_LEVEL = logging.DEBUG # gRPC settings GRPC_SERVICE_PORT = 10008 -GRPC_MAX_WORKERS = 10 -GRPC_GRACE_PERIOD = 60 # Prometheus settings METRICS_PORT = 9192 diff --git a/src/dbscanserving/service/DbscanService.py b/src/dbscanserving/service/DbscanService.py index f91d4f8c5ea3a3858046567f4a781bc2fbd0a1d8..fd8ae1ffea570ee0c44c1fe02e9103f3a7f5eb8c 100644 --- a/src/dbscanserving/service/DbscanService.py +++ b/src/dbscanserving/service/DbscanService.py @@ -16,8 +16,9 @@ import logging from concurrent import futures import grpc +from common.Constants import DEFAULT_GRPC_GRACE_PERIOD, DEFAULT_GRPC_MAX_WORKERS from common.proto.dbscanserving_pb2_grpc import add_DetectorServicer_to_server -from dbscanserving.Config import GRPC_GRACE_PERIOD, GRPC_MAX_WORKERS, GRPC_SERVICE_PORT +from dbscanserving.Config import GRPC_SERVICE_PORT from dbscanserving.service.DbscanServiceServicerImpl import DbscanServiceServicerImpl from grpc_health.v1.health import OVERALL_HEALTH, HealthServicer from grpc_health.v1.health_pb2 import HealthCheckResponse @@ -32,8 +33,8 @@ class DbscanService: self, address=BIND_ADDRESS, port=GRPC_SERVICE_PORT, - max_workers=GRPC_MAX_WORKERS, - grace_period=GRPC_GRACE_PERIOD, + grace_period=DEFAULT_GRPC_GRACE_PERIOD, + max_workers=DEFAULT_GRPC_MAX_WORKERS, ): self.address = address diff --git a/src/dbscanserving/service/__main__.py b/src/dbscanserving/service/__main__.py index b5ef26922a13b199cf3f5b84ba6bff2a0bd43593..f50975ef06daf7783725485880f2d8623dbe29eb 100644 --- a/src/dbscanserving/service/__main__.py +++ b/src/dbscanserving/service/__main__.py @@ -17,8 +17,9 @@ import signal import sys import threading +from common.Constants import DEFAULT_GRPC_GRACE_PERIOD, DEFAULT_GRPC_MAX_WORKERS from common.Settings import get_log_level, get_metrics_port, get_setting -from dbscanserving.Config import GRPC_GRACE_PERIOD, GRPC_MAX_WORKERS, GRPC_SERVICE_PORT +from dbscanserving.Config import GRPC_SERVICE_PORT from dbscanserving.service.DbscanService import DbscanService from prometheus_client import start_http_server @@ -41,8 +42,8 @@ def main(): service_port = get_setting( "DBSCANSERVICE_SERVICE_PORT_GRPC", default=GRPC_SERVICE_PORT ) - max_workers = get_setting("MAX_WORKERS", default=GRPC_MAX_WORKERS) - grace_period = get_setting("GRACE_PERIOD", default=GRPC_GRACE_PERIOD) + grace_period = get_setting("GRACE_PERIOD", default=DEFAULT_GRPC_GRACE_PERIOD) + max_workers = get_setting("MAX_WORKERS", default=DEFAULT_GRPC_MAX_WORKERS) signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) diff --git a/src/dbscanserving/tests/test_unitary.py b/src/dbscanserving/tests/test_unitary.py index 9de9b9c910215791ddeb0f91bc0fe5d09cf2e691..7285b1305114ae7b303930abc83b8c5e9442ba66 100644 --- a/src/dbscanserving/tests/test_unitary.py +++ b/src/dbscanserving/tests/test_unitary.py @@ -20,7 +20,7 @@ from unittest.mock import patch import pytest from common.proto.dbscanserving_pb2 import DetectionRequest, DetectionResponse, Sample from dbscanserving.client.DbscanServingClient import DbscanServingClient -from dbscanserving.Config import GRPC_GRACE_PERIOD, GRPC_MAX_WORKERS, GRPC_SERVICE_PORT +from dbscanserving.Config import GRPC_SERVICE_PORT from dbscanserving.service.DbscanService import DbscanService port = 10000 + GRPC_SERVICE_PORT # avoid privileged ports @@ -31,9 +31,7 @@ LOGGER.setLevel(logging.DEBUG) @pytest.fixture(scope="session") def dbscanserving_service(): - _service = DbscanService( - port=port, max_workers=GRPC_MAX_WORKERS, grace_period=GRPC_GRACE_PERIOD - ) + _service = DbscanService(port=port) _service.start() yield _service _service.stop() diff --git a/src/opticalattackmitigator/tests/test_unitary.py b/src/opticalattackmitigator/tests/test_unitary.py index 97b2cd10a48950e9ae0c192bfdb65136867998b2..75473de09969dd86f0f9c9ebe694e38a969e48f3 100644 --- a/src/opticalattackmitigator/tests/test_unitary.py +++ b/src/opticalattackmitigator/tests/test_unitary.py @@ -13,6 +13,8 @@ # limitations under the License. import logging +import os +from unittest.mock import patch import pytest from common.proto.optical_attack_mitigator_pb2 import AttackDescription, AttackResponse @@ -20,8 +22,6 @@ from opticalattackmitigator.client.OpticalAttackMitigatorClient import ( OpticalAttackMitigatorClient, ) from opticalattackmitigator.Config import ( - GRPC_GRACE_PERIOD, - GRPC_MAX_WORKERS, GRPC_SERVICE_PORT, ) from opticalattackmitigator.service.OpticalAttackMitigatorService import ( @@ -37,7 +37,7 @@ LOGGER.setLevel(logging.DEBUG) @pytest.fixture(scope="session") def optical_attack_mitigator_service(): _service = OpticalAttackMitigatorService( - port=port, max_workers=GRPC_MAX_WORKERS, grace_period=GRPC_GRACE_PERIOD + port=port ) _service.start() yield _service @@ -46,8 +46,16 @@ def optical_attack_mitigator_service(): @pytest.fixture(scope="session") def optical_attack_mitigator_client(optical_attack_mitigator_service): - _client = OpticalAttackMitigatorClient(address="127.0.0.1", port=port) - yield _client + with patch.dict( + os.environ, + { + "OPTICALATTACKMITIGATORSERVICE_SERVICE_HOST": "127.0.0.1", + "OPTICALATTACKMITIGATORSERVICE_SERVICE_PORT_GRPC": str(port), + }, + clear=True, + ): + _client = OpticalAttackMitigatorClient() + yield _client _client.close()