summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdrian OSullivan <adrian.osullivan@huawei.com>2020-02-05 17:41:44 +0000
committerGerrit Code Review <gerrit@onap.org>2020-02-05 17:41:44 +0000
commit468a4135dbffb875b07870182a2c85a9a71dfd46 (patch)
tree2a4bbdbed9592e374c80f2becb38df3c3e39de0a
parentdc27fc76a2ee6481bd1fe12912bc3615e13715e0 (diff)
parent20e1c506b4157bd90189b24d4f4a33c61db6edfc (diff)
Merge "Implement serviceType handling for E2E network slicing"
-rwxr-xr-xsrc/main/java/org/onap/nbi/apis/serviceorder/model/Service.java13
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/utils/E2EServiceUtils.java3
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/CreateAAIServiceTypeManager.java16
-rw-r--r--src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java8
4 files changed, 28 insertions, 12 deletions
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/model/Service.java b/src/main/java/org/onap/nbi/apis/serviceorder/model/Service.java
index 6ecb77a..31802f2 100755
--- a/src/main/java/org/onap/nbi/apis/serviceorder/model/Service.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/model/Service.java
@@ -57,6 +57,9 @@ import java.util.Objects;
public class Service {
@JsonProperty("id")
private String id = null;
+
+ @JsonProperty("serviceType")
+ private String servicetype = null;
@JsonProperty("href")
private String href = null;
@@ -104,6 +107,16 @@ public class Service {
public void setId(String id) {
this.id = id;
}
+
+ @JsonProperty("serviceType")
+ @ApiModelProperty(value = "Business type of the service")
+ public String getServicetype() {
+ return servicetype;
+ }
+
+ public void setServicetype(String servicetype) {
+ this.servicetype = servicetype;
+ }
public Service href(String href) {
this.href = href;
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/utils/E2EServiceUtils.java b/src/main/java/org/onap/nbi/apis/serviceorder/utils/E2EServiceUtils.java
index f675428..086cd40 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/utils/E2EServiceUtils.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/utils/E2EServiceUtils.java
@@ -18,6 +18,7 @@ import java.util.Map;
import org.onap.nbi.apis.serviceorder.model.orchestrator.ServiceOrderItemInfo;
public class E2EServiceUtils {
+
public static boolean isE2EService(ServiceOrderItemInfo serviceOrderItemInfo) {
Map<String, Object> sdcInfos = serviceOrderItemInfo.getCatalogResponse();
boolean e2eService = false;
@@ -27,7 +28,7 @@ public class E2EServiceUtils {
// and e2eServiceInstances )APIs for service CRUD
// All E2E Services are required to be created in SDC under category "E2E Services" until SO fixes the
// multiple API issue.
- if (category.startsWith("e2e")) {
+ if (category.startsWith("e2e") || category.startsWith("CST")) {
e2eService = true;
}
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CreateAAIServiceTypeManager.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CreateAAIServiceTypeManager.java
index a8e4047..9cadb1e 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CreateAAIServiceTypeManager.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/CreateAAIServiceTypeManager.java
@@ -42,7 +42,6 @@ public class CreateAAIServiceTypeManager {
private static final Logger LOGGER = LoggerFactory.getLogger(CreateAAIServiceTypeManager.class);
public void createAAIServiceType(ServiceOrder serviceOrder, ServiceOrderInfo serviceOrderInfo) {
-
Map servicesInAaiForCustomer = serviceOrderConsumerService.getServicesInAaiForCustomer(
serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId(), serviceOrder);
@@ -50,14 +49,15 @@ public class CreateAAIServiceTypeManager {
if (ActionType.ADD == serviceOrderItem.getAction()) {
ServiceOrderItemInfo serviceOrderItemInfo =
serviceOrderInfo.getServiceOrderItemInfos().get(serviceOrderItem.getId());
- String sdcServiceName = (String) serviceOrderItemInfo.getCatalogResponse().get("name");
- if (!serviceNameExistsInAAI(servicesInAaiForCustomer, sdcServiceName)) {
+ String serviceTypeFromJson = serviceOrderItem.getService().getServicetype();
+ String serviceType = serviceTypeFromJson != null ? serviceTypeFromJson : (String) serviceOrderItemInfo.getCatalogResponse().get("name");
+ if (!serviceNameExistsInAAI(servicesInAaiForCustomer, serviceType)) {
boolean serviceCreated = serviceOrderConsumerService.putServiceType(
- serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId(), sdcServiceName, serviceOrder);
+ serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId(), serviceType, serviceOrder);
if (!serviceCreated) {
serviceOrderService.updateOrderState(serviceOrder, StateType.REJECTED);
LOGGER.warn("serviceOrder {} rejected : cannot create service type {} for customer {}",
- serviceOrder.getId(), sdcServiceName,
+ serviceOrder.getId(), serviceType,
serviceOrderInfo.getSubscriberInfo().getGlobalSubscriberId());
serviceOrderService.addOrderMessage(serviceOrder, "501");
@@ -68,14 +68,14 @@ public class CreateAAIServiceTypeManager {
}
- private boolean serviceNameExistsInAAI(Map servicesInAaiForCustomer, String sdcServiceName) {
+ private boolean serviceNameExistsInAAI(Map servicesInAaiForCustomer, String serviceType) {
if (servicesInAaiForCustomer != null && servicesInAaiForCustomer.get("service-subscription") != null) {
List<LinkedHashMap> servicesInAAI =
(List<LinkedHashMap>) servicesInAaiForCustomer.get("service-subscription");
for (LinkedHashMap service : servicesInAAI) {
- String serviceType = (String) service.get("service-type");
- if (sdcServiceName.equalsIgnoreCase(serviceType)) {
+ String serviceTypeInAAI = (String) service.get("service-type");
+ if (serviceType.equalsIgnoreCase(serviceTypeInAAI)) {
return true;
}
diff --git a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java
index 5694cfe..1b0d77f 100644
--- a/src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java
+++ b/src/main/java/org/onap/nbi/apis/serviceorder/workflow/PostSoProcessor.java
@@ -195,7 +195,9 @@ public class PostSoProcessor {
requestDetails.setRequestInfo(requestInfo);
RequestParameters requestParameters = new RequestParameters();
- requestParameters.setSubscriptionServiceType((String) sdcInfos.get("name"));
+
+ String serviceTypeFromJson = orderItem.getService().getServicetype();
+ requestParameters.setSubscriptionServiceType(serviceTypeFromJson != null ? serviceTypeFromJson:(String) sdcInfos.get("name"));
requestParameters.setUserParams(
retrieveUserParamsFromServiceCharacteristics(orderItem.getService().getServiceCharacteristic()));
requestParameters.setaLaCarte(true);
@@ -237,8 +239,8 @@ public class PostSoProcessor {
service.setServiceUuid(serviceOrderItem.getService().getServiceSpecification().getId());
service.setServiceInvariantUuid((String) sdcInfos.get("invariantUUID"));
service.setGlobalSubscriberId(subscriberInfo.getGlobalSubscriberId());
- service.setServiceType((String) sdcInfos.get("name"));
-
+ String serviceTypeFromJson = serviceOrderItem.getService().getServicetype();
+ service.setServiceType(serviceTypeFromJson != null ? serviceTypeFromJson : (String) sdcInfos.get("name"));
ParametersModel parameters = new ParametersModel();
ArrayList<ResourceModel> resources = new ArrayList();