summaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src
diff options
context:
space:
mode:
authortragait <rahul.tyagi@est.tech>2021-10-06 11:04:18 +0100
committertragait <rahul.tyagi@est.tech>2021-10-07 09:58:01 +0100
commitabdff1bf331cc582d017cce9888828fa2e8f6260 (patch)
tree5974fdc5780105696988ac3e71a2412355537a03 /cps-ncmp-service/src
parentf3798ee9857edb45243d540606ceac21df1215ab (diff)
fix fields and depth to option query
Issue-ID: CPS-678 Signed-off-by: tragait <rahul.tyagi@est.tech> Change-Id: I8934bd7708ae51dce77b8684081a71ca57bfa3a4
Diffstat (limited to 'cps-ncmp-service/src')
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java20
-rwxr-xr-xcps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java20
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operation/DmiOperations.java63
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy30
-rw-r--r--cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operation/DmiOperationsSpec.groovy10
5 files changed, 55 insertions, 88 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java
index 2f91ed30e1..cb2f78206c 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/NetworkCmProxyDataService.java
@@ -114,16 +114,14 @@ public interface NetworkCmProxyDataService {
*
* @param cmHandle cm handle
* @param resourceIdentifier resource identifier
- * @param accept accept param
- * @param fields fields query
- * @param depth depth query
+ * @param acceptParamInHeader accept param
+ * @param optionsParamInQuery options query
* @return {@code Object} resource data
*/
Object getResourceDataOperationalForCmHandle(@NotNull String cmHandle,
@NotNull String resourceIdentifier,
- String accept,
- String fields,
- Integer depth);
+ String acceptParamInHeader,
+ String optionsParamInQuery);
/**
* Get resource data for data store pass-through running
@@ -131,16 +129,14 @@ public interface NetworkCmProxyDataService {
*
* @param cmHandle cm handle
* @param resourceIdentifier resource identifier
- * @param acceptParam accept param
- * @param fields fields query
- * @param depth depth query
+ * @param acceptParamInHeader accept param
+ * @param optionsParamInQuery options query
* @return {@code Object} resource data
*/
Object getResourceDataPassThroughRunningForCmHandle(@NotNull String cmHandle,
@NotNull String resourceIdentifier,
- String acceptParam,
- String fields,
- Integer depth);
+ String acceptParamInHeader,
+ String optionsParamInQuery);
/**
* Create resource data for data store pass-through running
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java
index 291b0bf330..889d38efb5 100755
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImpl.java
@@ -169,9 +169,8 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
@Override
public Object getResourceDataOperationalForCmHandle(final @NotNull String cmHandle,
final @NotNull String resourceIdentifier,
- final String acceptParam,
- final String fieldsQueryParam,
- final Integer depthQueryParam) {
+ final String acceptParamInHeader,
+ final String optionsParamInQuery) {
final DataNode cmHandleDataNode = fetchDataNodeFromDmiRegistryForCmHandle(cmHandle);
final String dmiServiceName = String.valueOf(cmHandleDataNode.getLeaves().get(NCMP_DMI_SERVICE_NAME));
@@ -179,9 +178,8 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
final ResponseEntity<Object> response = dmiOperations.getResourceDataOperationalFromDmi(dmiServiceName,
cmHandle,
resourceIdentifier,
- fieldsQueryParam,
- depthQueryParam,
- acceptParam,
+ optionsParamInQuery,
+ acceptParamInHeader,
dmiRequestBody);
return handleResponse(response);
}
@@ -189,18 +187,16 @@ public class NetworkCmProxyDataServiceImpl implements NetworkCmProxyDataService
@Override
public Object getResourceDataPassThroughRunningForCmHandle(final @NotNull String cmHandle,
final @NotNull String resourceIdentifier,
- final String acceptParam,
- final String fields,
- final Integer depth) {
+ final String acceptParamInHeader,
+ final String optionsParamInQuery) {
final DataNode cmHandleDataNode = fetchDataNodeFromDmiRegistryForCmHandle(cmHandle);
final String dmiServiceName = String.valueOf(cmHandleDataNode.getLeaves().get(NCMP_DMI_SERVICE_NAME));
final String dmiRequestBody = getGenericRequestBody(cmHandleDataNode);
final ResponseEntity<Object> response = dmiOperations.getResourceDataPassThroughRunningFromDmi(dmiServiceName,
cmHandle,
resourceIdentifier,
- fields,
- depth,
- acceptParam,
+ optionsParamInQuery,
+ acceptParamInHeader,
dmiRequestBody);
return handleResponse(response);
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operation/DmiOperations.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operation/DmiOperations.java
index c295e0328e..363b0ef9b2 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operation/DmiOperations.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/impl/operation/DmiOperations.java
@@ -53,6 +53,7 @@ public class DmiOperations {
private static final String DMI_CM_HANDLE_DATASTORE_PATH = DMI_CM_HANDLE_PATH + "/data/ds";
private static final String URL_SEPARATOR = "/";
private static final String RESOURCE_IDENTIFIER = "resourceIdentifier";
+ private static final String OPTIONS_QUERY_KEY = "options";
/**
@@ -104,22 +105,20 @@ public class DmiOperations {
* @param dmiServiceName dmi service name
* @param cmHandle network resource identifier
* @param resourceId resource identifier
- * @param fieldsQuery fields query
- * @param depthQuery depth query
- * @param acceptParam accept parameter
+ * @param optionsParamInQuery options query
+ * @param acceptParamInHeader accept parameter
* @param jsonBody json body for put operation
* @return {@code ResponseEntity} response entity
*/
public ResponseEntity<Object> getResourceDataOperationalFromDmi(final String dmiServiceName,
final String cmHandle,
final String resourceId,
- final String fieldsQuery,
- final Integer depthQuery,
- final String acceptParam,
+ final String optionsParamInQuery,
+ final String acceptParamInHeader,
final String jsonBody) {
final var dmiResourceDataUrl = getDmiDatastoreUrl(dmiServiceName, cmHandle, resourceId,
- fieldsQuery, depthQuery, DataStoreEnum.PASSTHROUGH_OPERATIONAL);
- final var httpHeaders = prepareHeader(acceptParam);
+ optionsParamInQuery, DataStoreEnum.PASSTHROUGH_OPERATIONAL);
+ final var httpHeaders = prepareHeader(acceptParamInHeader);
return dmiRestClient.putOperationWithJsonData(dmiResourceDataUrl, jsonBody, httpHeaders);
}
@@ -130,22 +129,20 @@ public class DmiOperations {
* @param dmiServiceName dmi service name
* @param cmHandle network resource identifier
* @param resourceId resource identifier
- * @param fieldsQuery fields query
- * @param depthQuery depth query
- * @param acceptParam accept parameter
+ * @param optionsParamInQuery fields query
+ * @param acceptParamInHeader accept parameter
* @param jsonBody json body for put operation
* @return {@code ResponseEntity} response entity
*/
public ResponseEntity<Object> getResourceDataPassThroughRunningFromDmi(final String dmiServiceName,
final String cmHandle,
final String resourceId,
- final String fieldsQuery,
- final Integer depthQuery,
- final String acceptParam,
+ final String optionsParamInQuery,
+ final String acceptParamInHeader,
final String jsonBody) {
final var dmiResourceDataUrl = getDmiDatastoreUrl(dmiServiceName, cmHandle, resourceId,
- fieldsQuery, depthQuery, DataStoreEnum.PASSTHROUGH_RUNNING);
- final var httpHeaders = prepareHeader(acceptParam);
+ optionsParamInQuery, DataStoreEnum.PASSTHROUGH_RUNNING);
+ final var httpHeaders = prepareHeader(acceptParamInHeader);
return dmiRestClient.putOperationWithJsonData(dmiResourceDataUrl, jsonBody, httpHeaders);
}
@@ -163,7 +160,7 @@ public class DmiOperations {
final String cmHandle,
final String resourceId,
final String jsonBody) {
- final var stringBuilder = getStringBuilderForPassThroughRunningUrl(dmiServiceName,
+ final var stringBuilder = getStringBuilderForPassThroughUrl(dmiServiceName,
cmHandle, resourceId, DataStoreEnum.PASSTHROUGH_RUNNING);
return dmiRestClient.postOperationWithJsonData(stringBuilder.toString(), jsonBody, new HttpHeaders());
}
@@ -183,20 +180,19 @@ public class DmiOperations {
private String getDmiDatastoreUrl(final String dmiServiceName,
final String cmHandle,
final String resourceId,
- final String fieldsQuery,
- final Integer depthQuery,
+ final String optionsParamInQuery,
final DataStoreEnum dataStoreEnum) {
- final var stringBuilder = getStringBuilderForPassThroughRunningUrl(dmiServiceName,
+ final var stringBuilder = getStringBuilderForPassThroughUrl(dmiServiceName,
cmHandle, resourceId, dataStoreEnum);
- appendFieldsAndDepth(stringBuilder, fieldsQuery, depthQuery);
+ appendOptionsQuery(stringBuilder, optionsParamInQuery);
return stringBuilder.toString();
}
@NotNull
- private StringBuilder getStringBuilderForPassThroughRunningUrl(final String dmiServiceName,
- final String cmHandle,
- final String resourceId,
- final DataStoreEnum dataStoreEnum) {
+ private StringBuilder getStringBuilderForPassThroughUrl(final String dmiServiceName,
+ final String cmHandle,
+ final String resourceId,
+ final DataStoreEnum dataStoreEnum) {
final var stringBuilder = new StringBuilder(dmiServiceName);
stringBuilder.append(DMI_API_PATH);
stringBuilder.append(DMI_CM_HANDLE_DATASTORE_PATH.replace("{cmHandle}", cmHandle));
@@ -205,23 +201,14 @@ public class DmiOperations {
return stringBuilder;
}
- private void appendFieldsAndDepth(final StringBuilder stringBuilder,
- final String fieldsQuery,
- final Integer depthQuery) {
- final var doesFieldExists = (fieldsQuery != null && !fieldsQuery.isEmpty());
- if (doesFieldExists) {
- stringBuilder.append("&").append("fields=").append(fieldsQuery);
- }
- if (depthQuery != null) {
- stringBuilder.append("&").append("depth=").append(depthQuery);
- }
+ private void appendOptionsQuery(final StringBuilder stringBuilder,
+ final String optionsParamInQuery) {
+ stringBuilder.append("&").append(OPTIONS_QUERY_KEY).append("=").append(optionsParamInQuery);
}
private HttpHeaders prepareHeader(final String acceptParam) {
final var httpHeaders = new HttpHeaders();
- if (acceptParam != null && !acceptParam.isEmpty()) {
- httpHeaders.set(HttpHeaders.ACCEPT, acceptParam);
- }
+ httpHeaders.set(HttpHeaders.ACCEPT, acceptParam);
return httpHeaders;
}
}
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy
index 2b376e97bf..51325015ba 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/NetworkCmProxyDataServiceImplSpec.groovy
@@ -231,16 +231,14 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
mockDmiOperations.getResourceDataOperationalFromDmi('testDmiService',
'testCmHandle',
'testResourceId',
- 'testFieldQuery',
- 5,
+ '(a=1,b=2)',
'testAcceptParam',
'{"operation":"read","cmHandleProperties":{"testName":"testValue"}}') >> new ResponseEntity<>('result-json', HttpStatus.OK)
when: 'get resource data is called'
def response = objectUnderTest.getResourceDataOperationalForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'dmi returns ok response'
response == 'result-json'
}
@@ -259,8 +257,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
def response = objectUnderTest.getResourceDataOperationalForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'exception is thrown with the expected details'
def exceptionThrown = thrown(NcmpException.class)
exceptionThrown.details == 'testException'
@@ -276,8 +273,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
mockDmiOperations.getResourceDataOperationalFromDmi('testDmiService',
'testCmHandle',
'testResourceId',
- 'testFieldQuery',
- 5,
+ '(a=1,b=2)',
'testAcceptParam',
'{"operation":"read","cmHandleProperties":{"testName":"testValue"}}')
>> new ResponseEntity<>('NOK-json', HttpStatus.NOT_FOUND)
@@ -285,8 +281,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
def response = objectUnderTest.getResourceDataOperationalForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'exception is thrown'
def exceptionThrown = thrown(NcmpException.class)
and: 'details contains the original response'
@@ -303,16 +298,14 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
mockDmiOperations.getResourceDataPassThroughRunningFromDmi('testDmiService',
'testCmHandle',
'testResourceId',
- 'testFieldQuery',
- 5,
+ '(a=1,b=2)',
'testAcceptParam',
'{"operation":"read","cmHandleProperties":{"testName":"testValue"}}') >> new ResponseEntity<>('{result-json}', HttpStatus.OK)
when: 'get resource data is called'
def response = objectUnderTest.getResourceDataPassThroughRunningForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'get resource data returns expected response'
response == '{result-json}'
}
@@ -331,8 +324,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
def response = objectUnderTest.getResourceDataPassThroughRunningForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'exception is thrown with the expected details'
def exceptionThrown = thrown(NcmpException.class)
exceptionThrown.details == 'testException'
@@ -348,8 +340,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
mockDmiOperations.getResourceDataPassThroughRunningFromDmi('testDmiService',
'testCmHandle',
'testResourceId',
- 'testFieldQuery',
- 5,
+ '(a=1,b=2)',
'testAcceptParam',
'{"operation":"read","cmHandleProperties":{"testName":"testValue"}}')
>> new ResponseEntity<>('NOK-json', HttpStatus.NOT_FOUND)
@@ -357,8 +348,7 @@ class NetworkCmProxyDataServiceImplSpec extends Specification {
def response = objectUnderTest.getResourceDataPassThroughRunningForCmHandle('testCmHandle',
'testResourceId',
'testAcceptParam',
- 'testFieldQuery',
- 5)
+ '(a=1,b=2)')
then: 'exception is thrown'
def exceptionThrown = thrown(NcmpException.class)
and: 'details contains the original response'
diff --git a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operation/DmiOperationsSpec.groovy b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operation/DmiOperationsSpec.groovy
index 8af778106a..8e0fb76a56 100644
--- a/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operation/DmiOperationsSpec.groovy
+++ b/cps-ncmp-service/src/test/groovy/org/onap/cps/ncmp/api/impl/operation/DmiOperationsSpec.groovy
@@ -42,13 +42,12 @@ class DmiOperationsSpec extends Specification {
def 'call get resource data for pass-through:operational datastore from DMI.'() {
given: 'expected url'
def expectedUrl = 'testDmiBasePath/dmi/v1/ch/testCmhandle/data/ds' +
- '/ncmp-datastore:passthrough-operational?resourceIdentifier=parent/child&fields=testFieldsQuery&depth=10'
+ '/ncmp-datastore:passthrough-operational?resourceIdentifier=parent/child&options=(a=1,b=2)'
when: 'get resource data is called to DMI'
objectUnderTest.getResourceDataOperationalFromDmi('testDmiBasePath',
'testCmhandle',
'parent/child',
- 'testFieldsQuery',
- 10,
+ '(a=1,b=2)',
'testAcceptJson',
'testJsonbody')
then: 'the put operation is executed with the correct URL'
@@ -57,13 +56,12 @@ class DmiOperationsSpec extends Specification {
def 'call get resource data for pass-through:running datastore from DMI.'() {
given: 'expected url'
def expectedUrl = 'testDmiBasePath/dmi/v1/ch/testCmhandle/data/ds' +
- '/ncmp-datastore:passthrough-running?resourceIdentifier=parent/child&fields=testFieldsQuery&depth=10'
+ '/ncmp-datastore:passthrough-running?resourceIdentifier=parent/child&options=(a=1,b=2)'
when: 'get resource data is called to DMI'
objectUnderTest.getResourceDataPassThroughRunningFromDmi('testDmiBasePath',
'testCmhandle',
'parent/child',
- 'testFieldsQuery',
- 10,
+ '(a=1,b=2)',
'testAcceptJson',
'testJsonbody')
then: 'the put operation is executed with the correct URL'