diff options
Diffstat (limited to 'server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl')
2 files changed, 85 insertions, 0 deletions
diff --git a/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceConvert.java b/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceConvert.java index 64e12846..227ce2f7 100644 --- a/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceConvert.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceConvert.java @@ -27,12 +27,16 @@ import org.onap.usecaseui.server.bean.nsmf.monitor.TotalBandwidthInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.TrafficReqInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.UsageTrafficInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.UserNumberInfo; +import org.onap.usecaseui.server.bean.nsmf.monitor.ServicePDUSessionEstSRInfo; +import org.onap.usecaseui.server.bean.nsmf.monitor.PDUSessionEstSRInfo; import org.onap.usecaseui.server.constant.nsmf.NsmfParamConstant; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiTotalBandwidth; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiTotalTraffic; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiUserNumber; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.TotalBandwidth; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.UserNumbers; +import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiPDUSessionEstSR; +import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.PDUSessionEstSR; import org.onap.usecaseui.server.util.nsmf.NsmfCommonUtil; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -66,6 +70,14 @@ public class ResourceMonitorServiceConvert { return slicingKpiReqInfo; } + SlicingKpiReqInfo buildSlicingPDUSessionEstSRKpiReqInfo(ServiceInfo serviceInfo, String queryTimestamp, int kpiHours) { + SlicingKpiReqInfo slicingKpiReqInfo = new SlicingKpiReqInfo(); + slicingKpiReqInfo.setId("PDUSessionEstSR"+"."+serviceInfo.getServiceId()); + slicingKpiReqInfo.setTimeStamp(queryTimestamp); + slicingKpiReqInfo.setHours(kpiHours); + return slicingKpiReqInfo; + } + void convertServiceOnlineUserInfo(ServiceOnlineUserInfo serviceOnlineUserInfo, KpiUserNumber kpiUserNumber) throws InvocationTargetException, IllegalAccessException, ParseException { @@ -105,4 +117,21 @@ public class ResourceMonitorServiceConvert { serviceTotalBandwidthInfo.setTotalBandwidthInfoList(totalBandwidthInfoList); } + + void convertServicePDUSessionEstSRInfo(ServicePDUSessionEstSRInfo servicePDUSessionEstSRInfo, + KpiPDUSessionEstSR kpiPDUSessionEstSR) + throws InvocationTargetException, IllegalAccessException, ParseException { + + List<PDUSessionEstSRInfo> kpiPDUSessionEstSRInfoList = new ArrayList<>(); + servicePDUSessionEstSRInfo.setId(kpiPDUSessionEstSR.getRequest().getId().substring(kpiPDUSessionEstSR.getRequest().getId().lastIndexOf(".") + 1)); + if (kpiPDUSessionEstSR.getResult() != null) { + for (PDUSessionEstSR pDUSessionEstSR : kpiPDUSessionEstSR.getResult()) { + PDUSessionEstSRInfo kpiPDUSessionEstSRInfo = new PDUSessionEstSRInfo(); + kpiPDUSessionEstSRInfo.setTimestamp(pDUSessionEstSR.getTimeStamp()); + kpiPDUSessionEstSRInfo.setPduSessionEstSR(String.valueOf(pDUSessionEstSR.getPDUSessionEstSR())); + kpiPDUSessionEstSRInfoList.add(kpiPDUSessionEstSRInfo); + } + } + servicePDUSessionEstSRInfo.setPDUSessionEstSRInfoList(kpiPDUSessionEstSRInfoList); + } } diff --git a/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceImpl.java b/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceImpl.java index c9c16041..57de5338 100644 --- a/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceImpl.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/nsmf/impl/ResourceMonitorServiceImpl.java @@ -34,7 +34,9 @@ import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceList; import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceOnlineUserInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceOnlineUserList; import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceTotalBandwidthInfo; +import org.onap.usecaseui.server.bean.nsmf.monitor.ServicePDUSessionEstSRInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.ServiceTotalBandwidthList; +import org.onap.usecaseui.server.bean.nsmf.monitor.ServicePDUSessionEstSRList; import org.onap.usecaseui.server.bean.nsmf.monitor.SlicingKpiReqInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.TrafficReqInfo; import org.onap.usecaseui.server.bean.nsmf.monitor.UsageTrafficInfo; @@ -46,6 +48,7 @@ import org.onap.usecaseui.server.service.slicingdomain.kpi.KpiSliceService; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiTotalBandwidth; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiTotalTraffic; import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiUserNumber; +import org.onap.usecaseui.server.service.slicingdomain.kpi.bean.KpiPDUSessionEstSR; import org.onap.usecaseui.server.util.RestfulServices; import org.onap.usecaseui.server.util.nsmf.NsmfCommonUtil; import org.slf4j.Logger; @@ -250,4 +253,57 @@ public class ResourceMonitorServiceImpl implements ResourceMonitorService { serviceResult.setResult_body(serviceTotalBandwidthList); return serviceResult; } + + @Override + public ServiceResult querySlicingPDUSessionEstSR(String queryTimestamp, ServiceList serviceList) { + ServiceResult serviceResult = new ServiceResult(); + ResultHeader resultHeader = new ResultHeader(); + initConfig(); + ServicePDUSessionEstSRList servicePDUSessionEstSRList = new ServicePDUSessionEstSRList(); + + List<ServicePDUSessionEstSRInfo> servicePDUSessionEstSRInfoList = new ArrayList<>(); + List<ServiceInfo> serviceInfoList = serviceList.getServiceInfoList(); + + String resultMsg = ""; + + try { + for (ServiceInfo serviceInfo : serviceInfoList) { + SlicingKpiReqInfo slicingKpiReqInfo = resourceMonitorServiceConvert + .buildSlicingPDUSessionEstSRKpiReqInfo(serviceInfo, queryTimestamp, kpiHours); + String jsonstr = JSON.toJSONString(slicingKpiReqInfo); + RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), jsonstr); + Response<KpiPDUSessionEstSR> response =this.kpiSliceService.listPDUSessionEstSR(requestBody).execute(); + if (response.isSuccessful()) { + KpiPDUSessionEstSR kpiPDUSessionEstSR = response.body(); + logger.info("querySlicingPDUSessionEstSR: listPDUSessionEstSR reponse is:{}", + gson.toJson(kpiPDUSessionEstSR)); + ServicePDUSessionEstSRInfo servicePDUSessionEstSRInfo = new ServicePDUSessionEstSRInfo(); + resourceMonitorServiceConvert + .convertServicePDUSessionEstSRInfo(servicePDUSessionEstSRInfo, kpiPDUSessionEstSR); + servicePDUSessionEstSRInfoList.add(servicePDUSessionEstSRInfo); + resultMsg = "5G slicing service PDUSessionEstSR query result."; + resultHeader.setResult_code(NsmfCodeConstant.SUCCESS_CODE); + } else { + logger.error(String + .format("querySlicingPDUSessionEstSR: Can not get KpiUserNumber[code={}, message={}]", + response.code(), + response.message())); + resultMsg = "5G slicing PDUSessionEstSR query failed!"; + resultHeader.setResult_code(NsmfCodeConstant.ERROR_CODE_UNKNOWN); + } + } + } catch (Exception e) { + resultMsg = "5G slicing PDUSessionEstSR query failed. Unknown exception occurred!"; + resultHeader.setResult_code(NsmfCodeConstant.ERROR_CODE_UNKNOWN); + logger.error("Exception in querySlicingPDUSessionEstSR :{}",e); + } + + logger.info(resultMsg); + logger.info("querySlicingPDUSessionEstSR: 5G slicing kpiPDUSessionEstSR query has been finished."); + servicePDUSessionEstSRList.setServicePDUSessionEstSRInfoList(servicePDUSessionEstSRInfoList); + resultHeader.setResult_message(resultMsg); + serviceResult.setResult_header(resultHeader); + serviceResult.setResult_body(servicePDUSessionEstSRList); + return serviceResult; + } } |