diff options
author | shentao <shentao@chinamobile.com> | 2018-01-29 16:20:28 +0800 |
---|---|---|
committer | shentao <shentao@chinamobile.com> | 2018-01-29 16:20:36 +0800 |
commit | 7acb391d04f2efdac6e6306c208ae1586c23ffd9 (patch) | |
tree | 15f7309dd86c0bd11092ee98a3ccc459e2c1bb0e | |
parent | e6a9f95aec91bb0ef3ef91006c30a1d7daf87d8a (diff) |
Fix monitor bug about alarm record update
Change-Id: Ieb08e334aa50747b61baa63bf78b277546ace029
Issue-ID: USECASEUI-101
Signed-off-by: shentao <shentao@chinamobile.com>
8 files changed, 389 insertions, 163 deletions
diff --git a/server/pom.xml b/server/pom.xml index 9c68cffd..1c8ba798 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -189,6 +189,12 @@ <version>2.3.0</version> </dependency> + <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>1.2.23</version> + </dependency> <dependency> <groupId>org.openecomp.sdc.jtosca</groupId> <artifactId>jtosca</artifactId> diff --git a/server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java b/server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java index 502bd7b2..31cf2156 100755 --- a/server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java +++ b/server/src/main/java/org/onap/usecaseui/server/controller/AlarmController.java @@ -18,6 +18,9 @@ package org.onap.usecaseui.server.controller; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.onap.usecaseui.server.bean.AlarmsHeader;
@@ -36,23 +39,21 @@ import org.springframework.context.annotation.EnableAspectJAutoProxy; import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
-import java.io.FileInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
+import java.io.*;
+import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.*;
@RestController
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
-public class AlarmController
-{
+public class AlarmController {
private final Logger logger = LoggerFactory.getLogger(AlarmController.class);
@@ -69,76 +70,71 @@ public class AlarmController @RequestMapping(value = {"/alarm/{currentPage}/{pageSize}",
"/alarm/{currentPage}/{pageSize}/{sourceId}/{sourceName}/{priority}/{startTime}/{endTime}/{vfStatus}"},
- method = RequestMethod.GET , produces = "application/json")
- public String getAlarmData(@PathVariable(required = false) String sourceId,@PathVariable(required = false) String sourceName,
- @PathVariable(required = false) String priority,@PathVariable(required = false) String startTime,
- @PathVariable(required = false) String endTime,@PathVariable(required = false) String vfStatus,
+ method = RequestMethod.GET, produces = "application/json")
+ public String getAlarmData(@PathVariable(required = false) String sourceId, @PathVariable(required = false) String sourceName,
+ @PathVariable(required = false) String priority, @PathVariable(required = false) String startTime,
+ @PathVariable(required = false) String endTime, @PathVariable(required = false) String vfStatus,
@PathVariable int currentPage, @PathVariable int pageSize) throws JsonProcessingException {
logger.info("transfer getAlarmData Apis, " +
- "Parameter all follows : [currentPage : {} , pageSize : {} , sourceId : {} , " +
- "sourceName : {} , priority : {} , startTime :{} , endTime : {} , vfStatus : {}]"
- ,currentPage,pageSize,sourceId,sourceName,priority,startTime,endTime,vfStatus);
+ "Parameter all follows : [currentPage : {} , pageSize : {} , sourceId : {} , " +
+ "sourceName : {} , priority : {} , startTime :{} , endTime : {} , vfStatus : {}]"
+ , currentPage, pageSize, sourceId, sourceName, priority, startTime, endTime, vfStatus);
List<AlarmsHeader> alarmsHeaders = null;
List<AlarmBo> list = new ArrayList<>();
Page pa = null;
if (null != sourceId || null != sourceName || null != priority || null != startTime || null != endTime
- || null != vfStatus ){
+ || null != vfStatus) {
AlarmsHeader alarm = new AlarmsHeader();
- alarm.setSourceId(!"null".equals(sourceId)?sourceId:null);
- alarm.setSourceName(!"null".equals(sourceName)?sourceName:null);
- alarm.setStatus(!"null".equals(vfStatus)?vfStatus:null);
+ alarm.setSourceId(!"null".equals(sourceId) ? sourceId : null);
+ alarm.setSourceName(!"null".equals(sourceName) ? sourceName : null);
+ alarm.setStatus(!"null".equals(vfStatus) ? vfStatus : null);
try {
- alarm.setCreateTime(!"null".equals(startTime)?new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(startTime):null);
- alarm.setUpdateTime(!"null".equals(endTime)?new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endTime):null);
+ alarm.setCreateTime(!"null".equals(startTime) ? new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(startTime) : null);
+ alarm.setUpdateTime(!"null".equals(endTime) ? new SimpleDateFormat("yyyy-MM-dd HH:mm").parse(endTime) : null);
} catch (ParseException e) {
- logger.error("Parse date error :"+e.getMessage());
+ logger.error("Parse date error :" + e.getMessage());
}
- pa = alarmsHeaderService.queryAlarmsHeader(alarm,currentPage,pageSize);
+ pa = alarmsHeaderService.queryAlarmsHeader(alarm, currentPage, pageSize);
alarmsHeaders = pa.getList();
if (null != alarmsHeaders && alarmsHeaders.size() > 0) {
- alarmsHeaders.forEach(a ->{
+ alarmsHeaders.forEach(a -> {
logger.info(a.toString());
AlarmBo abo = new AlarmBo();
- if (!a.getStatus().equals("3")){
+ if (!a.getStatus().equals("3")) {
abo.setAlarmsHeader(a);
AlarmsInformation information = new AlarmsInformation();
information.setEventId(a.getSourceId());
- List<AlarmsInformation> informationList = alarmsInformationService.queryAlarmsInformation(information,1,100).getList();
+ List<AlarmsInformation> informationList = alarmsInformationService.queryAlarmsInformation(information, 1, 100).getList();
abo.setAlarmsInformation(informationList);
list.add(abo);
}
});
}
- }else {
+ } else {
pa = alarmsHeaderService.queryAlarmsHeader(null, currentPage, pageSize);
alarmsHeaders = pa.getList();
if (null != alarmsHeaders && alarmsHeaders.size() > 0) {
alarmsHeaders.forEach(a -> {
AlarmBo abo = new AlarmBo();
- if (!a.getStatus().equals("3")){
+ if (!a.getStatus().equals("3")) {
abo.setAlarmsHeader(a);
- abo.setAlarmsInformation(alarmsInformationService.queryAlarmsInformation(new AlarmsInformation(a.getEventId()),currentPage,pageSize).getList());
+ abo.setAlarmsInformation(alarmsInformationService.queryAlarmsInformation(new AlarmsInformation(a.getEventId()), currentPage, pageSize).getList());
list.add(abo);
}
});
}
}
- try {
- Map<String,Object> map = new HashMap<>();
- map.put("alarms",list);
- map.put("totalRecords",pa.getTotalRecords());
- omAlarm.setDateFormat(new SimpleDateFormat(Constant.DATE_FORMAT));
- return omAlarm.writeValueAsString(map);
- } catch (JsonProcessingException e) {
- logger.debug("JsonProcessingException :"+e.getMessage());
- return omAlarm.writeValueAsString("failed");
- }
+ Map<String, Object> map = new HashMap<>();
+ map.put("alarms", list);
+ map.put("totalRecords", pa.getTotalRecords());
+ omAlarm.setDateFormat(new SimpleDateFormat(Constant.DATE_FORMAT));
+ return omAlarm.writeValueAsString(map);
}
- @RequestMapping(value = "/alarm/statusCount",method = RequestMethod.GET , produces = "application/json")
- public String getStatusCount(){
+ @RequestMapping(value = "/alarm/statusCount", method = RequestMethod.GET, produces = "application/json")
+ public String getStatusCount() {
List<String> statusCount = new ArrayList<>();
try {
statusCount.add(alarmsHeaderService.queryStatusCount("0"));
@@ -152,41 +148,160 @@ public class AlarmController return null;
}
- @RequestMapping(value = {"/alarm/sourceId"},method = RequestMethod.GET)
- public String getSourceId(){
+ @RequestMapping(value = {"/topology/{serviceName}"}, method = RequestMethod.GET)
+ public String getTopologyData(@PathVariable String serviceName) {
+ Map<String,Object> topologyMap = new HashMap<>();
+ try {
+ topologyMap.put("name",serviceName);
+
+ List<Map<String,Object>> networkServices = (List<Map<String, Object>>) getAllVNFS().get("networkServices");
+ List<Map<String,Object>> VNFS = (List<Map<String, Object>>) getAllVNFS().get("VNFS");
+
+ List<Map<String,Object>> children = new ArrayList<>();
+ networkServices.forEach( i -> {
+ Map<String,Object> childrenMap = new HashMap<>();
+ i.forEach( (k,v) -> {
+ if (k.equals("parentService"))
+ if (v.equals(serviceName)){
+ childrenMap.put("name",i.get("nsName"));
+ List<Map<String,Object>> childrenList = new ArrayList<>();
+ VNFS.forEach( j -> {
+ Map<String,Object> childrenJMap = new HashMap<>();
+ j.forEach( (k1,v2) -> {
+ if (k1.equals("parentNS"))
+ if (v2.equals(i.get("nsName"))) {
+ childrenJMap.put("name",j.get("vnfName"));
+ childrenJMap.put("isAlarm",j.get("isAlarm"));
+ }
+ });
+ if (childrenJMap.size() > 0)
+ childrenList.add(childrenJMap);
+ });
+ if (childrenList.size() > 0) {
+ childrenMap.put("children",childrenList);
+ }
+ }
+ });
+ if (childrenMap.size() > 0) {
+ children.add(childrenMap);
+ }
+ });
+ if (children.size() > 0) {
+ topologyMap.put("children",children);
+ }
+ return omAlarm.writeValueAsString(topologyMap);
+ } catch (IOException e) {
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ @RequestMapping(value = {"/topology/services"}, method = RequestMethod.GET)
+ public String getTopologyServices() {
+ try {
+ List<Map<String,Object>> services = (List<Map<String, Object>>) getAllVNFS().get("services");
+ services.forEach( i -> {
+ i.forEach( (k,v) -> {
+ if (k.equals("ServiceName")) {
+ AlarmsHeader alarmsHeader = new AlarmsHeader();
+ alarmsHeader.setSourceId(v.toString());
+ List<AlarmsHeader> alarmsHeaderList = alarmsHeaderService.queryAlarmsHeader(alarmsHeader,1,10).getList();
+ alarmsHeaderList.forEach(alarmsHeader1 -> {
+ if (alarmsHeader1.getStatus().equals("1")) {
+ i.replace("isAlarm","true");
+ }
+ });
+ }
+ });
+ });
+ return omAlarm.writeValueAsString(services);
+ } catch (Exception e) {
+ logger.error(e.getMessage());
+ return null;
+ }
+ }
+
+ private Map<String,Object> getTopologyData() throws IOException {
+ String data = "";
+ try {
+ BufferedReader br = new BufferedReader(new FileReader("/home/uui/resources/topologyD_data.json"));
+ String tmpStr = "";
+ while ((tmpStr=br.readLine()) != null) {
+ data += tmpStr;
+ }
+ br.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ Map<String,Object> map = omAlarm.readValue(data, Map.class);
+ return map;
+ }
+
+ public Map<String,Object> getAllVNFS() throws IOException {
+ String data="";
+ try {
+ String str=null;
+ BufferedReader br = new BufferedReader(new FileReader("/home/uui/resources/topologyD_data.json"));
+ while ((str=br.readLine())!=null) {
+ data += str;
+ }
+ br.close();
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ JSONObject jsonObject = (JSONObject) JSON.parseObject(data);
+ JSONArray jsonArray = jsonObject.getJSONArray("VNFS");
+
+ for (int a=0;a<jsonArray.size();a++) {
+ JSONObject jsonObject1 = jsonArray.getJSONObject(a);
+ String vnfName = jsonObject1.getString("vnfName");
+ Boolean name = alarmsHeaderService.getStatusBySourceName(vnfName);
+ jsonObject1.put("isAlarm",name);
+ System.out.print("vnfName===="+vnfName+"name====="+name);
+ }
+
+ String jsonS = jsonObject.toJSONString();
+ System.out.print("toJSONString===="+jsonS);
+
+ Map<String,Object> map = omAlarm.readValue(jsonS, Map.class);
+ return map;
+ }
+
+
+ @RequestMapping(value = {"/alarm/sourceId"}, method = RequestMethod.GET)
+ public String getSourceId() throws JsonProcessingException {
List<String> sourceIds = new ArrayList<>();
- alarmsHeaderService.queryAlarmsHeader(new AlarmsHeader(),1,Integer.MAX_VALUE).getList().forEach( al ->{
+ alarmsHeaderService.queryAlarmsHeader(new AlarmsHeader(), 1, Integer.MAX_VALUE).getList().forEach(al -> {
if (!al.getStatus().equals("3") &&
!sourceIds.contains(al.getSourceId()))
sourceIds.add(al.getSourceId());
- } );
- try {
- return omAlarm.writeValueAsString(sourceIds);
- } catch (JsonProcessingException e) {
- e.printStackTrace();
- return "";
- }
+ });
+ return omAlarm.writeValueAsString(sourceIds);
}
- @RequestMapping(value = {"/alarm/diagram"},method = RequestMethod.POST)
- public String genDiagram(@RequestParam String sourceId,@RequestParam String startTime,@RequestParam String endTime,@RequestParam String showMode){
+ @RequestMapping(value = {"/alarm/diagram"}, method = RequestMethod.POST)
+ public String genDiagram(@RequestParam String sourceId, @RequestParam String startTime, @RequestParam String endTime, @RequestParam String showMode) {
try {
- return omAlarm.writeValueAsString(diagramDate(sourceId,startTime,endTime,showMode));
+ return omAlarm.writeValueAsString(diagramDate(sourceId, startTime, endTime, showMode));
} catch (JsonProcessingException e) {
e.printStackTrace();
return "";
}
}
- private List<List<Long>> dateProcess(String sourceId,long startTimeL,long endTimeL,long timeIteraPlusVal,long keyVal,long keyValIteraVal,String keyUnit) throws ParseException {
+ private List<List<Long>> dateProcess(String sourceId, long startTimeL, long endTimeL, long timeIteraPlusVal, long keyVal, long keyValIteraVal, String keyUnit) throws ParseException {
List<List<Long>> dataList = new ArrayList<>();
long tmpEndTimeL = startTimeL + timeIteraPlusVal;
- while (endTimeL >= tmpEndTimeL){
- List<Map<String,String>> maps = alarmsInformationService.queryDateBetween(sourceId,sdf.format(new Date(startTimeL)),sdf.format(new Date(tmpEndTimeL)));
- maps.forEach( map -> {
+ while (endTimeL >= tmpEndTimeL) {
+ List<Map<String, String>> maps = alarmsInformationService.queryDateBetween(sourceId, sdf.format(new Date(startTimeL)), sdf.format(new Date(tmpEndTimeL)));
+ maps.forEach(map -> {
try {
List<Long> longList = new ArrayList<>();
- if (map.get("Time") != null && !"".equals(map.get("Time")) && !"NULL".equals(map.get("Time")) ){
+ if (map.get("Time") != null && !"".equals(map.get("Time")) && !"NULL".equals(map.get("Time"))) {
longList.add(sdf.parse(map.get("Time")).getTime());
if (map.get("Count") != null && !"".equals(map.get("Count")))
longList.add(Long.parseLong(map.get("Count")));
@@ -199,7 +314,7 @@ public class AlarmController e.printStackTrace();
}
- } );
+ });
startTimeL += timeIteraPlusVal;
tmpEndTimeL += timeIteraPlusVal;
keyVal += keyValIteraVal;
@@ -207,40 +322,40 @@ public class AlarmController return dataList;
}
- private List<List<Long>> diagramDate(String sourceId,String startTime,String endTime,String format){
+ private List<List<Long>> diagramDate(String sourceId, String startTime, String endTime, String format) {
try {
long startTimel = sdf.parse(startTime).getTime();
long endTimel = sdf.parse(endTime).getTime();
- if (format != null && !format.equals("auto")){
- switch (format){
+ if (format != null && !format.equals("auto")) {
+ switch (format) {
case "minute":
- return dateProcess(sourceId,startTimel,endTimel,900000,15,15,"minute");
+ return dateProcess(sourceId, startTimel, endTimel, 900000, 15, 15, "minute");
case "hour":
- return dateProcess(sourceId,startTimel,endTimel,3600000,1,1,"hour");
+ return dateProcess(sourceId, startTimel, endTimel, 3600000, 1, 1, "hour");
case "day":
- return dateProcess(sourceId,startTimel,endTimel,86400000,1,1,"day");
+ return dateProcess(sourceId, startTimel, endTimel, 86400000, 1, 1, "day");
case "month":
- return dateProcess(sourceId,startTimel,endTimel,2592000000L,1,1,"month");
+ return dateProcess(sourceId, startTimel, endTimel, 2592000000L, 1, 1, "month");
case "year":
- return dateProcess(sourceId,startTimel,endTimel,31536000000L,1,1,"year");
+ return dateProcess(sourceId, startTimel, endTimel, 31536000000L, 1, 1, "year");
}
- }else if (format != null && format.equals("auto")){
+ } else if (format != null && format.equals("auto")) {
long minutes = (endTimel - startTimel) / (1000 * 60);
long hours = minutes / 60;
- if (hours > 12){
+ if (hours > 12) {
long days = hours / 24;
- if (days > 3){
+ if (days > 3) {
long months = days / 31;
- if (months > 2){
- return dateProcess(sourceId,startTimel,endTimel,86400000,1,1,"day");
- }else {
- return dateProcess(sourceId,startTimel,endTimel,2592000000L,1,1,"month");
+ if (months > 2) {
+ return dateProcess(sourceId, startTimel, endTimel, 86400000, 1, 1, "day");
+ } else {
+ return dateProcess(sourceId, startTimel, endTimel, 2592000000L, 1, 1, "month");
}
- }else {
- return dateProcess(sourceId,startTimel,endTimel,3600000,1,1,"hour");
+ } else {
+ return dateProcess(sourceId, startTimel, endTimel, 3600000, 1, 1, "hour");
}
- }else {
- return dateProcess(sourceId,startTimel,endTimel,900000,15,15,"minute");
+ } else {
+ return dateProcess(sourceId, startTimel, endTimel, 900000, 15, 15, "minute");
}
}
} catch (ParseException e) {
diff --git a/server/src/main/java/org/onap/usecaseui/server/controller/PerformanceController.java b/server/src/main/java/org/onap/usecaseui/server/controller/PerformanceController.java index f534264b..eeddf6c2 100755 --- a/server/src/main/java/org/onap/usecaseui/server/controller/PerformanceController.java +++ b/server/src/main/java/org/onap/usecaseui/server/controller/PerformanceController.java @@ -120,16 +120,11 @@ public class PerformanceController { list.add(pbo); }); } - try { - Map<String, Object> map = new HashMap<>(); - map.put("performances", list); - map.put("totalRecords", pa.getTotalRecords()); - omPerformance.setDateFormat(new SimpleDateFormat(Constant.DATE_FORMAT)); - return omPerformance.writeValueAsString(map); - } catch (JsonProcessingException e) { - logger.error("JsonProcessingException" + e.getMessage()); - return omPerformance.writeValueAsString("failed"); - } + Map<String, Object> map = new HashMap<>(); + map.put("performances", list); + map.put("totalRecords", pa.getTotalRecords()); + omPerformance.setDateFormat(new SimpleDateFormat(Constant.DATE_FORMAT)); + return omPerformance.writeValueAsString(map); } /*@RequestMapping(value = {"/performance/genCsv/{eventId}"}, method = RequestMethod.GET, produces = "application/json") @@ -198,10 +193,7 @@ public class PerformanceController { @RequestMapping(value = {"/performance/diagram"}, method = RequestMethod.POST, produces = "application/json") public String generateDiagram(@RequestParam String sourceId, @RequestParam String startTime, @RequestParam String endTime, @RequestParam String nameParent, @RequestParam String format) { try { - return omPerformance.writeValueAsString(diagramDate(sourceId,nameParent,startTime,endTime,format)); - } catch (JsonProcessingException e) { - logger.error("JsonProcessingException:" + e.getMessage()); - return null; + return omPerformance.writeValueAsString(diagramDate(sourceId, nameParent, startTime, endTime, format)); } catch (Exception e) { logger.error(e.getMessage()); e.printStackTrace(); @@ -213,14 +205,14 @@ public class PerformanceController { public String getSourceIds() { List<String> sourceIds = new ArrayList<>(); try { - performanceHeaderService.queryAllSourceId().forEach( ph -> { + performanceHeaderService.queryAllSourceId().forEach(ph -> { if (!sourceIds.contains(ph)) sourceIds.add(ph); - } ); + }); return omPerformance.writeValueAsString(sourceIds); - } catch (JsonProcessingException e) { + } catch (Exception e) { logger.error(e.getMessage()); - return ""; + return null; } } @@ -235,21 +227,21 @@ public class PerformanceController { }); return omPerformance.writeValueAsString(names); - } catch (JsonProcessingException e) { + } catch (Exception e) { logger.error(e.getMessage()); return ""; } } - private List<List<Long>> dateProcess(String sourceId,String name,long startTimeL,long endTimeL,long timeIteraPlusVal,long keyVal,long keyValIteraVal,String keyUnit) throws ParseException { + private List<List<Long>> dateProcess(String sourceId, String name, long startTimeL, long endTimeL, long timeIteraPlusVal, long keyVal, long keyValIteraVal, String keyUnit) throws ParseException { List<List<Long>> dataList = new ArrayList<>(); long tmpEndTimeL = startTimeL + timeIteraPlusVal; - while (endTimeL >= tmpEndTimeL){ - List<Map<String,String>> maps = performanceInformationService.queryMaxValueByBetweenDate(sourceId,name,sdf.format(new Date(startTimeL)),sdf.format(new Date(tmpEndTimeL))); - maps.forEach( map -> { + while (endTimeL >= tmpEndTimeL) { + List<Map<String, String>> maps = performanceInformationService.queryMaxValueByBetweenDate(sourceId, name, sdf.format(new Date(startTimeL)), sdf.format(new Date(tmpEndTimeL))); + maps.forEach(map -> { try { List<Long> longList = new ArrayList<>(); - if (map.get("Time") != null && !"".equals(map.get("Time")) && !"NULL".equals(map.get("Time")) ){ + if (map.get("Time") != null && !"".equals(map.get("Time")) && !"NULL".equals(map.get("Time"))) { longList.add(sdf.parse(map.get("Time")).getTime()); if (map.get("Max") != null && !"".equals(map.get("Max"))) longList.add(Long.parseLong(map.get("Max"))); @@ -269,40 +261,40 @@ public class PerformanceController { return dataList; } - private List<List<Long>> diagramDate(String sourceId,String name,String startTime,String endTime,String format){ + private List<List<Long>> diagramDate(String sourceId, String name, String startTime, String endTime, String format) { try { long startTimel = sdf.parse(startTime).getTime(); long endTimel = sdf.parse(endTime).getTime(); - if (format != null && !format.equals("auto")){ - switch (format){ + if (format != null && !format.equals("auto")) { + switch (format) { case "minute": - return dateProcess(sourceId,name,startTimel,endTimel,900000,15,15,"minute"); + return dateProcess(sourceId, name, startTimel, endTimel, 900000, 15, 15, "minute"); case "hour": - return dateProcess(sourceId,name,startTimel,endTimel,3600000,1,1,"hour"); + return dateProcess(sourceId, name, startTimel, endTimel, 3600000, 1, 1, "hour"); case "day": - return dateProcess(sourceId,name,startTimel,endTimel,86400000,1,1,"day"); + return dateProcess(sourceId, name, startTimel, endTimel, 86400000, 1, 1, "day"); case "month": - return dateProcess(sourceId,name,startTimel,endTimel,2592000000L,1,1,"month"); + return dateProcess(sourceId, name, startTimel, endTimel, 2592000000L, 1, 1, "month"); case "year": - return dateProcess(sourceId,name,startTimel,endTimel,31536000000L,1,1,"year"); + return dateProcess(sourceId, name, startTimel, endTimel, 31536000000L, 1, 1, "year"); } - }else if (format != null && format.equals("auto")){ + } else if (format != null && format.equals("auto")) { long minutes = (endTimel - startTimel) / (1000 * 60); long hours = minutes / 60; - if (hours > 12){ + if (hours > 12) { long days = hours / 24; - if (days > 3){ + if (days > 3) { long months = days / 31; - if (months > 2){ - return dateProcess(sourceId,name,startTimel,endTimel,86400000,1,1,"day"); - }else { - return dateProcess(sourceId,name,startTimel,endTimel,2592000000L,1,1,"month"); + if (months > 2) { + return dateProcess(sourceId, name, startTimel, endTimel, 86400000, 1, 1, "day"); + } else { + return dateProcess(sourceId, name, startTimel, endTimel, 2592000000L, 1, 1, "month"); } - }else { - return dateProcess(sourceId,name,startTimel,endTimel,3600000,1,1,"hour"); + } else { + return dateProcess(sourceId, name, startTimel, endTimel, 3600000, 1, 1, "hour"); } - }else { - return dateProcess(sourceId,name,startTimel,endTimel,900000,15,15,"minute"); + } else { + return dateProcess(sourceId, name, startTimel, endTimel, 900000, 15, 15, "minute"); } } } catch (ParseException e) { diff --git a/server/src/main/java/org/onap/usecaseui/server/service/AlarmsHeaderService.java b/server/src/main/java/org/onap/usecaseui/server/service/AlarmsHeaderService.java index b487f2b4..8d488d1f 100644 --- a/server/src/main/java/org/onap/usecaseui/server/service/AlarmsHeaderService.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/AlarmsHeaderService.java @@ -16,6 +16,7 @@ package org.onap.usecaseui.server.service; +import java.util.Date; import java.util.List; import org.onap.usecaseui.server.bean.AlarmsHeader; @@ -26,7 +27,10 @@ public interface AlarmsHeaderService { String saveAlarmsHeader(AlarmsHeader alarmsHeader); String updateAlarmsHeader(AlarmsHeader alarmsHeader); - + + public String updateAlarmsHeader2018(String status, String date, String eventNameCleared,String eventName, String reportingEntityName,String specificProblem); + + public Boolean getStatusBySourceName(String sourceName); int getAllCount(AlarmsHeader alarmsHeader, int currentPage, int pageSize); Page<AlarmsHeader> queryAlarmsHeader(AlarmsHeader alarmsHeader, int currentPage, int pageSize); diff --git a/server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java b/server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java index 17886074..43413d07 100755 --- a/server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java +++ b/server/src/main/java/org/onap/usecaseui/server/service/impl/AlarmsHeaderServiceImpl.java @@ -67,7 +67,44 @@ public class AlarmsHeaderServiceImpl implements AlarmsHeaderService { }
}
-
+
+ @Override
+ public String updateAlarmsHeader2018(String status, String date,String eventNameCleared,String eventName, String reportingEntityName,String specificProblem) {
+
+ try(Session session = sessionFactory.getCurrentSession();){
+ logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}");
+ session.beginTransaction();
+ Query q=session.createQuery("update AlarmsHeader set status='"+status+"', eventName='"+eventNameCleared+"',updateTime='"+date+"' where eventName='"+eventName+"' and reportingEntityName='"+reportingEntityName+"' and specificProblem ='"+specificProblem+"' ");
+ q.executeUpdate();
+ session.getTransaction().commit();
+ session.flush();
+ return "1";
+ } catch (Exception e) {
+ logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());
+ return "0";
+ }
+ }
+
+ @Override
+ public Boolean getStatusBySourceName(String sourceName) {
+ try(Session session = sessionFactory.openSession()){
+ logger.info("AlarmsInformationServiceImpl updateAlarmsInformation: alarmsInformation={}");
+ Query q=session.createQuery("select status from AlarmsHeader where sourceName='"+sourceName+"'");
+ String s=(String)q.uniqueResult();
+ Boolean status=false;
+ if(s!=null && "active".equals(s)){
+ status = true;
+ }else{
+ status = false;
+ }
+ session.flush();
+ return status;
+ } catch (Exception e) {
+ logger.error("exception occurred while performing AlarmsInformationServiceImpl updateAlarmsInformation. Details:" + e.getMessage());
+ return false;
+ }
+ }
+
@Override
public String updateAlarmsHeader(AlarmsHeader alarmsHeader) {
diff --git a/server/src/main/java/org/onap/usecaseui/server/util/DateUtils.java b/server/src/main/java/org/onap/usecaseui/server/util/DateUtils.java index f4ac5263..a1d0e75d 100755 --- a/server/src/main/java/org/onap/usecaseui/server/util/DateUtils.java +++ b/server/src/main/java/org/onap/usecaseui/server/util/DateUtils.java @@ -25,6 +25,7 @@ import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; public class DateUtils { @@ -91,4 +92,54 @@ public class DateUtils { return new SimpleDateFormat(Constant.DATE_FORMAT).parse(dateToString(new Date())); } + public String getYearMonthDayHourMinuteSecond(long timeMillis) { + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); + calendar.setTimeInMillis(timeMillis); + int year=calendar.get(Calendar.YEAR); + + int month=calendar.get(Calendar.MONTH) + 1; + String mToMonth=null; + if (String.valueOf(month).length()==1) { + mToMonth="0"+month; + } else { + mToMonth=String.valueOf(month); + } + + int day=calendar.get(Calendar.DAY_OF_MONTH); + String dToDay=null; + if (String.valueOf(day).length()==1) { + dToDay="0"+day; + } else { + dToDay=String.valueOf(day); + } + + int hour=calendar.get(Calendar.HOUR_OF_DAY); + String hToHour=null; + if (String.valueOf(hour).length()==1) { + hToHour="0"+hour; + } else { + hToHour=String.valueOf(hour); + } + + int minute=calendar.get(Calendar.MINUTE); + String mToMinute=null; + if (String.valueOf(minute).length()==1) { + mToMinute="0"+minute; + } else { + mToMinute=String.valueOf(minute); + } + + int second=calendar.get(Calendar.SECOND); + String sToSecond=null; + if (String.valueOf(second).length()==1) { + sToSecond="0"+second; + } else { + sToSecond=String.valueOf(second); + } + return year+ "-" +mToMonth+ "-" +dToDay+ " "+hToHour+ ":" +mToMinute+ ":" +sToSecond; + } + + public static void main(String[] args) { + System.out.println(new DateUtils().getYearMonthDayHourMinuteSecond(System.currentTimeMillis())); + } } diff --git a/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java b/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java index 7ae9e414..0632ed30 100644 --- a/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java +++ b/server/src/main/java/org/onap/usecaseui/server/util/DmaapSubscriber.java @@ -39,6 +39,8 @@ import java.io.IOException; import java.io.InputStream; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; @Component @@ -202,16 +204,7 @@ public class DmaapSubscriber implements Runnable { try { List<Map<String, Object>> m = (List<Map<String, Object>>) v3; m.forEach(i -> { - if (i.get("name").toString().equals("eventTime")) - try { - alarm_header.setCreateTime(DateUtils.stringToDate(i.get("value").toString())); - alarm_header.setUpdateTime(DateUtils.now()); - } catch (ParseException e) { - e.printStackTrace(); - } - else { - alarm_informations.add(new AlarmsInformation(i.get("name").toString(), i.get("value").toString(), alarm_header.getSourceId(), null, new Date())); - } + alarm_informations.add(new AlarmsInformation(i.get("name").toString(), i.get("value").toString(), alarm_header.getSourceId(), new Date(), null)); }); } catch (Exception e) { e.printStackTrace(); @@ -222,38 +215,45 @@ public class DmaapSubscriber implements Runnable { } }); - if (alarm_header.getEventName() != null && alarm_informations.size() > 0){ + if (alarm_header.getEventName() != null){ alarm_informations.forEach(ai -> { ai.setCreateTime(alarm_header.getCreateTime()); ai.setUpdateTime(new Date()); }); + + Long startEpochMicrosec_s = Long.parseLong(alarm_header.getStartEpochMicrosec()); + String date_get = new DateUtils().getYearMonthDayHourMinuteSecond(startEpochMicrosec_s); + if (alarm_header.getEventName().contains("Cleared")) { - alarm_header.setStatus("3"); + alarm_header.setStatus("close"); logger.info("alarmCleared data header insert is starting......"); - alarmsHeaderService.saveAlarmsHeader(alarm_header); + alarmsHeaderService.updateAlarmsHeader2018("close",date_get,alarm_header.getEventName(),alarm_header.getEventName().replace("Cleared",""),alarm_header.getReportingEntityName(),alarm_header.getSpecificProblem()); logger.info("alarmCleared data header insert has finished."); logger.info("alarmCleared data detail insert is starting......"); alarm_informations.forEach(information -> - alarmsInformationService.saveAlarmsInformation(information)); + alarmsInformationService.saveAlarmsInformation(information)); + logger.info("alarmCleared data detail insert has finished. " + alarm_informations.size() + " records have been inserted."); AlarmsHeader header1 = new AlarmsHeader(); header1.setEventName(alarm_header.getEventName().substring(0, alarm_header.getEventName().indexOf("Cleared"))); List<AlarmsHeader> alarmsHeaders = alarmsHeaderService.queryAlarmsHeader(header1, 1, 10).getList(); alarmsHeaders.forEach(alarms -> { alarms.setStatus("2"); - alarms.setUpdateTime(new Date()); + alarms.setUpdateTime(alarm_header.getCreateTime()); alarmsHeaderService.updateAlarmsHeader(alarms); }); } else { - alarm_header.setUpdateTime(new Date()); - alarm_header.setStatus("1"); + alarm_header.setCreateTime(new Date()); + alarm_header.setStatus("active"); logger.info("alarm data header insert is starting......"); alarmsHeaderService.saveAlarmsHeader(alarm_header); logger.info("alarm data header insert has finished."); logger.info("alarm data detail insert is starting......"); - alarm_informations.forEach(information -> - alarmsInformationService.saveAlarmsInformation(information)); - logger.info("alarm data detail insert has finished. " + alarm_informations.size() + " records have been inserted."); + if(alarm_informations.size() > 0) { + alarm_informations.forEach(information -> + alarmsInformationService.saveAlarmsInformation(information)); + logger.info("alarm data detail insert has finished. " + alarm_informations.size() + " records have been inserted."); + } } } } @@ -305,29 +305,29 @@ public class DmaapSubscriber implements Runnable { try { List<Map<String, Object>> m = (List<Map<String, Object>>) v3; m.forEach(i -> { - if (i.containsKey("arrayOfFields")){ - List<Map<String,String>> arrayOfFields = (List<Map<String, String>>) i.get("arrayOfFields"); - arrayOfFields.forEach( fields -> { - if (fields.get("name").equals("StartTime")){ - try { - performance_informations.add(new PerformanceInformation(fields.get("name"),fields.get("value"),performance_header.getSourceId(),null,DateUtils.now())); - performance_header.setCreateTime(DateUtils.stringToDate(fields.get("value").replaceAll(Constant.RegEX_DATE_FORMAT," "))); - performance_header.setUpdateTime(DateUtils.now()); - } catch (ParseException e) { - e.printStackTrace(); - } - }else{ - try { - performance_informations.add(new PerformanceInformation(fields.get("name"),fields.get("value"),performance_header.getSourceId(),null,DateUtils.now())); - } catch (ParseException e) { - e.printStackTrace(); + i.forEach( (k,v) -> { + if (k.equals("arrayOfFields")){ + List<Map<String,String>> arrayOfFields = (List<Map<String, String>>) v; + arrayOfFields.forEach( fields -> { + if (fields.get("name").equals("StartTime")){ + try { + performance_informations.add(new PerformanceInformation(fields.get("name"),fields.get("value"),performance_header.getSourceId(),null,DateUtils.now())); + performance_header.setCreateTime(DateUtils.stringToDate(fields.get("value").replaceAll(Constant.RegEX_DATE_FORMAT," "))); + performance_header.setUpdateTime(DateUtils.now()); + } catch (ParseException e) { + e.printStackTrace(); + } + }else{ + try { + performance_informations.add(new PerformanceInformation(fields.get("name"),fields.get("value"),performance_header.getSourceId(),null,DateUtils.now())); + } catch (ParseException e) { + e.printStackTrace(); + } } - } - } ); - } - + } ); + } + }); }); - } catch (Exception e) { e.printStackTrace(); logger.error("convert performanceAdditionalInformation error:" + e.getMessage()); diff --git a/standalone/src/main/assembly/resources/topologyD_data.json b/standalone/src/main/assembly/resources/topologyD_data.json new file mode 100644 index 00000000..b945ae3a --- /dev/null +++ b/standalone/src/main/assembly/resources/topologyD_data.json @@ -0,0 +1,21 @@ +{ + "services":[ + {"ServiceName":"VoLTE"}, + {"ServiceName":"VoLTE_1"} + ], + "networkServices":[ + {"nsName":"ns1","parentService":"VoLTE"}, + {"nsName":"ns2","parentService":"VoLTE"}, + {"nsName":"ns3","parentService":"VoLTE"} + ], + "VNFS":[ + {"vnfName":"vnf_a_1","parentNS":"ns1"}, + {"vnfName":"vnf_a_2","parentNS":"ns1"}, + {"vnfName":"vnf_a_3","parentNS":"ns1"}, + {"vnfName":"vnf_b_1","parentNS":"ns2"}, + {"vnfName":"vnf_b_2","parentNS":"ns2"}, + {"vnfName":"vnf_b_3","parentNS":"ns2"}, + {"vnfName":"vnf_c_1","parentNS":"ns3"}, + {"vnfName":"vnf_c_1","parentNS":"ns3"} + ] +}
\ No newline at end of file |