- @Override
- public Object getResourceDataOperationalFoCmHandle(final String cmHandle,
- final String resourceIdentifier,
- final String acceptParam,
- final String fieldsQueryParam,
- final Integer depthQueryParam) {
-
- final DataNode dataNode = fetchDataNodeFromDmiRegistryForCmHandle(cmHandle);
- final String dmiServiceName = String.valueOf(dataNode.getLeaves().get("dmi-service-name"));
- final Collection<DataNode> additionalPropsList = dataNode.getChildDataNodes();
- final String jsonBody = prepareOperationBody(GenericRequestBody.OperationEnum.READ, additionalPropsList);
- final ResponseEntity<Object> response = dmiOperations.getResouceDataFromDmi(dmiServiceName,
- cmHandle,
- resourceIdentifier,
- fieldsQueryParam,
- depthQueryParam,
- acceptParam,
- jsonBody);
- return handleResponse(response);
- }
-
- 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.OperationEnum operation,
- final Collection<DataNode> additionalPropertyList) {
- final GenericRequestBody requestBody = new GenericRequestBody();
- final Map<String, String> additionalPropertyMap = getAdditionalPropertiesMap(additionalPropertyList);
- requestBody.setOperation(GenericRequestBody.OperationEnum.READ);
- requestBody.setCmHandleProperties(additionalPropertyMap);