Temporary skip to push sampleapp images 90/12790/1
authorlapentafd <francesco.lapenta@est.tech>
Fri, 26 Apr 2024 12:11:58 +0000 (13:11 +0100)
committerlapentafd <francesco.lapenta@est.tech>
Fri, 26 Apr 2024 12:12:21 +0000 (13:12 +0100)
Issue-Id: NONRTRIC-965
Change-Id: Ifa64ef1067e807a0607cd364adb3492d013d4d1e
Signed-off-by: lapentafd <francesco.lapenta@est.tech>
sample-services/ics-producer-consumer/consumer/src/main/java/com/demo/consumer/consumer/SimpleConsumer.java
sample-services/ics-producer-consumer/producer/src/main/java/com/demo/producer/controllers/ProducerController.java
sample-services/ics-producer-consumer/start.sh
sample-services/ics-producer-consumer/utils.sh

index 430ab59..1d91afb 100644 (file)
@@ -72,7 +72,6 @@ public class SimpleConsumer extends AbstractSimpleKafka {
         // make the consumer available for graceful shutdown
         setKafkaConsumer(consumer);
         consumer.assign(Collections.singleton(new TopicPartition(topicName, 0)));
-        //consumer.seekToBeginning(consumer.assignment()); //--from-beginning
         int recNum = numOfRecs;
         while (recNum > 0) {
             ConsumerRecords<String, String> records = consumer.poll(Duration.ofMillis(TIME_OUT_MS));
index 5bc6821..bbf91b9 100644 (file)
@@ -47,14 +47,11 @@ import com.google.gson.GsonBuilder;
 @RequestMapping(path = "/producer", produces = "application/json")
 public class ProducerController {
     private static final Logger log = LoggerFactory.getLogger(ProducerController.class);
-
     private static Gson gson = new GsonBuilder().create();
-
     private final Jobs jobs;
     private final InfoTypes types;
     private String topicName = "mytopic";
 
-
     public ProducerController(@Autowired Jobs jobs, @Autowired InfoTypes types) {
         this.jobs = jobs;
         this.types = types;
index 18317a0..33d1ecf 100755 (executable)
@@ -62,119 +62,119 @@ docker run -d \
   -e KAFKA_SERVERS=kafka-zkless:9092 \
   $PREFIX/o-ran-sc/nonrtric-sample-icsconsumer:$VERSION
 
-# Wait for the Kafka container to be running
-wait_for_container "kafka-zkless" "Kafka Server started"
-wait_for_container "kafka-producer" "Started Application"
-wait_for_container "kafka-consumer" "Started Application"
-
-# Once Kafka container is running, start the producers and consumers
-echo "Kafka container is up and running. Starting producer and consumer..."
-space
-
-echo "Start 1 Producer on mytopic"
-curl -X GET http://localhost:8080/startProducer/mytopic
-space
-
-echo "Start 1 Consumer on mytopic"
-curl -X GET http://localhost:8081/startConsumer/mytopic
-space
-
-sleep 10
-
-echo "Sending type1 to ICS"
-curl -X 'PUT' \
-  'http://localhost:8083/data-producer/v1/info-types/type1' \
-  -H 'accept: application/json' \
-  -H 'Content-Type: application/json' \
-  -d '{
-  "info_job_data_schema": {
-    "$schema":"http://json-schema.org/draft-07/schema#",
-    "title":"STD_Type1_1.0.0",
-    "description":"Type 1",
-    "type":"object"
-  }
-}'
-
-echo "Getting types from ICS"
-curl -X 'GET' 'http://localhost:8083/data-producer/v1/info-types/type1'
-space
-
-echo "Sending Producer infos to ICS"
-curl -X 'PUT' \
-  'http://localhost:8083/data-producer/v1/info-producers/1' \
-  -H 'accept: application/json' \
-  -H 'Content-Type: application/json' \
-  -d '{
-  "info_producer_supervision_callback_url": "http://kafka-producer:8080/producer/supervision",
-  "supported_info_types": [
-    "type1"
-  ],
-  "info_job_callback_url": "http://kafka-producer:8080/producer/job"
-}'
-
-echo "Getting Producers Infos from ICS"
-curl -H 'Content-Type: application/json' 'http://localhost:8083/data-producer/v1/info-producers/1'
-space
-
-echo "Sending Consumer Job infos to ICS"
-curl -X 'PUT' \
-  'http://localhost:8083/data-consumer/v1/info-jobs/1' \
-  -H 'accept: application/json' \
-  -H 'Content-Type: application/json' \
-  -d '{
-  "info_type_id": "type1",
-  "job_owner": "demo",
-  "job_definition": {
-    "deliveryInfo": {
-      "topic": "mytopic",
-      "bootStrapServers": "http://kafka-zkless:9092",
-      "numberOfMessages": 0
-    }
-  },
-  "job_result_uri": "http://kafka-producer:8080/producer/job",
-  "status_notification_uri": "http://kafka-producer:8080/producer/supervision"
-}'
-
-echo "Getting Consumer Job Infos from ICS"
-curl -H 'Content-Type: application/json' 'http://localhost:8083/data-consumer/v1/info-jobs/1'
-space
-
-echo "Sending Consumer Subscription Job infos to ICS"
-curl -X 'PUT' \
-  'http://localhost:8083/data-consumer/v1/info-type-subscription/1' \
-  -H 'accept: application/json' \
-  -H 'Content-Type: application/json' \
-  -d '{
-  "status_result_uri": "http://kafka-consumer:8081/info-type-status",
-  "owner": "owner"
-}'
-echo "Getting Consumer Subscription Job infos from ICS"
-curl -X 'GET' 'http://localhost:8083/data-consumer/v1/info-type-subscription/1' -H 'accept: application/json'
-space
-
-sleep 5
-echo "ICS Producer Docker logs "
-docker logs informationcoordinatorservice | grep -E 'o.o.i.c.r1producer.ProducerCallbacks|o.o.i.repository.InfoTypeSubscriptions'
-space
-echo "Demo Producer Docker logs "
-docker logs kafka-producer | grep c.d.p.p.SimpleProducer
-space
-echo "Demo Consumer Docker logs "
-docker logs kafka-consumer | grep c.d.c.c.SimpleConsumer
-space
-
-echo "Done."
-
-containers=("kafka-producer" "kafka-consumer")
-
-for container in "${containers[@]}"; do
-  if docker logs "$container" | grep -q ERROR; then
-    echo "Errors found in logs of $container"
-    echo "FAIL"
-    exit 1
-  else
-    echo "No errors found in logs of $container"
-  fi
-done
+# Wait for the Kafka container to be running
+wait_for_container "kafka-zkless" "Kafka Server started"
+wait_for_container "kafka-producer" "Started Application"
+wait_for_container "kafka-consumer" "Started Application"
+
+# Once Kafka container is running, start the producers and consumers
+echo "Kafka container is up and running. Starting producer and consumer..."
+space
+
+echo "Start 1 Producer on mytopic"
+curl -X GET http://localhost:8080/startProducer/mytopic
+space
+
+echo "Start 1 Consumer on mytopic"
+curl -X GET http://localhost:8081/startConsumer/mytopic
+space
+
+sleep 10
+
+echo "Sending type1 to ICS"
+curl -X 'PUT' \
+  'http://localhost:8083/data-producer/v1/info-types/type1' \
+  -H 'accept: application/json' \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "info_job_data_schema": {
+    "$schema":"http://json-schema.org/draft-07/schema#",
+    "title":"STD_Type1_1.0.0",
+    "description":"Type 1",
+    "type":"object"
+  }
+}'
+
+echo "Getting types from ICS"
+curl -X 'GET' 'http://localhost:8083/data-producer/v1/info-types/type1'
+space
+
+echo "Sending Producer infos to ICS"
+curl -X 'PUT' \
+  'http://localhost:8083/data-producer/v1/info-producers/1' \
+  -H 'accept: application/json' \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "info_producer_supervision_callback_url": "http://kafka-producer:8080/producer/supervision",
+  "supported_info_types": [
+    "type1"
+  ],
+  "info_job_callback_url": "http://kafka-producer:8080/producer/job"
+}'
+
+echo "Getting Producers Infos from ICS"
+curl -H 'Content-Type: application/json' 'http://localhost:8083/data-producer/v1/info-producers/1'
+space
+
+echo "Sending Consumer Job infos to ICS"
+curl -X 'PUT' \
+  'http://localhost:8083/data-consumer/v1/info-jobs/1' \
+  -H 'accept: application/json' \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "info_type_id": "type1",
+  "job_owner": "demo",
+  "job_definition": {
+    "deliveryInfo": {
+      "topic": "mytopic",
+      "bootStrapServers": "http://kafka-zkless:9092",
+      "numberOfMessages": 0
+    }
+  },
+  "job_result_uri": "http://kafka-producer:8080/producer/job",
+  "status_notification_uri": "http://kafka-producer:8080/producer/supervision"
+}'
+
+echo "Getting Consumer Job Infos from ICS"
+curl -H 'Content-Type: application/json' 'http://localhost:8083/data-consumer/v1/info-jobs/1'
+space
+
+echo "Sending Consumer Subscription Job infos to ICS"
+curl -X 'PUT' \
+  'http://localhost:8083/data-consumer/v1/info-type-subscription/1' \
+  -H 'accept: application/json' \
+  -H 'Content-Type: application/json' \
+  -d '{
+  "status_result_uri": "http://kafka-consumer:8081/info-type-status",
+  "owner": "owner"
+}'
+echo "Getting Consumer Subscription Job infos from ICS"
+curl -X 'GET' 'http://localhost:8083/data-consumer/v1/info-type-subscription/1' -H 'accept: application/json'
+space
+
+sleep 5
+echo "ICS Producer Docker logs "
+docker logs informationcoordinatorservice | grep -E 'o.o.i.c.r1producer.ProducerCallbacks|o.o.i.repository.InfoTypeSubscriptions'
+space
+echo "Demo Producer Docker logs "
+docker logs kafka-producer | grep c.d.p.p.SimpleProducer
+space
+echo "Demo Consumer Docker logs "
+docker logs kafka-consumer | grep c.d.c.c.SimpleConsumer
+space
+
+echo "Done."
+
+containers=("kafka-producer" "kafka-consumer")
+
+for container in "${containers[@]}"; do
+  if docker logs "$container" | grep -q ERROR; then
+    echo "Errors found in logs of $container"
+    echo "FAIL"
+    exit 1
+  else
+    echo "No errors found in logs of $container"
+  fi
+done
 echo "SUCCESS"
 exit 0
