summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap
diff options
context:
space:
mode:
authorniamhcore <niamh.core@est.tech>2021-08-11 16:13:53 +0100
committerniamhcore <niamh.core@est.tech>2021-08-18 10:34:58 +0100
commit577efb09a39282c608b53a3099b7edc95954f9c2 (patch)
treeefc72509fd6b46c296446ef3958db2b594979751 /src/main/java/org/onap
parente398be5923a47650b109512c795244cdc2b5eb10 (diff)
Transform module information from NetConf node to Generic format for NCMP
Issue-ID: CPS-531 Signed-off-by: niamhcore <niamh.core@est.tech> Change-Id: I918be4db5066d92b23e25fc7fbc22d4535fafc8c
Diffstat (limited to 'src/main/java/org/onap')
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaList.java36
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaProperties.java40
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemas.java34
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java11
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/service/DmiService.java3
-rw-r--r--src/main/java/org/onap/cps/ncmp/dmi/service/DmiServiceImpl.java39
6 files changed, 155 insertions, 8 deletions
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaList.java b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaList.java
new file mode 100644
index 00000000..1e7dcb0a
--- /dev/null
+++ b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaList.java
@@ -0,0 +1,36 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.model;
+
+import java.util.List;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * ModuleSchemaList.
+ */
+@Getter
+@Setter
+public class ModuleSchemaList {
+
+ private List<ModuleSchemaProperties> schema;
+
+}
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaProperties.java b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaProperties.java
new file mode 100644
index 00000000..507758ad
--- /dev/null
+++ b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemaProperties.java
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.model;
+
+import java.util.List;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * ModuleSchemaProperties.
+ */
+@Getter
+@Setter
+public class ModuleSchemaProperties {
+
+ private String identifier;
+ private String version;
+ private String format;
+ private String namespace;
+ private List<String> location;
+
+}
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemas.java b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemas.java
new file mode 100644
index 00000000..1794dedf
--- /dev/null
+++ b/src/main/java/org/onap/cps/ncmp/dmi/model/ModuleSchemas.java
@@ -0,0 +1,34 @@
+/*
+ * ============LICENSE_START=======================================================
+ * Copyright (C) 2021 Nordix Foundation
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.cps.ncmp.dmi.model;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * ModuleSchemas.
+ */
+@Getter
+@Setter
+public class ModuleSchemas {
+
+ private ModuleSchemaList schemas;
+}
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
index 969e08d3..3d49b78e 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/rest/controller/DmiRestController.java
@@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j;
import org.onap.cps.ncmp.dmi.model.CmHandles;
import org.onap.cps.ncmp.dmi.model.ModuleReference;
import org.onap.cps.ncmp.dmi.model.ModuleRequestParent;
+import org.onap.cps.ncmp.dmi.model.ModuleSet;
import org.onap.cps.ncmp.dmi.model.OperationalRequest;
import org.onap.cps.ncmp.dmi.rest.api.DmiPluginApi;
import org.onap.cps.ncmp.dmi.rest.api.DmiPluginInternalApi;
@@ -52,10 +53,9 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
}
@Override
- public ResponseEntity<String> getModulesForCmHandle(final String cmHandle) {
-
- final String modulesListAsJson = dmiService.getModulesForCmHandle(cmHandle);
- return new ResponseEntity<>(modulesListAsJson, HttpStatus.OK);
+ public ResponseEntity<ModuleSet> getModulesForCmHandle(final String cmHandle) {
+ final var moduleSet = dmiService.getModulesForCmHandle(cmHandle);
+ return new ResponseEntity<ModuleSet>(moduleSet, HttpStatus.OK);
}
@Override
@@ -118,6 +118,7 @@ public class DmiRestController implements DmiPluginApi, DmiPluginInternalApi {
private List<ModuleReference> convertRestObjectToJavaApiObject(final ModuleRequestParent moduleRequestParent) {
return objectMapper
- .convertValue(moduleRequestParent.getData().getModules(), new TypeReference<List<ModuleReference>>() {});
+ .convertValue(moduleRequestParent.getData().getModules(), new TypeReference<List<ModuleReference>>() {
+ });
}
} \ No newline at end of file
diff --git a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiService.java b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiService.java
index 528eb641..a7c94349 100644
--- a/src/main/java/org/onap/cps/ncmp/dmi/service/DmiService.java
+++ b/src/main/java/org/onap/cps/ncmp/dmi/service/DmiService.java
@@ -25,6 +25,7 @@ import java.util.Map;
import javax.validation.constraints.NotNull;
import org.onap.cps.ncmp.dmi.exception.DmiException;
import org.onap.cps.ncmp.dmi.model.ModuleReference;
+import org.onap.cps.ncmp.dmi.model.ModuleSet;
/**
* Interface for handling Dmi plugin Data.
@@ -38,7 +39,7 @@ public interface DmiService {
* @return {@code String} returns all modules
* @throws DmiException can throw dmi exception
*/
- String getModulesForCmHandle(String cmHandle) throws DmiException;
+ ModuleSet getModulesForCmHandle(String cmHandle) throws DmiException;
/**
* This method used to register the given {@code CmHandles}
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,