aboutsummaryrefslogtreecommitdiffstats
path: root/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models
diff options
context:
space:
mode:
authorJosephKeenan <joseph.keenan@est.tech>2021-11-23 12:18:28 +0000
committerJosephKeenan <joseph.keenan@est.tech>2021-11-25 15:40:10 +0000
commit20b4f9cf0b662de4a7665b2a82593ef0205f5e06 (patch)
treeab849ff17b861f246c328e421e8dcfc8ceb9e851 /cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models
parentbc742a1dbe39a3269abab9e62a9d489f460144b0 (diff)
Allow separate registration of DMIDataPlugin and DmiModelPugin
Moved relevant code from NetworkCmProxyDataServiceImp to DmiOperations Split DmiOperations into DMiData... and DMIModelOperations Merged update-operation changes Added tests for error message validation in NetworkCmProxyDataServiceImplSpec Removede @Service from DMIOperations and added @component to DmiDataOperations & DmiModelOperations Verify sync robot test is now hardened Added exitonfailure so robot tests stop after first encountered failed test Issue-ID: CPS-736 Change-Id: I0b40931cc8cd4fc0452328a0a7e0f60e6fc38d0a Signed-off-by: JosephKeenan <joseph.keenan@est.tech> Signed-off-by: ToineSiebelink <toine.siebelink@est.tech> Signed-off-by: DylanB95EST <dylan.byrne@est.tech>
Diffstat (limited to 'cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models')
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/CmHandle.java4
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java46
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/GenericRequestBody.java55
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java58
-rw-r--r--cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandlesList.java26
5 files changed, 131 insertions, 58 deletions
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/CmHandle.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/CmHandle.java
index 84227ed6b..a38442b09 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/CmHandle.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/CmHandle.java
@@ -22,7 +22,9 @@ package org.onap.cps.ncmp.api.models;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.Map;
+import lombok.AllArgsConstructor;
import lombok.Getter;
+import lombok.NoArgsConstructor;
import lombok.Setter;
import org.springframework.validation.annotation.Validated;
@@ -32,6 +34,8 @@ import org.springframework.validation.annotation.Validated;
@Validated
@Getter
@Setter
+@AllArgsConstructor
+@NoArgsConstructor
public class CmHandle {
@JsonProperty("cmHandle")
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java
index f5a0d7954..a604f3448 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/DmiPluginRegistration.java
@@ -18,14 +18,17 @@
* ============LICENSE_END=========================================================
*/
-
package org.onap.cps.ncmp.api.models;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.annotation.JsonSetter;
+import com.fasterxml.jackson.annotation.Nulls;
+import com.google.common.base.Strings;
import java.util.List;
import lombok.Getter;
import lombok.Setter;
+import org.onap.cps.ncmp.api.impl.exception.NcmpException;
/**
* Dmi Registry request object.
@@ -35,12 +38,53 @@ import lombok.Setter;
@JsonInclude(Include.NON_NULL)
public class DmiPluginRegistration {
+ @JsonSetter(nulls = Nulls.AS_EMPTY)
private String dmiPlugin;
+ @JsonSetter(nulls = Nulls.AS_EMPTY)
+ private String dmiDataPlugin;
+
+ @JsonSetter(nulls = Nulls.AS_EMPTY)
+ private String dmiModelPlugin;
+
private List<CmHandle> createdCmHandles;
private List<CmHandle> updatedCmHandles;
private List<String> removedCmHandles;
+ public static final String PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION = "Please supply correct plugin information.";
+
+ /**
+ * Validates plugin service names.
+ *
+ * @throws NcmpException if validation fails.
+ */
+ public void validateDmiPluginRegistration() throws NcmpException {
+ final String combinedServiceName = dmiPlugin;
+ final String dataServiceName = dmiDataPlugin;
+ final String modelsServiceName = dmiModelPlugin;
+
+ String errorMessage = null;
+
+ if (isNullEmptyOrBlank(combinedServiceName)
+ && isNullEmptyOrBlank(dataServiceName)
+ && isNullEmptyOrBlank(modelsServiceName)) {
+ errorMessage = "No DMI plugin service names";
+ }
+
+ if (!isNullEmptyOrBlank(combinedServiceName)
+ && (!isNullEmptyOrBlank(dataServiceName) || !isNullEmptyOrBlank(modelsServiceName))) {
+ errorMessage = "Invalid combination of plugin service names";
+ }
+
+ if (errorMessage != null) {
+ throw new NcmpException(errorMessage, PLEASE_SUPPLY_CORRECT_PLUGIN_INFORMATION);
+ }
+ }
+
+ private static boolean isNullEmptyOrBlank(final String serviceName) {
+ return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank();
+ }
+
}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/GenericRequestBody.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/GenericRequestBody.java
deleted file mode 100644
index 3e1ba4a97..000000000
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/GenericRequestBody.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * ============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.api.models;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import com.fasterxml.jackson.annotation.JsonValue;
-import java.util.Map;
-import lombok.Builder;
-import lombok.Getter;
-
-@JsonInclude(Include.NON_NULL)
-@Getter
-@Builder
-public class GenericRequestBody {
- public enum OperationEnum {
- READ("read"),
- CREATE("create"),
- UPDATE("update");
- private String value;
-
- OperationEnum(final String value) {
- this.value = value;
- }
-
- @Override
- @JsonValue
- public String toString() {
- return String.valueOf(value);
- }
- }
-
- private OperationEnum operation;
- private String dataType;
- private String data;
- private Map<String, String> cmHandleProperties;
-}
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java
index 88d97d25f..8b959e327 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandle.java
@@ -22,13 +22,17 @@
package org.onap.cps.ncmp.api.models;
import com.fasterxml.jackson.annotation.JsonProperty;
+import com.google.common.base.Strings;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
import lombok.AllArgsConstructor;
+import lombok.Data;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
+import org.onap.cps.ncmp.api.impl.operations.RequiredDmiService;
/**
* DmiRegistry.
@@ -43,22 +47,72 @@ public class PersistenceCmHandle {
@JsonProperty("dmi-service-name")
private String dmiServiceName;
+ @JsonProperty("dmi-data-service-name")
+ private String dmiDataServiceName;
+
+ @JsonProperty("dmi-model-service-name")
+ private String dmiModelServiceName;
+
@JsonProperty("additional-properties")
private List<AdditionalProperty> additionalProperties;
/**
+ * Create a persistenceCmHandle.
+ * @param dmiServiceName dmi service name
+ * @param dmiDataServiceName dmi data service name
+ * @param dmiModelServiceName dmi model service name
+ * @param cmHandle the cm handle
+ * @return instance of persistenceCmHandle
+ */
+ public static PersistenceCmHandle toPersistenceCmHandle(final String dmiServiceName,
+ final String dmiDataServiceName,
+ final String dmiModelServiceName,
+ final CmHandle cmHandle) {
+ final PersistenceCmHandle persistenceCmHandle = new PersistenceCmHandle();
+ persistenceCmHandle.setId(cmHandle.getCmHandleID());
+ persistenceCmHandle.setDmiServiceName(dmiServiceName);
+ persistenceCmHandle.setDmiDataServiceName(dmiDataServiceName);
+ persistenceCmHandle.setDmiModelServiceName(dmiModelServiceName);
+ if (cmHandle.getCmHandleProperties() == null) {
+ persistenceCmHandle.asAdditionalProperties(Collections.emptyMap());
+ } else {
+ persistenceCmHandle.asAdditionalProperties(cmHandle.getCmHandleProperties());
+ }
+ return persistenceCmHandle;
+ }
+
+ /**
* Set Additional Properties map, key and value pair.
* @param additionalPropertiesAsMap Map of Additional Properties
*/
- public void setAdditionalProperties(final Map<String, String> additionalPropertiesAsMap) {
+ public void asAdditionalProperties(final Map<String, String> additionalPropertiesAsMap) {
additionalProperties = new ArrayList<>(additionalPropertiesAsMap.size());
for (final Map.Entry<String, String> entry : additionalPropertiesAsMap.entrySet()) {
additionalProperties.add(new AdditionalProperty(entry.getKey(), entry.getValue()));
}
}
+ /**
+ * Resolve a dmi service name.
+ * @param requiredService indicates what typo of service is required
+ * @return dmi service name
+ */
+ public String resolveDmiServiceName(final RequiredDmiService requiredService) {
+ if (isNullEmptyOrBlank(dmiServiceName)) {
+ if (RequiredDmiService.DATA.equals(requiredService)) {
+ return dmiDataServiceName;
+ }
+ return dmiModelServiceName;
+ }
+ return dmiServiceName;
+ }
+
+ private static boolean isNullEmptyOrBlank(final String serviceName) {
+ return Strings.isNullOrEmpty(serviceName) || serviceName.isBlank();
+ }
+
@AllArgsConstructor
- @Getter
+ @Data
public static class AdditionalProperty {
@JsonProperty()
diff --git a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandlesList.java b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandlesList.java
index f35abf60b..d4f6e952d 100644
--- a/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandlesList.java
+++ b/cps-ncmp-service/src/main/java/org/onap/cps/ncmp/api/models/PersistenceCmHandlesList.java
@@ -22,6 +22,7 @@ package org.onap.cps.ncmp.api.models;
import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.ArrayList;
+import java.util.Collection;
import java.util.List;
import lombok.Getter;
@@ -32,6 +33,31 @@ public class PersistenceCmHandlesList {
private List<PersistenceCmHandle> persistenceCmHandles = new ArrayList<>();
/**
+ * Create a PersistenceCmHandleList given all service names and a collection of cmHandles.
+ * @param dmiServiceName the dmi service name
+ * @param dmiDataServiceName the dmi data service name
+ * @param dmiModelServiceName the dmi model service name
+ * @param cmHandles cm handles
+ * @return instance of PersistenceCmHandleList
+ */
+ public static PersistenceCmHandlesList toPersistenceCmHandlesList(final String dmiServiceName,
+ final String dmiDataServiceName,
+ final String dmiModelServiceName,
+ final Collection<CmHandle> cmHandles) {
+ final PersistenceCmHandlesList persistenceCmHandlesList = new PersistenceCmHandlesList();
+ for (final CmHandle cmHandle : cmHandles) {
+ final PersistenceCmHandle persistenceCmHandle =
+ PersistenceCmHandle.toPersistenceCmHandle(
+ dmiServiceName,
+ dmiDataServiceName,
+ dmiModelServiceName,
+ cmHandle);
+ persistenceCmHandlesList.add(persistenceCmHandle);
+ }
+ return persistenceCmHandlesList;
+ }
+
+ /**
* Add a persistenceCmHandle.
*
* @param persistenceCmHandle the persistenceCmHandle to add