index 68d19ec..af1cfa0 100644 (file)
@@ -69,28 +69,45 @@ checkDockerCompose() {
     fi
 }
 
-# Function to wait for a Docker container to be running and log a specific string
+# Function to wait for a Docker container to be running and log a specific string with a maximum timeout of 20 minutes
 wait_for_container() {
     local container_name="$1"
     local log_string="$2"
+    local timeout=1200  # Timeout set to 20 minutes (20 minutes * 60 seconds)
+
+    local start_time=$(date +%s)
+    local end_time=$((start_time + timeout))
 
     while ! docker inspect "$container_name" &>/dev/null; do
         echo "Waiting for container '$container_name' to be created..."
         sleep 5
+        if [ "$(date +%s)" -ge "$end_time" ]; then
+            echo "Timeout: Container creation exceeded 20 minutes."
+            exit 1
+        fi
     done
 
     while [ "$(docker inspect -f '{{.State.Status}}' "$container_name")" != "running" ]; do
         echo "Waiting for container '$container_name' to be running..."
         sleep 5
+        if [ "$(date +%s)" -ge "$end_time" ]; then
+            echo "Timeout: Container start exceeded 20 minutes."
+            exit 1
+        fi
     done
 
     # Check container logs for the specified string
     while ! docker logs "$container_name" 2>&1 | grep "$log_string"; do
         echo "Waiting for '$log_string' in container logs of '$container_name'..."
         sleep 5
+        if [ "$(date +%s)" -ge "$end_time" ]; then
+            echo "Timeout: Log string not found within 20 minutes."
+            exit 1
+        fi
     done
 }
 
+
 space() {
     echo ""
     echo "++++++++++++++++++++++++++++++++++++++++++++++++++++"