From ad689eb453fdd4bc3345be58739ab4a93a996f72 Mon Sep 17 00:00:00 2001 From: Lluis Gifre <lluis.gifre@cttc.es> Date: Mon, 25 Oct 2021 17:43:20 +0200 Subject: [PATCH] Integration corrections - Adapt component and unitary tests to support configuration environment variables --- manifests/contextservice.yaml | 4 ++-- src/context/.gitlab-ci.yml | 8 +++++--- src/context/service/__main__.py | 18 +++++++++--------- src/context/tests/test_unitary.py | 12 ++++++++---- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/manifests/contextservice.yaml b/manifests/contextservice.yaml index 97bef301c..149ae4e72 100644 --- a/manifests/contextservice.yaml +++ b/manifests/contextservice.yaml @@ -32,12 +32,12 @@ spec: - containerPort: 1010 - containerPort: 8080 env: - - name: DB_ENGINE + - name: DB_BACKEND value: "redis" - name: REDIS_DATABASE_ID value: "0" - name: LOG_LEVEL - value: "DEBUG" + value: "INFO" - name: POPULATE_FAKE_DATA value: "true" readinessProbe: diff --git a/src/context/.gitlab-ci.yml b/src/context/.gitlab-ci.yml index a6917d728..8803cc9c2 100644 --- a/src/context/.gitlab-ci.yml +++ b/src/context/.gitlab-ci.yml @@ -30,15 +30,17 @@ unit_test context: - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi script: - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - - docker run -d -p 1010:1010 --name $IMAGE_NAME --network=teraflowbridge "$IMAGE_NAME:$IMAGE_TAG" + - docker pull "redis:6.2" + - docker run -d --name $IMAGE_NAME-redis --network=teraflowbridge redis:6.2 + - docker run -d --name $IMAGE_NAME --network=teraflowbridge --env "LOG_LEVEL=INFO" --env "DB_BACKEND=redis" --env "REDIS_SERVICE_HOST=$IMAGE_NAME-redis" --env "REDIS_SERVICE_PORT=6379" --env "REDIS_DATABASE_ID=0" "$IMAGE_NAME:$IMAGE_TAG" - docker ps -a - sleep 5 - docker ps -a - docker logs $IMAGE_NAME - docker exec -i $IMAGE_NAME bash -c "pytest --log-level=DEBUG --verbose $IMAGE_NAME/tests/test_unitary.py" after_script: - - docker stop $IMAGE_NAME - - docker rm $IMAGE_NAME + - docker stop $IMAGE_NAME $IMAGE_NAME-redis + - docker rm $IMAGE_NAME $IMAGE_NAME-redis rules: - changes: - src/$IMAGE_NAME/** diff --git a/src/context/service/__main__.py b/src/context/service/__main__.py index 985a8e528..1cb456822 100644 --- a/src/context/service/__main__.py +++ b/src/context/service/__main__.py @@ -14,14 +14,14 @@ from context.service.rest_server.Server import Server from context.service.rest_server.Resources import RESOURCES terminate = threading.Event() -logger = None +LOGGER = None def signal_handler(signal_, frame): - logger.warning('Terminate signal received') + LOGGER.warning('Terminate signal received') terminate.set() def main(): - global logger # pylint: disable=global-statement + global LOGGER # pylint: disable=global-statement grpc_service_port = get_setting('CONTEXTSERVICE_SERVICE_PORT_GRPC', default=GRPC_SERVICE_PORT ) max_workers = get_setting('MAX_WORKERS', default=GRPC_MAX_WORKERS ) @@ -34,12 +34,12 @@ def main(): if isinstance(populate_fake_data, str): populate_fake_data = (populate_fake_data.upper() in {'T', '1', 'TRUE'}) logging.basicConfig(level=log_level) - logger = logging.getLogger(__name__) + LOGGER = logging.getLogger(__name__) signal.signal(signal.SIGINT, signal_handler) signal.signal(signal.SIGTERM, signal_handler) - logger.info('Starting...') + LOGGER.info('Starting...') # Start metrics server start_http_server(metrics_port) @@ -61,19 +61,19 @@ def main(): rest_server.start() if populate_fake_data: - logger.info('Populating fake data...') + LOGGER.info('Populating fake data...') populate('127.0.0.1', grpc_service_port) - logger.info('Fake Data populated') + LOGGER.info('Fake Data populated') # Wait for Ctrl+C or termination signal while not terminate.wait(timeout=0.1): pass - logger.info('Terminating...') + LOGGER.info('Terminating...') grpc_service.stop() rest_server.shutdown() rest_server.join() - logger.info('Bye') + LOGGER.info('Bye') return 0 if __name__ == '__main__': diff --git a/src/context/tests/test_unitary.py b/src/context/tests/test_unitary.py index db706948f..02343f458 100644 --- a/src/context/tests/test_unitary.py +++ b/src/context/tests/test_unitary.py @@ -1,4 +1,4 @@ -import copy, grpc, logging, pytest, requests, threading, time, urllib +import copy, grpc, logging, os, pytest, requests, threading, time, urllib from queue import Queue from typing import Tuple from common.Constants import DEFAULT_CONTEXT_UUID, DEFAULT_TOPOLOGY_UUID @@ -34,10 +34,14 @@ LOGGER.setLevel(logging.DEBUG) GRPC_PORT = 10000 + GRPC_SERVICE_PORT # avoid privileged ports RESTAPI_PORT = 10000 + RESTAPI_SERVICE_PORT # avoid privileged ports +DEFAULT_REDIS_SERVICE_HOST = '127.0.0.1' +DEFAULT_REDIS_SERVICE_PORT = 6379 +DEFAULT_REDIS_DATABASE_ID = 0 + REDIS_CONFIG = { - 'REDIS_SERVICE_HOST': '10.1.7.194', - 'REDIS_SERVICE_PORT': 30283, - 'REDIS_DATABASE_ID': 0, + 'REDIS_SERVICE_HOST': os.environ.get('REDIS_SERVICE_HOST', DEFAULT_REDIS_SERVICE_HOST), + 'REDIS_SERVICE_PORT': os.environ.get('REDIS_SERVICE_PORT', DEFAULT_REDIS_SERVICE_PORT), + 'REDIS_DATABASE_ID' : os.environ.get('REDIS_DATABASE_ID', DEFAULT_REDIS_DATABASE_ID ), } SCENARIOS = [ -- GitLab