Add a configurable delay to the DMI stub 96/137196/3
authorJvD_Ericsson <jeff.van.dam@est.tech>
Wed, 31 Jan 2024 13:47:28 +0000 (13:47 +0000)
committerJvD_Ericsson <jeff.van.dam@est.tech>
Mon, 12 Feb 2024 11:04:11 +0000 (11:04 +0000)
Added realistic default delay to application.yaml
Added realistic default delay to docker-compose.yml

Issue-ID: CPS-2053
Signed-off-by: JvD_Ericsson <jeff.van.dam@est.tech>
Change-Id: I756774e9538926aa341f1338fcb6882951ce3e69

dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/java/org/onap/cps/ncmp/dmi/rest/stub/controller/DmiRestStubController.java
dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/application.yml
docker-compose/docker-compose.yml

index a4f7111..772eb05 100644 (file)
@@ -69,6 +69,15 @@ public class DmiRestStubController {
     @Value("${app.ncmp.async-m2m.topic}")
     private String ncmpAsyncM2mTopic;
 
+    @Value("${delay.module-references-delay-ms}")
+    private long moduleReferencesDelayMs;
+
+    @Value("${delay.module-resources-delay-ms}")
+    private long moduleResourcesDelayMs;
+
+    @Value("${delay.data-for-cm-handle-delay-ms}")
+    private long dataForCmHandleDelayMs;
+
     private String dataOperationEventType = "org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent";
 
     /**
@@ -82,6 +91,7 @@ public class DmiRestStubController {
     @PostMapping("/v1/ch/{cmHandleId}/modules")
     public ResponseEntity<String> getModuleReferences(@PathVariable final String cmHandleId,
                                                       @RequestBody final Object moduleReferencesRequest) {
+        delay(moduleReferencesDelayMs);
         final String moduleResponseContent = getModuleResourceResponse(cmHandleId,
                 "ModuleResponse.json");
         log.info("cm handle: {} requested for modules", cmHandleId);
@@ -100,6 +110,7 @@ public class DmiRestStubController {
     public ResponseEntity<String> retrieveModuleResources(
             @PathVariable final String cmHandleId,
             @RequestBody final Object moduleResourcesReadRequest) {
+        delay(moduleResourcesDelayMs);
         final String moduleResourcesResponseContent = getModuleResourceResponse(cmHandleId,
                 "ModuleResourcesResponse.json");
         log.info("cm handle: {} requested for modules resources", cmHandleId);
@@ -121,6 +132,7 @@ public class DmiRestStubController {
                                                                         final String requestId,
                                                                         @RequestBody final DmiDataOperationRequest
                                                                                     dmiDataOperationRequest) {
+        delay(dataForCmHandleDelayMs);
         try {
             log.info("Request received from the NCMP to DMI Plugin: {}",
                     objectMapper.writeValueAsString(dmiDataOperationRequest));
@@ -199,4 +211,13 @@ public class DmiRestStubController {
         return ResourceFileReaderUtil.getResourceFileContent(applicationContext.getResource(
                 ResourceLoader.CLASSPATH_URL_PREFIX + "module/ietfYang" + moduleResponseType));
     }
+
+    private void delay(final long milliseconds) {
+        try {
+            Thread.sleep(milliseconds);
+        } catch (final InterruptedException e) {
+            log.error("Thread sleep interrupted: {}", e.getMessage());
+            Thread.currentThread().interrupt();
+        }
+    }
 }
index 8e39a4e..de097a6 100644 (file)
@@ -40,3 +40,8 @@ app:
     ncmp:
         async-m2m:
             topic: ${NCMP_ASYNC_M2M_TOPIC:ncmp-async-m2m}
+
+delay:
+    module-references-delay-ms: ${MODULE_REFERENCES_DELAY_MS:100}
+    module-resources-delay-ms: ${MODULE_RESOURCES_DELAY_MS:1000}
+    data-for-cm-handle-delay-ms: ${DATA_FOR_CM_HANDLE_DELAY_MS:2500}
index 906945d..9ccb64b 100644 (file)
@@ -129,6 +129,9 @@ services:
       KAFKA_BOOTSTRAP_SERVER: kafka:29092
       NCMP_CONSUMER_GROUP_ID: ncmp-group
       NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m
+      MODULE_REFERENCES_DELAY_MS: 100
+      MODULE_RESOURCES_DELAY_MS: 1000
+      DATA_FOR_CM_HANDLE_DELAY_MS: 2500
     restart: unless-stopped
     profiles:
       - dmi-stub