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