feat:Intent instance binding 5g slice instance information 14/131714/1 5.1.2
author’zhaoyh6‘ <zhaoyh6@asiainfo.com>
Mon, 24 Oct 2022 07:58:32 +0000 (15:58 +0800)
committer’zhaoyh6‘ <zhaoyh6@asiainfo.com>
Mon, 24 Oct 2022 07:58:45 +0000 (15:58 +0800)
Issue-ID: REQ-1214
Signed-off-by: ’zhaoyh6‘ <zhaoyh6@asiainfo.com>
Change-Id: I49062d260bec07259d04a63b43de57581b3c0c8a

server/src/main/java/org/onap/usecaseui/server/service/intent/IntentInstanceService.java
server/src/main/java/org/onap/usecaseui/server/service/intent/impl/IntentInstanceServiceImpl.java

index d0595ce..e25fa76 100644 (file)
@@ -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;
 }
index af8955a..c47cdc1 100644 (file)
@@ -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<String, Object> 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();
+    }
+
 }