Skip to content
Snippets Groups Projects
Commit d1c13918 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Context component:

- repositioned Database Engine class
- updated CI/CD pipeline
parent fb1c48a7
No related branches found
No related tags found
2 merge requests!54Release 2.0.0,!34Context Scalability extensions using CockroachDB + Removal of Stateful database inside Device + other
...@@ -49,22 +49,40 @@ unit test context: ...@@ -49,22 +49,40 @@ unit test context:
before_script: before_script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi - if docker network list | grep teraflowbridge; then echo "teraflowbridge is already created"; else docker network create -d bridge teraflowbridge; fi
- if docker container ls | grep redis; then docker rm -f redis; else echo "redis image is not in the system"; fi - if docker container ls | grep crdb; then docker rm -f crdb; else echo "CockroachDB container is not in the system"; fi
- if docker volume ls | grep crdb; then docker volume rm -f crdb; else echo "CockroachDB volume is not in the system"; fi
- if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi - if docker container ls | grep $IMAGE_NAME; then docker rm -f $IMAGE_NAME; else echo "$IMAGE_NAME image is not in the system"; fi
script: script:
- docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG" - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
- docker pull "redis:6.2" - docker pull "cockroachdb/cockroach:latest-v22.2"
- docker run --name redis -d --network=teraflowbridge redis:6.2 - docker volume create crdb
- >
docker run --name crdb -d --network=teraflowbridge -p 26257:26257 -p 8080:8080
--env COCKROACH_DATABASE=tfs_test
--env COCKROACH_USER=tfs
--env COCKROACH_PASSWORD=tfs123
--volume "crdb:/cockroach/cockroach-data"
--volume "~/init-scripts:/docker-entrypoint-initdb.d"
cockroachdb/cockroach:latest-v22.2 start-single-node
- sleep 10 - sleep 10
- docker run --name $IMAGE_NAME -d -p 1010:1010 --env "DB_BACKEND=redis" --env "REDIS_SERVICE_HOST=redis" --env "REDIS_SERVICE_PORT=6379" --env "REDIS_DATABASE_ID=0" -v "$PWD/src/$IMAGE_NAME/tests:/opt/results" --network=teraflowbridge $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG - CRDB_ADDRESS=$(docker inspect crdb --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}")
- >
docker run --name $IMAGE_NAME -d -p 1010:1010
--env "CRDB_URI=cockroachdb://tfs:tfs123@${CRDB_ADDRESS}:26257/tfs_test?sslmode=require"
--volume "$PWD/src/$IMAGE_NAME/tests:/opt/results"
--network=teraflowbridge
$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
- docker ps -a - docker ps -a
- docker logs $IMAGE_NAME - docker logs $IMAGE_NAME
- docker exec -i $IMAGE_NAME bash -c "coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/test_unitary.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml" - >
docker exec -i $IMAGE_NAME bash -c
"coverage run -m pytest --log-level=INFO --verbose $IMAGE_NAME/tests/*.py --junitxml=/opt/results/${IMAGE_NAME}_report.xml"
- docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing" - docker exec -i $IMAGE_NAME bash -c "coverage report --include='${IMAGE_NAME}/*' --show-missing"
coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/' coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
after_script: after_script:
- docker rm -f $IMAGE_NAME - docker rm -f $IMAGE_NAME
- docker rm -f redis - docker rm -f crdb
- docker volume rm -f crdb
- docker network rm teraflowbridge - docker network rm teraflowbridge
rules: rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)' - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
......
...@@ -17,10 +17,9 @@ from prometheus_client import start_http_server ...@@ -17,10 +17,9 @@ from prometheus_client import start_http_server
from common.Settings import get_log_level, get_metrics_port from common.Settings import get_log_level, get_metrics_port
from common.message_broker.Factory import get_messagebroker_backend from common.message_broker.Factory import get_messagebroker_backend
from common.message_broker.MessageBroker import MessageBroker from common.message_broker.MessageBroker import MessageBroker
from sqlalchemy.orm import sessionmaker
from .database import rebuild_database
from .ContextService import ContextService from .ContextService import ContextService
from .Engine import Engine from .database.Engine import Engine
from .database.models._Base import rebuild_database
LOG_LEVEL = get_log_level() LOG_LEVEL = get_log_level()
logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s") logging.basicConfig(level=LOG_LEVEL, format="[%(asctime)s] %(levelname)s:%(name)s:%(message)s")
...@@ -46,7 +45,8 @@ def main(): ...@@ -46,7 +45,8 @@ def main():
start_http_server(metrics_port) start_http_server(metrics_port)
db_engine = Engine.get_engine() db_engine = Engine.get_engine()
rebuild_database(db_engine, drop_if_exists=False) Engine.create_database(db_engine)
rebuild_database(db_engine)
# Get message broker instance # Get message broker instance
messagebroker = MessageBroker(get_messagebroker_backend()) messagebroker = MessageBroker(get_messagebroker_backend())
......
...@@ -25,7 +25,7 @@ from common.message_broker.Factory import get_messagebroker_backend, BackendEnum ...@@ -25,7 +25,7 @@ from common.message_broker.Factory import get_messagebroker_backend, BackendEnum
from common.message_broker.MessageBroker import MessageBroker from common.message_broker.MessageBroker import MessageBroker
from context.client.ContextClient import ContextClient from context.client.ContextClient import ContextClient
from context.service.ContextService import ContextService from context.service.ContextService import ContextService
from context.service.Engine import Engine from context.service.database.Engine import Engine
from context.service.database.models._Base import rebuild_database from context.service.database.models._Base import rebuild_database
LOCAL_HOST = '127.0.0.1' LOCAL_HOST = '127.0.0.1'
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment