diff options
author | halil.cakal <halil.cakal@est.tech> | 2024-07-16 13:53:05 +0100 |
---|---|---|
committer | halil.cakal <halil.cakal@est.tech> | 2024-07-16 13:56:28 +0100 |
commit | a9ee0abc27d2fdc0dbbd37817737dbd93c3f8a3f (patch) | |
tree | ca3d51c48aa135a0536dbd7e610c14f5fd7ae1a7 | |
parent | ac58e919008c4449b389d3681a6f8aa216cb5f8f (diff) |
Separate dmi delay for passthrough operations
- set dmi delay to 670 ms for passthrough write (CUD)
- set dmi delay to 300 ms for passthrough read
Issue-ID:CPS-2285
Change-Id: I7a4294d3ed04c89aeb5988a9975516135317af12
Signed-off-by: halil.cakal <halil.cakal@est.tech>
3 files changed, 27 insertions, 6 deletions
diff --git a/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 b/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 index 3891d5b72b..d57ed2e5c9 100644 --- a/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 +++ b/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 @@ -23,6 +23,7 @@ package org.onap.cps.ncmp.dmi.rest.stub.controller; import static org.onap.cps.ncmp.api.NcmpResponseStatus.SUCCESS; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import io.cloudevents.CloudEvent; import io.cloudevents.core.builder.CloudEventBuilder; @@ -69,6 +70,7 @@ import org.springframework.web.bind.annotation.RestController; public class DmiRestStubController { private static final String DEFAULT_TAG = "tagD"; + private static final String DEFAULT_PASSTHROUGH_OPERATION = "read"; private static final String dataOperationEventType = "org.onap.cps.ncmp.events.async1_0_0.DataOperationEvent"; private static final Map<String, String> moduleSetTagPerCmHandleId = new HashMap<>(); private final KafkaTemplate<String, CloudEvent> cloudEventKafkaTemplate; @@ -80,8 +82,10 @@ public class DmiRestStubController { private long moduleReferencesDelayMs; @Value("${delay.module-resources-delay-ms}") private long moduleResourcesDelayMs; - @Value("${delay.data-for-cm-handle-delay-ms}") - private long dataForCmHandleDelayMs; + @Value("${delay.read-data-for-cm-handle-delay-ms}") + private long readDataForCmHandleDelayMs; + @Value("${delay.write-data-for-cm-handle-delay-ms}") + private long writeDataForCmHandleDelayMs; /** * This code defines a REST API endpoint for adding new the module set tag mapping. The endpoint receives the @@ -208,7 +212,12 @@ public class DmiRestStubController { @RequestHeader(value = "Authorization", required = false) final String authorization, @RequestBody final String requestBody) { log.info("DMI AUTH HEADER: {}", authorization); - delay(dataForCmHandleDelayMs); + final String passthroughOperationType = getPassthroughOperationType(requestBody); + if (passthroughOperationType.equals("read")) { + delay(readDataForCmHandleDelayMs); + } else { + delay(writeDataForCmHandleDelayMs); + } log.info("Logging request body {}", requestBody); final String sampleJson = ResourceFileReaderUtil.getResourceFileContent(applicationContext.getResource( @@ -229,7 +238,7 @@ public class DmiRestStubController { @RequestParam(value = "topic") final String topic, @RequestParam(value = "requestId") final String requestId, @RequestBody final DmiDataOperationRequest dmiDataOperationRequest) { - delay(dataForCmHandleDelayMs); + delay(writeDataForCmHandleDelayMs); try { log.info("Request received from the NCMP to DMI Plugin: {}", objectMapper.writeValueAsString(dmiDataOperationRequest)); @@ -312,6 +321,16 @@ public class DmiRestStubController { return ResourceFileReaderUtil.getResourceFileContent(moduleResponseResource); } + private String getPassthroughOperationType(final String requestBody) { + try { + final JsonNode rootNode = objectMapper.readTree(requestBody); + return rootNode.path("operation").asText(); + } catch (final JsonProcessingException jsonProcessingException) { + log.error("Invalid JSON format. cause : {}", jsonProcessingException.getMessage()); + } + return DEFAULT_PASSTHROUGH_OPERATION; + } + private void delay(final long milliseconds) { try { Thread.sleep(milliseconds); diff --git a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/application.yml b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/application.yml index b78a5b2db5..e1e33542d2 100644 --- a/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/application.yml +++ b/dmi-plugin-demo-and-csit-stub/dmi-plugin-demo-and-csit-stub-service/src/main/resources/application.yml @@ -53,7 +53,8 @@ app: 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} + read-data-for-cm-handle-delay-ms: ${READ_DATA_FOR_CM_HANDLE_DELAY_MS:300} + write-data-for-cm-handle-delay-ms: ${WRITE_DATA_FOR_CM_HANDLE_DELAY_MS:670} logging: level: diff --git a/docker-compose/docker-compose.yml b/docker-compose/docker-compose.yml index 2ecd456fc5..86afe78926 100644 --- a/docker-compose/docker-compose.yml +++ b/docker-compose/docker-compose.yml @@ -137,7 +137,8 @@ services: NCMP_ASYNC_M2M_TOPIC: ncmp-async-m2m MODULE_REFERENCES_DELAY_MS: 100 MODULE_RESOURCES_DELAY_MS: 1000 - DATA_FOR_CM_HANDLE_DELAY_MS: 2500 + READ_DATA_FOR_CM_HANDLE_DELAY_MS: 300 + WRITE_DATA_FOR_CM_HANDLE_DELAY_MS: 670 restart: unless-stopped profiles: - dmi-stub |