summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java')
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java39
1 files changed, 37 insertions, 2 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java
index 32c8526c..94bd97d7 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java
@@ -39,6 +39,10 @@ import org.onap.cps.ncmp.dmi.exception.ResourceDataNotFound;
import org.onap.cps.ncmp.dmi.model.CmHandleOperation;
import org.onap.cps.ncmp.dmi.model.CreatedCmHandle;
import org.onap.cps.ncmp.dmi.model.ModuleReference;
+import org.onap.cps.ncmp.dmi.model.ModuleSchemaProperties;
+import org.onap.cps.ncmp.dmi.model.ModuleSchemas;
+import org.onap.cps.ncmp.dmi.model.ModuleSet;
+import org.onap.cps.ncmp.dmi.model.ModuleSetSchemas;
import org.onap.cps.ncmp.dmi.service.client.NcmpRestClient;
import org.onap.cps.ncmp.dmi.service.operation.SdncOperations;
import org.springframework.http.HttpStatus;
@@ -73,14 +77,15 @@ public class DmiServiceImpl implements DmiService {
}
@Override
- public String getModulesForCmHandle(final String cmHandle) throws DmiException {
+ public ModuleSet getModulesForCmHandle(final String cmHandle) throws DmiException {
final ResponseEntity<String> responseEntity = sdncOperations.getModulesFromNode(cmHandle);
if (responseEntity.getStatusCode() == HttpStatus.OK) {
final String responseBody = responseEntity.getBody();
if (StringUtils.isEmpty(responseBody)) {
throw new ModulesNotFoundException(cmHandle, "SDNC returned no modules for given cm-handle.");
}
- return responseBody;
+ final ModuleSet moduleSet = createModuleSchema(responseBody);
+ return moduleSet;
} else {
throw new DmiException("SDNC is not able to process request.",
"response code : " + responseEntity.getStatusCode() + " message : " + responseEntity.getBody());
@@ -129,6 +134,36 @@ public class DmiServiceImpl implements DmiService {
}
}
+ private ModuleSet createModuleSchema(final String responseBody) {
+ final var moduleSchemas = convertModulesToNodeSchema(responseBody);
+ final List<ModuleSetSchemas> moduleSetSchemas = new ArrayList<>();
+ for (final ModuleSchemaProperties schemaProperties : moduleSchemas.getSchemas().getSchema()) {
+ moduleSetSchemas.add(convertModulesToModuleSchemas(schemaProperties));
+ }
+ final var moduleSet = new ModuleSet();
+ moduleSet.setSchemas(moduleSetSchemas);
+ return moduleSet;
+ }
+
+ private ModuleSetSchemas convertModulesToModuleSchemas(final ModuleSchemaProperties moduleSchemaProperties) {
+ final var moduleSetSchemas = new ModuleSetSchemas();
+ moduleSetSchemas.setModuleName(moduleSchemaProperties.getIdentifier());
+ moduleSetSchemas.setNamespace(moduleSchemaProperties.getNamespace());
+ moduleSetSchemas.setRevision(moduleSchemaProperties.getVersion());
+ return moduleSetSchemas;
+ }
+
+ private ModuleSchemas convertModulesToNodeSchema(final String modulesListAsJson) {
+ try {
+ return objectMapper.readValue(modulesListAsJson, ModuleSchemas.class);
+ } catch (final JsonProcessingException e) {
+ log.error("JSON exception occurred when converting the following modules to node schema "
+ + "{}", modulesListAsJson);
+ throw new DmiException("Unable to process JSON.",
+ "JSON exception occurred when mapping modules.", e);
+ }
+ }
+
@Override
public Object getResourceDataOperationalForCmHandle(final @NotNull String cmHandle,
final @NotNull String resourceIdentifier,