Add moduleSetTag to the request towards dmi plugin 39/137639/7
authorleventecsanyi <levente.csanyi@est.tech>
Tue, 2 Apr 2024 12:47:31 +0000 (14:47 +0200)
committerleventecsanyi <levente.csanyi@est.tech>
Thu, 4 Apr 2024 08:30:09 +0000 (10:30 +0200)
    - mapping module set tag to DmiRequest

Issue-ID: CPS-2030
Change-Id: I487e48baf98919d3ff5e25d2428a065dd3a30335
Signed-off-by: leventecsanyi <levente.csanyi@est.tech>
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiModelOperations.java
cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operations/DmiRequestBody.java
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operations/DmiModelOperationsSpec.groovy
cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operations/DmiOperationsBaseSpec.groovy
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 f99fe86..3a281d7 100644 (file)
@@ -67,7 +67,8 @@ public class DmiModelOperations extends DmiOperations {
      * @return module references
      */
     public List<ModuleReference> getModuleReferences(final YangModelCmHandle yangModelCmHandle) {
-        final DmiRequestBody dmiRequestBody = DmiRequestBody.builder().build();
+        final DmiRequestBody dmiRequestBody = DmiRequestBody.builder()
+                .moduleSetTag(yangModelCmHandle.getModuleSetTag()).build();
         dmiRequestBody.asDmiProperties(yangModelCmHandle.getDmiProperties());
         final ResponseEntity<Object> dmiFetchModulesResponseEntity = getResourceFromDmiWithJsonData(
             yangModelCmHandle.resolveDmiServiceName(MODEL),
index 6613d3c..f1032f8 100644 (file)
@@ -33,7 +33,7 @@ import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
 @JsonInclude(JsonInclude.Include.NON_NULL)
 @Getter
 @Builder
-@JsonPropertyOrder({"operation", "dataType", "data", "cmHandleProperties", "requestId"})
+@JsonPropertyOrder({"operation", "dataType", "data", "cmHandleProperties", "requestId", "moduleSetTag"})
 public class DmiRequestBody {
 
     @JsonProperty("operation")
@@ -43,6 +43,7 @@ public class DmiRequestBody {
     @JsonProperty("cmHandleProperties")
     private Map<String, String> dmiProperties;
     private String requestId;
+    private String moduleSetTag;
 
     /**
      * Set DMI Properties by converting a list of YangModelCmHandle.Property objects.
index 56485fb..e99e8a3 100644 (file)
@@ -58,7 +58,7 @@ class DmiModelOperationsSpec extends DmiOperationsBaseSpec {
             def moduleReferencesAsLisOfMaps = [[moduleName: 'mod1', revision: 'A'], [moduleName: 'mod2', revision: 'X']]
             def expectedUrl = "${dmiServiceName}/dmi/v1/ch/${cmHandleId}/modules"
             def responseFromDmi = new ResponseEntity([schemas: moduleReferencesAsLisOfMaps], HttpStatus.OK)
-            mockDmiRestClient.postOperationWithJsonData(expectedUrl, '{"cmHandleProperties":{}}', READ, NO_AUTH_HEADER)
+            mockDmiRestClient.postOperationWithJsonData(expectedUrl, '{"cmHandleProperties":{},"moduleSetTag":"tag1"}', READ, NO_AUTH_HEADER)
                     >> responseFromDmi
         when: 'get module references is called'
             def result = objectUnderTest.getModuleReferences(yangModelCmHandle)
@@ -91,7 +91,7 @@ class DmiModelOperationsSpec extends DmiOperationsBaseSpec {
         and: 'a positive response from DMI service when it is called with tha expected parameters'
             def responseFromDmi = new ResponseEntity<String>(HttpStatus.OK)
             mockDmiRestClient.postOperationWithJsonData("${dmiServiceName}/dmi/v1/ch/${cmHandleId}/modules",
-                    '{"cmHandleProperties":' + expectedAdditionalPropertiesInRequest + '}', READ, NO_AUTH_HEADER) >> responseFromDmi
+                    '{"cmHandleProperties":' + expectedAdditionalPropertiesInRequest + ',"moduleSetTag":"tag1"}', READ, NO_AUTH_HEADER) >> responseFromDmi
         when: 'a get module references is called'
             def result = objectUnderTest.getModuleReferences(yangModelCmHandle)
         then: 'the result is the response from DMI service'
index cc64255..b7af502 100644 (file)
@@ -74,5 +74,6 @@ abstract class DmiOperationsBaseSpec extends Specification {
         yangModelCmHandle.id = cmHandleId
         yangModelCmHandle.compositeState = new CompositeState()
         yangModelCmHandle.compositeState.cmHandleState = CmHandleState.READY
+        yangModelCmHandle.moduleSetTag = 'tag1'
     }
 }
index a97cdc8..f154be6 100644 (file)
@@ -156,6 +156,12 @@ public class DmiRestStubController {
     public ResponseEntity<String> getModuleReferences(@PathVariable("cmHandleId") final String cmHandleId,
                                                       @RequestBody final Object moduleReferencesRequest) {
         delay(moduleReferencesDelayMs);
+        try {
+            log.info("Incoming DMI request body: {}",
+                    objectMapper.writeValueAsString(moduleReferencesRequest));
+        } catch (final JsonProcessingException jsonProcessingException) {
+            log.info("Unable to parse dmi data operation request to json string");
+        }
         final String moduleResponseContent = getModuleResourceResponse(cmHandleId,
                 "ModuleResponse.json");
         log.info("cm handle: {} requested for modules", cmHandleId);