aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java35
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java77
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java4
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/aai/bean/nsServiceRsp.java32
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java6
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java81
-rw-r--r--server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java87
7 files changed, 246 insertions, 76 deletions
diff --git a/server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java b/server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java
index ac1085b4..f580a9fc 100644
--- a/server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java
+++ b/server/src/main/java/org/onap/usecaseui/server/controller/lcm/PackageDistributionController.java
@@ -15,19 +15,23 @@
*/
package org.onap.usecaseui.server.controller.lcm;
+import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
+import org.onap.usecaseui.server.bean.ServiceBean;
import org.onap.usecaseui.server.bean.lcm.VfNsPackageInfo;
import org.onap.usecaseui.server.service.lcm.PackageDistributionService;
+import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.Vnf;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.JobStatus;
+import org.onap.usecaseui.server.util.UuiCommonUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
@@ -39,6 +43,9 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+
@RestController
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
@@ -52,7 +59,14 @@ public class PackageDistributionController {
public void setPackageDistributionService(PackageDistributionService packageDistributionService) {
this.packageDistributionService = packageDistributionService;
}
+
+ @Resource(name="ServiceLcmService")
+ private ServiceLcmService serviceLcmService;
+ public void setServiceLcmService(ServiceLcmService serviceLcmService) {
+ this.serviceLcmService = serviceLcmService;
+ }
+
@ResponseBody
@RequestMapping(value = {"/uui-lcm/vf-ns-packages"}, method = RequestMethod.GET , produces = "application/json")
public VfNsPackageInfo retrievePackageInfo(){
@@ -95,7 +109,14 @@ public class PackageDistributionController {
public DistributionResult deleteNsPackage(@PathVariable("casrId") String casrId){
return packageDistributionService.deleteNsPackage(casrId);
}
-
+
+ @ResponseBody
+ @RequestMapping(value = {"/uui-lcm/jobs/getNsLcmJobStatus/{jobId}"}, method = RequestMethod.GET , produces = "application/json")
+ public JobStatus getNsLcmJobStatus(@PathVariable(value="jobId") String jobId, HttpServletRequest request){
+ String responseId = request.getParameter("responseId");
+ return packageDistributionService.getNsLcmJobStatus(jobId, responseId);
+ }
+
@ResponseBody
@RequestMapping(value = {"/uui-lcm/vf-packages/{casrId}"}, method = RequestMethod.DELETE , produces = "application/json")
public Job deleteVfPackage(@PathVariable("casrId") String casrId){
@@ -188,7 +209,7 @@ public class PackageDistributionController {
}
@RequestMapping(value = {"/uui-lcm/getNetworkServiceInfo}"}, method = RequestMethod.GET , produces = "application/json")
- public String getNetworkServiceInfo(){
+ public List<String> getNetworkServiceInfo(){
return packageDistributionService.getNetworkServiceInfo();
}
@@ -203,8 +224,14 @@ public class PackageDistributionController {
}
@RequestMapping(value = {"/uui-lcm/instantiateNetworkServiceInstance}"}, method = RequestMethod.POST , produces = "application/json")
- public String instantiateNetworkServiceInstance(HttpServletRequest request,@RequestParam String ns_instance_id){
- return packageDistributionService.terminateNetworkServiceInstance(request,ns_instance_id);
+ public String instantiateNetworkServiceInstance(HttpServletRequest request){
+ String customerId = request.getParameter("customerId");
+ String serviceType = request.getParameter("serviceType");
+ String serviceDomain = request.getParameter("serviceDomain");
+ String ns_instance_id = request.getParameter("ns_instance_id");
+ ServiceBean serviceBean = new ServiceBean(UuiCommonUtil.getUUID(),ns_instance_id,customerId,serviceType,serviceDomain,null,null,null);
+ serviceLcmService.saveOrUpdateServiceBean(serviceBean);
+ return packageDistributionService.instantiateNetworkServiceInstance(request,ns_instance_id);
}
@RequestMapping(value = {"/uui-lcm/terminateNetworkServiceInstance}"}, method = RequestMethod.POST , produces = "application/json")
diff --git a/server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java b/server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java
index 2a0befcb..fb911b76 100644
--- a/server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java
+++ b/server/src/main/java/org/onap/usecaseui/server/controller/lcm/ServiceInstanceController.java
@@ -16,12 +16,15 @@
package org.onap.usecaseui.server.controller.lcm;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.onap.usecaseui.server.bean.ServiceBean;
+import org.onap.usecaseui.server.service.lcm.PackageDistributionService;
import org.onap.usecaseui.server.service.lcm.ServiceInstanceService;
import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
import org.onap.usecaseui.server.util.UuiCommonUtil;
@@ -49,35 +52,51 @@ public class ServiceInstanceController {
@Resource(name="ServiceInstanceService")
private ServiceInstanceService serviceInstanceService;
- @Resource(name="ServiceLcmService")
- private ServiceLcmService serviceLcmService;
+ @Resource(name="PackageDistributionService")
+ private PackageDistributionService packageDistributionService;
+
+ public void setPackageDistributionService(PackageDistributionService packageDistributionService) {
+ this.packageDistributionService = packageDistributionService;
+ }
public void setServiceInstanceService(ServiceInstanceService serviceInstanceService) {
this.serviceInstanceService = serviceInstanceService;
}
- public void setServiceLcmService(ServiceLcmService serviceLcmService) {
- this.serviceLcmService = serviceLcmService;
- }
-
@ResponseBody
@RequestMapping(value = {"/uui-lcm/service-instances"}, method = RequestMethod.GET , produces = "application/json")
- public List<String> listServiceInstances(HttpServletRequest request){
- List<String> result = new ArrayList<String>();
+ public String listServiceInstances(HttpServletRequest request) throws JsonProcessingException{
+ ObjectMapper mapper = new ObjectMapper();
String customerId = request.getParameter("customerId");
String serviceType = request.getParameter("serviceType");
String currentPage = request.getParameter("currentPage");
String pageSize = request.getParameter("pageSize");
List<String> serviceInstances =serviceInstanceService.listServiceInstances(customerId, serviceType);
- if(serviceInstances.size()>0){
- try {
- result = this.parseServiceInstance(serviceInstances,currentPage,pageSize,customerId,serviceType);
- } catch (JsonProcessingException e) {
- logger.error("exception occurred while performing ServiceInstanceController listServiceInstances. Details:" + e.getMessage());
- }
- }
- return result;
+ Map<String,Object> map = new HashMap<>();
+ map.put("total", serviceInstances.size());
+ map.put("tableList", UuiCommonUtil.getPageList(serviceInstances, Integer.parseInt(currentPage), Integer.parseInt(pageSize)));
+ return mapper.writeValueAsString(map);
}
+
+ @ResponseBody
+ @RequestMapping(value = {"/uui-lcm/service-ns-instances"}, method = RequestMethod.GET , produces = "application/json")
+ public String listNsOrServiceInstances(HttpServletRequest request) throws JsonProcessingException{
+ ObjectMapper mapper = new ObjectMapper();
+ String customerId = request.getParameter("customerId");
+ String serviceType = request.getParameter("serviceType");
+ String currentPage = request.getParameter("currentPage");
+ String pageSize = request.getParameter("pageSize");
+ List<String> serviceInstances =serviceInstanceService.listServiceInstances(customerId, serviceType);
+ List<String> nsServiceInstances = packageDistributionService.getNetworkServiceInfo();
+ List<String> result = new ArrayList<>();
+ result.addAll(serviceInstances);
+ result.addAll(nsServiceInstances);
+ Map<String,Object> map = new HashMap<>();
+ map.put("total", result.size());
+ map.put("tableList", UuiCommonUtil.getPageList(result, Integer.parseInt(currentPage), Integer.parseInt(pageSize)));
+ return mapper.writeValueAsString(map);
+ }
+
@ResponseBody
@RequestMapping(value = {"/uui-lcm/getServiceInstanceById"}, method = RequestMethod.GET , produces = "application/json")
public String getServiceInstanceById(HttpServletRequest request){
@@ -115,30 +134,4 @@ public class ServiceInstanceController {
}
return result.toString() ;
}
-
- @SuppressWarnings("unchecked")
- private List<String> parseServiceInstance(List<String> list,String currentPage,String pageSize,String customerId,String serviceType) throws JsonProcessingException{
- ObjectMapper mapper = new ObjectMapper();
- List<String> result = new ArrayList<>();
- for(String serviceInstance:list){
- JSONObject object = JSON.parseObject(serviceInstance);
- String serviceInstanceId=object.get("service-instance-id").toString();
- ServiceBean serviceBean = serviceLcmService.getServiceBeanByServiceInStanceId(serviceInstanceId);
- String serviceDomain = serviceBean.getServiceDomain();
- object.put("serviceDomain",serviceDomain);
- if("SOTN".equals(serviceDomain)||"CCVPN".equals(serviceDomain)||"E2E Service".equals(serviceDomain)||"Network Service".equals(serviceDomain)){
- List<String> parentIds = serviceLcmService.getServiceInstanceIdByParentId(serviceInstanceId);
- List<String> parentServiceInstances = new ArrayList<>();
- if(parentIds.size()>0){
- for(String id:parentIds){
- String parentServiceInstance=serviceInstanceService.getRelationShipData(customerId, serviceType, id);
- parentServiceInstances.add(parentServiceInstance);
- }
- }
- object.put("childServiceInstances",mapper.writeValueAsString(parentServiceInstances));
- result.add(mapper.writeValueAsString(object));
- }
- }
- return UuiCommonUtil.getPageList(result, Integer.parseInt(currentPage), Integer.parseInt(pageSize));
- }
}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java
index 6a0d2d96..cd490381 100644
--- a/server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java
+++ b/server/src/main/java/org/onap/usecaseui/server/service/lcm/PackageDistributionService.java
@@ -41,6 +41,8 @@ public interface PackageDistributionService {
Job postVfPackage(Csar csar);
JobStatus getJobStatus(String jobId, String responseId);
+
+ JobStatus getNsLcmJobStatus(String jobId, String responseId);
DistributionResult deleteNsPackage(String csarId);
@@ -80,7 +82,7 @@ public interface PackageDistributionService {
String deletePnfPackage(String pnfdInfoId);
- String getNetworkServiceInfo();
+ List<String> getNetworkServiceInfo();
String createNetworkServiceInstance(HttpServletRequest request);
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/aai/bean/nsServiceRsp.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/aai/bean/nsServiceRsp.java
new file mode 100644
index 00000000..5ffdc2b3
--- /dev/null
+++ b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/aai/bean/nsServiceRsp.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (C) 2018 CMCC, Inc. and others. All rights reserved.
+ *
+ * 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.
+ */
+package org.onap.usecaseui.server.service.lcm.domain.aai.bean;
+
+import java.util.List;
+
+public class nsServiceRsp {
+
+ public List<String> nsServices;
+
+ public List<String> getNsServices() {
+ return nsServices;
+ }
+
+ public void setNsServices(List<String> nsServices) {
+ this.nsServices = nsServices;
+ }
+
+}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java
index da0fabe3..9495477f 100644
--- a/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java
+++ b/server/src/main/java/org/onap/usecaseui/server/service/lcm/domain/vfc/VfcService.java
@@ -15,6 +15,7 @@
*/
package org.onap.usecaseui.server.service.lcm.domain.vfc;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.nsServiceRsp;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Job;
@@ -35,6 +36,9 @@ public interface VfcService {
@GET("/api/catalog/v1/jobs/{jobId}")
Call<JobStatus> getJobStatus(@Path("jobId") String jobId, @Query("responseId") String responseId);
+
+ @GET("/api/nslcm/v1/jobs/{job_id}")
+ Call<JobStatus> getNsLcmJobStatus(@Path("jobId") String jobId, @Query("responseId") String responseId);
@DELETE("/api/catalog/v1/nspackages/{csarId}")
Call<DistributionResult> deleteNsPackage(@Path("csarId") String csarId);
@@ -49,7 +53,7 @@ public interface VfcService {
Call<ResponseBody> fetchNsTemplateData(@Body RequestBody body);
@GET("/api/nslcm/v1/ns")
- Call<ResponseBody> getNetworkServiceInfo();
+ Call<nsServiceRsp> getNetworkServiceInfo();
@POST("/api/nslcm/v1/ns")
Call<ResponseBody> createNetworkServiceInstance(@Body RequestBody body);
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java
index 70b68663..c4c6a20b 100644
--- a/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java
+++ b/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultPackageDistributionService.java
@@ -15,13 +15,29 @@
*/
package org.onap.usecaseui.server.service.lcm.impl;
+import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.CATEGORY_NS;
+import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.DISTRIBUTION_STATUS_DISTRIBUTED;
+import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.RESOURCETYPE_VF;
+import static org.onap.usecaseui.server.util.RestfulServices.create;
+import static org.onap.usecaseui.server.util.RestfulServices.extractBody;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+
+import org.onap.usecaseui.server.bean.ServiceBean;
import org.onap.usecaseui.server.bean.lcm.VfNsPackageInfo;
import org.onap.usecaseui.server.constant.Constant;
import org.onap.usecaseui.server.service.lcm.PackageDistributionService;
+import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.nsServiceRsp;
import org.onap.usecaseui.server.service.lcm.domain.sdc.SDCCatalogService;
import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.SDCServiceTemplate;
import org.onap.usecaseui.server.service.lcm.domain.sdc.bean.Vnf;
-import org.onap.usecaseui.server.service.lcm.domain.sdc.exceptions.SDCCatalogException;
import org.onap.usecaseui.server.service.lcm.domain.vfc.VfcService;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.Csar;
import org.onap.usecaseui.server.service.lcm.domain.vfc.beans.DistributionResult;
@@ -33,20 +49,13 @@ import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Service;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+
import okhttp3.RequestBody;
import okhttp3.ResponseBody;
import retrofit2.Response;
-import java.io.IOException;
-import java.util.Collections;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
-import static org.onap.usecaseui.server.service.lcm.domain.sdc.consts.SDCConsts.*;
-import static org.onap.usecaseui.server.util.RestfulServices.create;
-import static org.onap.usecaseui.server.util.RestfulServices.extractBody;
-
@Service("PackageDistributionService")
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
@@ -57,6 +66,9 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
private SDCCatalogService sdcCatalogService;
private VfcService vfcService;
+
+ @Resource(name="ServiceLcmService")
+ private ServiceLcmService serviceLcmService;
public DefaultPackageDistributionService() {
this(create(SDCCatalogService.class), create(VfcService.class));
@@ -67,6 +79,10 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
this.vfcService = vfcService;
}
+ public void setServiceLcmService(ServiceLcmService serviceLcmService) {
+ this.serviceLcmService = serviceLcmService;
+ }
+
@Override
public VfNsPackageInfo retrievePackageInfo() {
List<SDCServiceTemplate> nsTemplate = sdcNsPackageInfo();
@@ -150,7 +166,22 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
throw new VfcException("VFC service is not available!", e);
}
}
-
+
+ @Override
+ public JobStatus getNsLcmJobStatus(String jobId, String responseId) {
+ try {
+ Response<JobStatus> response = vfcService.getNsLcmJobStatus(jobId, responseId).execute();
+ if (response.isSuccessful()) {
+ return response.body();
+ } else {
+ logger.info(String.format("Can not get Job status[code=%s, message=%s]", response.code(), response.message()));
+ throw new VfcException("VFC service getNsLcmJobStatus is not available!");
+ }
+ } catch (IOException e) {
+ throw new VfcException("VFC service getNsLcmJobStatus is not available!", e);
+ }
+ }
+
@Override
public DistributionResult deleteNsPackage(String csarId) {
try {
@@ -378,24 +409,33 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
}
@Override
- public String getNetworkServiceInfo() {
-
- String result="";
+ public List<String> getNetworkServiceInfo() {
+ List<String> result = new ArrayList<>();
try {
logger.info("vfc getNetworkServiceInfo is starting!");
- Response<ResponseBody> response = this.vfcService.getNetworkServiceInfo().execute();
+ Response<nsServiceRsp> response = this.vfcService.getNetworkServiceInfo().execute();
logger.info("vfc getNetworkServiceInfo has finished!");
if (response.isSuccessful()) {
- result=new String(response.body().bytes());
+ List<String> nsServices = response.body().nsServices;
+ if(nsServices.size()>0){
+ for(String nsService:nsServices){
+ JSONObject object = JSON.parseObject(nsService);
+ String serviceInstanceId=object.get("nsInstanceId").toString();
+ ServiceBean serviceBean = serviceLcmService.getServiceBeanByServiceInStanceId(serviceInstanceId);
+ object.put("serviceDomain",serviceBean.getServiceDomain());
+ object.put("childServiceInstances","[]");
+ result.add(object.toString());
+ }
+ }
+ return result;
} else {
logger.info(String.format("Can not get getNetworkServiceInfo[code=%s, message=%s]", response.code(), response.message()));
- result=Constant.CONSTANT_FAILED;;
+ return Collections.emptyList();
}
} catch (IOException e) {
logger.error("getNetworkServiceInfo occur exception:"+e);
- result=Constant.CONSTANT_FAILED;;
+ return Collections.emptyList();
}
- return result;
}
@@ -697,5 +737,4 @@ public class DefaultPackageDistributionService implements PackageDistributionSer
}
return result;
}
-
}
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java b/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java
index 477ed259..6405795b 100644
--- a/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java
+++ b/server/src/main/java/org/onap/usecaseui/server/service/lcm/impl/DefaultServiceInstanceService.java
@@ -16,19 +16,31 @@
package org.onap.usecaseui.server.service.lcm.impl;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import javax.annotation.Resource;
+
+import org.onap.usecaseui.server.bean.ServiceBean;
+import org.onap.usecaseui.server.service.lcm.CustomerService;
import org.onap.usecaseui.server.service.lcm.ServiceInstanceService;
+import org.onap.usecaseui.server.service.lcm.ServiceLcmService;
import org.onap.usecaseui.server.service.lcm.domain.aai.AAIService;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.AAICustomer;
+import org.onap.usecaseui.server.service.lcm.domain.aai.bean.AAIServiceSubscription;
import org.onap.usecaseui.server.service.lcm.domain.aai.bean.ServiceInstanceRsp;
-import org.onap.usecaseui.server.service.lcm.domain.aai.exceptions.AAIException;
import org.onap.usecaseui.server.util.RestfulServices;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Service;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+
import okhttp3.ResponseBody;
import retrofit2.Response;
@@ -40,6 +52,20 @@ public class DefaultServiceInstanceService implements ServiceInstanceService {
private static final Logger logger = LoggerFactory.getLogger(DefaultServiceInstanceService.class);
private AAIService aaiService;
+
+ @Resource(name="ServiceLcmService")
+ private ServiceLcmService serviceLcmService;
+
+ @Resource(name="CustomerService")
+ private CustomerService customerService;
+
+ public void setCustomerService(CustomerService customerService) {
+ this.customerService = customerService;
+ }
+
+ public void setServiceLcmService(ServiceLcmService serviceLcmService) {
+ this.serviceLcmService = serviceLcmService;
+ }
public DefaultServiceInstanceService() {
this(RestfulServices.create(AAIService.class));
@@ -51,20 +77,50 @@ public class DefaultServiceInstanceService implements ServiceInstanceService {
@Override
public List<String> listServiceInstances(String customerId, String serviceType) {
+ List<String> result = new ArrayList<>();
try {
Response<ServiceInstanceRsp> response = aaiService.listServiceInstances(customerId, serviceType).execute();
if (response.isSuccessful()) {
- return response.body().getServiceInstances();
+ List<String> serviceInstances = response.body().getServiceInstances();
+ if(serviceInstances.size()>0){
+ result=this.parseServiceInstance(serviceInstances, customerId, serviceType);
+ }
+ return result;
} else {
logger.info(String.format("Can not get service instances[code=%s, message=%s]", response.code(), response.message()));
return Collections.emptyList();
}
} catch (IOException e) {
- logger.error("list services instances occur exception");
- throw new AAIException("AAI is not available.", e);
+ logger.error("list services instances occur exception"+e.getMessage());
+ return Collections.emptyList();
}
}
-
+
+ private List<String> parseServiceInstance(List<String> list,String customerId,String serviceType) throws JsonProcessingException{
+ ObjectMapper mapper = new ObjectMapper();
+ List<String> result = new ArrayList<>();
+ for(String serviceInstance:list){
+ JSONObject object = JSON.parseObject(serviceInstance);
+ String serviceInstanceId=object.get("service-instance-id").toString();
+ ServiceBean serviceBean = serviceLcmService.getServiceBeanByServiceInStanceId(serviceInstanceId);
+ String serviceDomain = serviceBean.getServiceDomain();
+ object.put("serviceDomain",serviceDomain);
+ if("SOTN".equals(serviceDomain)||"CCVPN".equals(serviceDomain)||"E2E Service".equals(serviceDomain)||"Network Service".equals(serviceDomain)){
+ List<String> parentIds = serviceLcmService.getServiceInstanceIdByParentId(serviceInstanceId);
+ List<String> parentServiceInstances = new ArrayList<>();
+ if(parentIds.size()>0){
+ for(String id:parentIds){
+ String parentServiceInstance=this.getRelationShipData(customerId, serviceType, id);
+ parentServiceInstances.add(parentServiceInstance);
+ }
+ }
+ object.put("childServiceInstances",mapper.writeValueAsString(parentServiceInstances));
+ result.add(object.toString());
+ }
+ }
+ return result;
+ }
+
@Override
public String getRelationShipData(String customerId, String serviceType, String serviceId) {
try {
@@ -77,8 +133,25 @@ public class DefaultServiceInstanceService implements ServiceInstanceService {
return "";
}
} catch (IOException e) {
- logger.error("list services instances occur exception");
- throw new AAIException("AAI is not available.", e);
+ logger.error("list services instances occur exception:"+e.getMessage());
+ return "";
}
}
+
+ public String serviceNumByCustomer(){
+ List<AAICustomer> customers = customerService.listCustomer();
+ int total =0;
+ if(customers.size()>0){
+ for(AAICustomer customer : customers){
+ List<AAIServiceSubscription> serviceSubscriptions = customerService.listServiceSubscriptions(customer.getGlobalCustomerId());
+ if(serviceSubscriptions.size()>0){
+ for(AAIServiceSubscription serviceSubscription:serviceSubscriptions){
+ List<String> serviceInstances =this.listServiceInstances(customer.getGlobalCustomerId(), serviceSubscription.getServiceType());
+ total+=serviceInstances.size();
+ }
+ }
+ }
+ }
+ return null;
+ }
}