Commit ad689eb4 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Integration corrections

- Adapt component and unitary tests to support configuration environment variables
parent f7b5ea1a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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:
+5 −3
Original line number Diff line number Diff line
@@ -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/**
+9 −9
Original line number Diff line number Diff line
@@ -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__':
+8 −4
Original line number Diff line number Diff line
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 = [