diff options
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; + } } |