From 02dadcf8080f8b538f05cfafed29cf6aa391452c Mon Sep 17 00:00:00 2001 From: ’zhaoyh6‘ Date: Mon, 24 Oct 2022 15:58:32 +0800 Subject: feat:Intent instance binding 5g slice instance information MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue-ID: REQ-1214 Signed-off-by: ’zhaoyh6‘ Change-Id: I49062d260bec07259d04a63b43de57581b3c0c8a --- .../service/intent/IntentInstanceService.java | 3 ++ .../intent/impl/IntentInstanceServiceImpl.java | 35 +++++++++++++++++++++- 2 files changed, 37 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/onap/usecaseui/server/service/intent/IntentInstanceService.java b/server/src/main/java/org/onap/usecaseui/server/service/intent/IntentInstanceService.java index d0595ce6..e25fa761 100644 --- a/server/src/main/java/org/onap/usecaseui/server/service/intent/IntentInstanceService.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/intent/IntentInstanceService.java @@ -17,6 +17,7 @@ package org.onap.usecaseui.server.service.intent; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; +import org.onap.usecaseui.server.bean.csmf.SlicingOrder; import org.onap.usecaseui.server.bean.intent.CCVPNInstance; import org.onap.usecaseui.server.bean.intent.IntentInstance; import org.onap.usecaseui.server.bean.nsmf.common.ServiceResult; @@ -65,4 +66,6 @@ public interface IntentInstanceService { ServiceResult createSlicingServiceWithIntent(Object slicingOrderBody); int updateCCVPNInstance(CCVPNInstance instance); + + void saveSlicingServiceToAAI(String serviceId,String operationId, SlicingOrder slicingOrder) throws IOException; } diff --git a/server/src/main/java/org/onap/usecaseui/server/service/intent/impl/IntentInstanceServiceImpl.java b/server/src/main/java/org/onap/usecaseui/server/service/intent/impl/IntentInstanceServiceImpl.java index af8955a1..c47cdc15 100644 --- a/server/src/main/java/org/onap/usecaseui/server/service/intent/impl/IntentInstanceServiceImpl.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/intent/impl/IntentInstanceServiceImpl.java @@ -24,6 +24,7 @@ import org.hibernate.SessionFactory; import org.hibernate.Transaction; import org.onap.usecaseui.server.bean.csmf.ServiceCreateResult; import org.onap.usecaseui.server.bean.csmf.SlicingOrder; +import org.onap.usecaseui.server.bean.csmf.SlicingOrderDetail; import org.onap.usecaseui.server.bean.intent.InstancePerformance; import org.onap.usecaseui.server.bean.intent.CCVPNInstance; import org.onap.usecaseui.server.bean.intent.IntentInstance; @@ -864,7 +865,12 @@ public class IntentInstanceServiceImpl implements IntentInstanceService { SlicingOrder slicingOrder = JSONObject.parseObject(JSONObject.toJSONString(slicingOrderBody), SlicingOrder.class); ServiceResult serviceResult = slicingService.createSlicingService(slicingOrder); ServiceCreateResult createResult = (ServiceCreateResult) serviceResult.getResult_body(); - + try { + saveSlicingServiceToAAI(createResult.getService_id(), createResult.getOperation_id(), slicingOrder); + } catch (IOException e) { + logger.error("save 5g slice to AAI fail!"); + throw new RuntimeException("save 5g slice to AAI fail!", e); + } createIntentInstance(slicingOrderBody,createResult.getService_id(), slicingOrder.getSlicing_order_info().getName(), IntentConstant.MODEL_TYPE_5GS); return serviceResult; } @@ -989,4 +995,31 @@ public class IntentInstanceServiceImpl implements IntentInstanceService { } } + @Override + public void saveSlicingServiceToAAI(String serviceId, String operationId, SlicingOrder slicingOrder) throws IOException { + addCustomer(); + addSubscription(); + Properties environment = getProperties(); + String globalCustomerId = environment.getProperty("ccvpn.globalCustomerId"); + String serviceType = environment.getProperty("ccvpn.serviceType"); + SlicingOrderDetail slicingOrderInfo = slicingOrder.getSlicing_order_info(); + JSONObject environmentContext = JSONObject.parseObject(JSONObject.toJSONString(slicingOrderInfo)); + + Map params = new HashMap<>(); + params.put("service-instance-id", serviceId); + params.put("service-instance-name", slicingOrderInfo.getName()); + params.put("service-type", IntentConstant.MODEL_TYPE_5GS); + params.put("environment-context", environmentContext.toJSONString()); + params.put("service-operation-id", operationId); + params.put("data-rate-uplink", slicingOrderInfo.getExpDataRateUL()); + params.put("data-rate-downlink", slicingOrderInfo.getExpDataRateDL()); + params.put("latency", slicingOrderInfo.getLatency()); + params.put("max-number-of-ues", slicingOrderInfo.getMaxNumberofUEs()); + params.put("mobility", slicingOrderInfo.getUEMobilityLevel()); + params.put("resource-sharing-level", slicingOrderInfo.getResourceSharingLevel()); + params.put("data-owner", IntentConstant.INTENT_INSTANCE_DATA_OWNER); + okhttp3.RequestBody requestBody = okhttp3.RequestBody.create(okhttp3.MediaType.parse("application/json"), JSON.toJSONString(params)); + intentApiService.saveServiceInstance(globalCustomerId,serviceType,serviceId,requestBody).execute(); + } + } -- cgit 1.2.3-korg