- public void createResourceDataPassThroughRunningForCmHandle(final @NotNull String cmHandle,
- final @NotNull String resourceIdentifier,
- final @NotNull Object requestBody,
- final String contentType) {
- final var cmHandleDataNode = fetchDataNodeFromDmiRegistryForCmHandle(cmHandle);
- final var dmiServiceName = String.valueOf(cmHandleDataNode.getLeaves().get(NCMP_DMI_SERVICE_NAME));
- final Collection<DataNode> cmHandlePropertiesList = cmHandleDataNode.getChildDataNodes();
- final Map<String, String> cmHandlePropertiesMap = getCmHandlePropertiesAsMap(cmHandlePropertiesList);
- final var dmiRequestBodyObject = GenericRequestBody.builder()
- .operation(GenericRequestBody.OperationEnum.CREATE)
- .dataType(contentType)
- .data(requestBody)
- .cmHandleProperties(cmHandlePropertiesMap)
- .build();
- final var dmiRequestBody = prepareOperationBody(dmiRequestBodyObject);
- final ResponseEntity<Void> responseEntity = dmiOperations
- .createResourceDataPassThroughRunningFromDmi(dmiServiceName,
- cmHandle,
- resourceIdentifier,
- dmiRequestBody);
- handleResponseForPost(responseEntity);
- }
-
- private DataNode fetchDataNodeFromDmiRegistryForCmHandle(final String cmHandle) {
- final String xpathForDmiRegistryToFetchCmHandle = "/dmi-registry/cm-handles[@id='" + cmHandle + "']";
- final var dataNode = cpsDataService.getDataNode(NCMP_DATASPACE_NAME,
- NCMP_DMI_REGISTRY_ANCHOR,
- xpathForDmiRegistryToFetchCmHandle,
- FetchDescendantsOption.INCLUDE_ALL_DESCENDANTS);
- return dataNode;
- }
-
- private String prepareOperationBody(final GenericRequestBody requestBodyObject) {
- try {
- return objectMapper.writeValueAsString(requestBodyObject);
- } catch (final JsonProcessingException e) {
- log.error("Parsing error occurred while converting Object to JSON.");
- throw new NcmpException("Parsing error occurred while converting given object to JSON.",
- e.getMessage());
- }