From 26958fe067bc6b8a5c1f74bac8244c1f4229129b Mon Sep 17 00:00:00 2001
From: gifrerenom <lluis.gifre@cttc.es>
Date: Tue, 22 Apr 2025 09:29:31 +0000
Subject: [PATCH] Fix GitLab CI/CD pipeline

---
 src/analytics/frontend/requirements.in |  2 +-
 src/automation/requirements.in         |  2 +-
 src/kpi_value_api/requirements.in      |  4 ++--
 src/nbi/.gitlab-ci.yml                 | 21 +++++++++++++++++++++
 4 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/analytics/frontend/requirements.in b/src/analytics/frontend/requirements.in
index 6363d8a97..5e8904d71 100644
--- a/src/analytics/frontend/requirements.in
+++ b/src/analytics/frontend/requirements.in
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apscheduler==3.10.1
+apscheduler>=3.10.4
 confluent-kafka==2.3.*
 psycopg2-binary==2.9.*
 SQLAlchemy==1.4.*
diff --git a/src/automation/requirements.in b/src/automation/requirements.in
index 0f291eca8..5e8904d71 100644
--- a/src/automation/requirements.in
+++ b/src/automation/requirements.in
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apscheduler==3.10.4
+apscheduler>=3.10.4
 confluent-kafka==2.3.*
 psycopg2-binary==2.9.*
 SQLAlchemy==1.4.*
diff --git a/src/kpi_value_api/requirements.in b/src/kpi_value_api/requirements.in
index 6addbfdfd..ab6bc5a0a 100644
--- a/src/kpi_value_api/requirements.in
+++ b/src/kpi_value_api/requirements.in
@@ -12,7 +12,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+apscheduler>=3.10.4
 confluent-kafka==2.3.*
-requests==2.27.*
 prometheus-api-client==0.5.3
-apscheduler==3.10.1
+requests==2.27.*
diff --git a/src/nbi/.gitlab-ci.yml b/src/nbi/.gitlab-ci.yml
index f8aa68726..141d87c26 100644
--- a/src/nbi/.gitlab-ci.yml
+++ b/src/nbi/.gitlab-ci.yml
@@ -61,9 +61,25 @@ unit_test nbi:
       else
         echo "$IMAGE_NAME image is not in the system";
       fi
+    - if docker container ls | grep kafka; then docker rm -f kafka; else echo "Kafka container is not in the system"; fi
+    - docker container prune -f
   script:
     - docker pull "$CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG"
     - docker pull "$CI_REGISTRY_IMAGE/mock_tfs_nbi_dependencies:test"
+    - docker pull "bitnami/kafka:latest"
+    - >
+      docker run --name kafka -d --network=teraflowbridge -p 9092:9092 -p 9093:9093
+      --env KAFKA_CFG_NODE_ID=1
+      --env KAFKA_CFG_PROCESS_ROLES=controller,broker
+      --env KAFKA_CFG_LISTENERS=PLAINTEXT://:9092,CONTROLLER://:9093
+      --env KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP=PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT
+      --env KAFKA_CFG_CONTROLLER_LISTENER_NAMES=CONTROLLER
+      --env KAFKA_CFG_CONTROLLER_QUORUM_VOTERS=1@kafka:9093
+      bitnami/kafka:latest
+    - sleep 20 # Wait for Kafka to start
+    - docker inspect kafka --format "{{.NetworkSettings.Networks}}"
+    - KAFKA_IP=$(docker inspect kafka --format "{{.NetworkSettings.Networks.teraflowbridge.IPAddress}}")
+    - echo $KAFKA_IP
     - >
       docker run --name mock_tfs_nbi_dependencies -d -p 10000:10000
       --network=teraflowbridge
@@ -77,9 +93,11 @@ unit_test nbi:
       --env LOG_LEVEL=DEBUG
       --env FLASK_ENV=development
       --env IETF_NETWORK_RENDERER=LIBYANG
+      --env "KFK_SERVER_ADDRESS=${KAFKA_IP}:9092"
       $CI_REGISTRY_IMAGE/$IMAGE_NAME:$IMAGE_TAG
     - sleep 30
     - docker ps -a
+    - docker logs kafka
     - docker logs mock_tfs_nbi_dependencies
     - docker logs $IMAGE_NAME
     - docker exec -i $IMAGE_NAME bash -c "coverage run --append -m pytest --log-level=DEBUG -o log_cli=true --verbose $IMAGE_NAME/tests/test_core.py --junitxml=/opt/results/${IMAGE_NAME}_report_core.xml"
@@ -92,7 +110,10 @@ unit_test nbi:
   coverage: '/TOTAL\s+\d+\s+\d+\s+(\d+%)/'
   after_script:
     - docker logs mock_tfs_nbi_dependencies
+    - docker logs $IMAGE_NAME
+    - docker logs kafka
     - docker rm -f mock_tfs_nbi_dependencies $IMAGE_NAME
+    - docker rm -f kafka
     - docker network rm teraflowbridge
   rules:
     - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && ($CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop" || $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == $CI_DEFAULT_BRANCH)'
-- 
GitLab