/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2021 Nordix Foundation
+ * Copyright (C) 2021-2022 Nordix Foundation
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
import static org.onap.cps.ncmp.api.impl.operations.DmiRequestBody.OperationEnum.READ;
import static org.onap.cps.ncmp.api.impl.operations.RequiredDmiService.DATA;
-import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.cps.ncmp.api.impl.client.DmiRestClient;
import org.onap.cps.ncmp.api.impl.config.NcmpConfiguration;
-import org.onap.cps.ncmp.api.models.PersistenceCmHandle;
+import org.onap.cps.ncmp.api.impl.yangmodels.YangModelCmHandle;
+import org.onap.cps.utils.JsonObjectMapper;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
*
* @param dmiRestClient {@code DmiRestClient}
*/
- public DmiDataOperations(final PersistenceCmHandleRetriever cmHandlePropertiesRetriever,
- final ObjectMapper objectMapper,
+ public DmiDataOperations(final YangModelCmHandleRetriever cmHandlePropertiesRetriever,
+ final JsonObjectMapper jsonObjectMapper,
final NcmpConfiguration.DmiProperties dmiProperties,
final DmiRestClient dmiRestClient) {
- super(cmHandlePropertiesRetriever, objectMapper, dmiProperties, dmiRestClient);
+ super(cmHandlePropertiesRetriever, jsonObjectMapper, dmiProperties, dmiRestClient);
}
/**
* This method fetches the resource data from operational data store for given cm handle
* identifier on given resource using dmi client.
*
- * @param cmHandle network resource identifier
+ * @param cmHandleId network resource identifier
* @param resourceId resource identifier
* @param optionsParamInQuery options query
* @param acceptParamInHeader accept parameter
* @param dataStore data store enum
* @return {@code ResponseEntity} response entity
*/
- public ResponseEntity<Object> getResourceDataFromDmi(final String cmHandle,
+ public ResponseEntity<Object> getResourceDataFromDmi(final String cmHandleId,
final String resourceId,
final String optionsParamInQuery,
final String acceptParamInHeader,
final DataStoreEnum dataStore) {
- final PersistenceCmHandle persistenceCmHandle =
- cmHandlePropertiesRetriever.retrieveCmHandleDmiServiceNameAndProperties(cmHandle);
+ final YangModelCmHandle yangModelCmHandle =
+ yangModelCmHandleRetriever.getDmiServiceNamesAndProperties(cmHandleId);
final DmiRequestBody dmiRequestBody = DmiRequestBody.builder()
.operation(READ)
.build();
- dmiRequestBody.asCmHandleProperties(persistenceCmHandle.getAdditionalProperties());
- final String jsonBody = getDmiRequestBodyAsString(dmiRequestBody);
+ dmiRequestBody.asDmiProperties(yangModelCmHandle.getDmiProperties());
+ final String jsonBody = jsonObjectMapper.asJsonString(dmiRequestBody);
final var dmiResourceDataUrl = getDmiDatastoreUrlWithOptions(
- persistenceCmHandle.resolveDmiServiceName(DATA), cmHandle, resourceId,
+ yangModelCmHandle.resolveDmiServiceName(DATA), cmHandleId, resourceId,
optionsParamInQuery, dataStore);
final var httpHeaders = prepareHeader(acceptParamInHeader);
- return dmiRestClient.putOperationWithJsonData(dmiResourceDataUrl, jsonBody, httpHeaders);
+ return dmiRestClient.postOperationWithJsonData(dmiResourceDataUrl, jsonBody, httpHeaders);
}
/**
* This method creates the resource data from pass-through running data store for given cm handle
* identifier on given resource using dmi client.
*
- * @param cmHandle network resource identifier
+ * @param cmHandleId network resource identifier
* @param resourceId resource identifier
* @param operation operation enum
* @param requestData the request data
* @param dataType data type
* @return {@code ResponseEntity} response entity
*/
- public ResponseEntity<String> writeResourceDataPassThroughRunningFromDmi(final String cmHandle,
+ public ResponseEntity<Object> writeResourceDataPassThroughRunningFromDmi(final String cmHandleId,
final String resourceId,
final OperationEnum operation,
final String requestData,
final String dataType) {
- final PersistenceCmHandle persistenceCmHandle =
- cmHandlePropertiesRetriever.retrieveCmHandleDmiServiceNameAndProperties(cmHandle);
+ final YangModelCmHandle yangModelCmHandle =
+ yangModelCmHandleRetriever.getDmiServiceNamesAndProperties(cmHandleId);
final DmiRequestBody dmiRequestBody = DmiRequestBody.builder()
.operation(operation)
.data(requestData)
.dataType(dataType)
.build();
- dmiRequestBody.asCmHandleProperties(persistenceCmHandle.getAdditionalProperties());
- final String jsonBody = getDmiRequestBodyAsString(dmiRequestBody);
+ dmiRequestBody.asDmiProperties(yangModelCmHandle.getDmiProperties());
+ final String jsonBody = jsonObjectMapper.asJsonString(dmiRequestBody);
final String dmiUrl =
- getResourceInDataStoreUrl(persistenceCmHandle.resolveDmiServiceName(DATA),
- cmHandle, resourceId, PASSTHROUGH_RUNNING);
+ getResourceInDataStoreUrl(yangModelCmHandle.resolveDmiServiceName(DATA),
+ cmHandleId, resourceId, PASSTHROUGH_RUNNING);
return dmiRestClient.postOperationWithJsonData(dmiUrl, jsonBody, new HttpHeaders());
}
private String getResourceInDataStoreUrl(final String dmiServiceName,
- final String cmHandle,
+ final String cmHandleId,
final String resourceId,
final DataStoreEnum dataStoreEnum) {
- return getCmHandleUrl(dmiServiceName, cmHandle)
+ return getCmHandleUrl(dmiServiceName, cmHandleId)
+ "data"
+ URL_SEPARATOR
+ "ds"
}
private String getDmiDatastoreUrlWithOptions(final String dmiServiceName,
- final String cmHandle,
+ final String cmHandleId,
final String resourceId,
final String optionsParamInQuery,
final DataStoreEnum dataStoreEnum) {
final String resourceInDataStoreUrl = getResourceInDataStoreUrl(dmiServiceName,
- cmHandle, resourceId, dataStoreEnum);
+ cmHandleId, resourceId, dataStoreEnum);
return appendOptionsQuery(resourceInDataStoreUrl, optionsParamInQuery);
}