Control Model loader execution Order 09/142109/1
authorToineSiebelink <toine.siebelink@est.tech>
Wed, 24 Sep 2025 08:31:45 +0000 (09:31 +0100)
committerToineSiebelink <toine.siebelink@est.tech>
Wed, 24 Sep 2025 11:02:48 +0000 (12:02 +0100)
- Use @Order annotation to execute model loader sequentially instead of parallel
- Removed duplicated steps between model loaders (just one)
- Improved and consistent logging for each model loader starting and stopping

Issue-ID: CPS-2988
Change-Id: Icd1bb365a65831fbef52f6d9881d8d23dbb3c8aa
Signed-off-by: ToineSiebelink <toine.siebelink@est.tech>
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/CmDataSubscriptionModelLoader.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/init/InventoryModelLoader.java
cps-service/src/main/java/org/onap/cps/init/CpsNotificationSubscriptionModelLoader.java

index 14776e0..99a2829 100644 (file)
@@ -29,10 +29,12 @@ import org.onap.cps.api.CpsDataspaceService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.init.AbstractModelLoader;
 import org.onap.cps.init.actuator.ReadinessManager;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 @Slf4j
 @Service
+@Order(3)
 public class CmDataSubscriptionModelLoader extends AbstractModelLoader {
 
     private static final String MODEL_FILE_NAME = "cm-data-job-subscriptions@2025-09-03.yang";
@@ -50,15 +52,16 @@ public class CmDataSubscriptionModelLoader extends AbstractModelLoader {
 
     @Override
     public void onboardOrUpgradeModel() {
+        log.info("Model Loader #3 Started: NCMP CM Data Notification Subscription Models");
         onboardSubscriptionModels();
-        log.info("Subscription Models onboarded successfully");
+        log.info("Model Loader #3 Completed");
     }
 
     private void onboardSubscriptionModels() {
-        createDataspace(NCMP_DATASPACE_NAME);
         createSchemaSet(NCMP_DATASPACE_NAME, SCHEMA_SET_NAME, MODEL_FILE_NAME);
         createAnchor(NCMP_DATASPACE_NAME, SCHEMA_SET_NAME, ANCHOR_NAME);
         createTopLevelDataNode(NCMP_DATASPACE_NAME, ANCHOR_NAME, REGISTRY_DATA_NODE_NAME);
+        log.info("NCMP CM Data Notification Subscription Models onboarded successfully");
     }
 
 }
index fe8e10a..f1d89a0 100644 (file)
@@ -34,10 +34,12 @@ import org.onap.cps.init.actuator.ReadinessManager;
 import org.onap.cps.ncmp.utils.events.NcmpInventoryModelOnboardingFinishedEvent;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 @Slf4j
 @Service
+@Order(2)
 public class InventoryModelLoader extends AbstractModelLoader {
 
     private final ApplicationEventPublisher applicationEventPublisher;
@@ -65,6 +67,7 @@ public class InventoryModelLoader extends AbstractModelLoader {
 
     @Override
     public void onboardOrUpgradeModel() {
+        log.info("Model Loader #2 Started: NCMP Inventory Models");
         final String schemaToInstall = newRevisionEnabled ? NEW_INVENTORY_SCHEMA_SET_NAME : PREVIOUS_SCHEMA_SET_NAME;
         final String moduleRevision = getModuleRevision(schemaToInstall);
 
@@ -76,8 +79,8 @@ public class InventoryModelLoader extends AbstractModelLoader {
         } else {
             installInventoryModel(schemaToInstall);
         }
-
         applicationEventPublisher.publishEvent(new NcmpInventoryModelOnboardingFinishedEvent(this));
+        log.info("Model Loader #2 Completed");
     }
 
     private void installInventoryModel(final String schemaSetName) {
index 415dcce..f8c8591 100644 (file)
@@ -1,6 +1,7 @@
 /*
  *  ============LICENSE_START=======================================================
  *  Copyright (C) 2024-2025 TechMahindra Ltd.
+ *  Modifications Copyright (C) 2025 OpenInfra Foundation Europe.
  *  ================================================================================
  *  Licensed under the Apache License, Version 2.0 (the "License");
  *  you may not use this file except in compliance with the License.
@@ -26,10 +27,12 @@ import org.onap.cps.api.CpsDataService;
 import org.onap.cps.api.CpsDataspaceService;
 import org.onap.cps.api.CpsModuleService;
 import org.onap.cps.init.actuator.ReadinessManager;
+import org.springframework.core.annotation.Order;
 import org.springframework.stereotype.Service;
 
 @Slf4j
 @Service
+@Order(1)
 public class CpsNotificationSubscriptionModelLoader extends AbstractModelLoader {
 
     private static final String MODEL_FILENAME = "cps-notification-subscriptions@2024-07-03.yang";
@@ -48,8 +51,9 @@ public class CpsNotificationSubscriptionModelLoader extends AbstractModelLoader
 
     @Override
     public void onboardOrUpgradeModel() {
+        log.info("Model Loader #1 Started: CPS Data Notification Subscription Models");
         onboardSubscriptionModels();
-        log.info("Subscription models onboarded successfully");
+        log.info("Model Loader #1 Completed");
     }
 
     private void onboardSubscriptionModels() {
@@ -57,6 +61,7 @@ public class CpsNotificationSubscriptionModelLoader extends AbstractModelLoader
         createSchemaSet(CPS_DATASPACE_NAME, SCHEMA_SET_NAME, MODEL_FILENAME);
         createAnchor(CPS_DATASPACE_NAME, SCHEMA_SET_NAME, ANCHOR_NAME);
         createTopLevelDataNode(CPS_DATASPACE_NAME, ANCHOR_NAME, REGISTRY_DATANODE_NAME);
+        log.info("CPS Data Notification Subscription models onboarded successfully");
     }
 
 }