package adt.mainnode.entity; import java.text.ParseException; import adt.mainnode.dto.ScanInfoDto; import adt.mainnode.dto.HostDto; import adt.mainnode.identity.ScanInfoIdentity; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonIgnore; import lombok.extern.slf4j.Slf4j; import lombok.Data; //import org.springframework.util.DigestUtils; import org.apache.commons.codec.digest.DigestUtils; import javax.persistence.Entity; import javax.persistence.Transient; import javax.persistence.Id; import javax.persistence.IdClass; import java.util.Date; import java.text.SimpleDateFormat; import java.util.List; import org.apache.commons.lang3.time.DateUtils; @Data @Entity @IdClass(ScanInfoIdentity.class) @Slf4j public class ScanInfo { @Id @JsonProperty("vlan_id") String vlanName; @Id @JsonIgnore @JsonProperty("snapshot_id") String snapshotId; @JsonProperty("node_ip_address") String nodeIp; @JsonProperty("timestamp_dist_node_scan_start") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") Date iniTimestampScan; @JsonProperty("timestamp_dist_node_scan_end") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") Date endTimestampScan; @JsonProperty("timestamp_main_node") @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss") Date mainNode_timestamp; // Main node's timestamp of receipt @Transient @JsonProperty("devices") List host; @JsonProperty("mac_address") private String macAddress; public static ScanInfo createScanInfo(ScanInfoIdentity scanInfoIdentity, ScanInfoDto scanInfoDto) {//String vlanName, String nodeIp, Date iniTimestampScan, Date endTimestampScan) { ScanInfo scanInfo = new ScanInfo(); scanInfo.setVlanName(scanInfoIdentity.getVlanName()); scanInfo.setSnapshotId(scanInfoIdentity.getSnapshotId()); scanInfo.setNodeIp(scanInfoDto.getNodeIp()); scanInfo.setIniTimestampScan(scanInfoDto.getIniTimestampScan()); scanInfo.setEndTimestampScan(scanInfoDto.getEndTimestampScan()); scanInfo.setMainNode_timestamp(scanInfoDto.getMainNode_timestamp());//new Date()); /* String generatedHash = DigestUtils.md5Hex( DigestUtils.md5Hex(scanInfo.getMainNode_timestamp().toString()) + DigestUtils.md5Hex(scanInfo.getIniTimestampScan().toString()) + DigestUtils.md5Hex(scanInfo.getEndTimestampScan().toString()) ); */ scanInfo.setHost(scanInfoDto.getHost()); //log.info("Generated hash code for a snapshot ID: {}", generatedHash); return scanInfo; } public static ScanInfo createScanInfo(ScanInfoIdentity scanInfoIdentity, String nodeIp, String iniTimestampScan, String endTimestampScan, Date mainNodeTimestamp) {//String vlanName, String nodeIp, Date iniTimestampScan, Date endTimestampScan) { SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); ScanInfo scanInfo = new ScanInfo(); scanInfo.setVlanName(scanInfoIdentity.getVlanName()); scanInfo.setSnapshotId(scanInfoIdentity.getSnapshotId()); scanInfo.setNodeIp(nodeIp); iniTimestampScan = iniTimestampScan.replace("b", ""); iniTimestampScan = iniTimestampScan.replace("'", ""); endTimestampScan = endTimestampScan.replace("b", ""); endTimestampScan = endTimestampScan.replace("'", ""); try { Date date1 = DateUtils.parseDate(iniTimestampScan, "yyyy-MM-dd HH:mm:ss"); Date date2 = DateUtils.parseDate(endTimestampScan, "yyyy-MM-dd HH:mm:ss"); scanInfo.setIniTimestampScan(date1); scanInfo.setEndTimestampScan(date2); }catch(ParseException p){ log.error("{}",p); } scanInfo.setMainNode_timestamp(mainNodeTimestamp);//new Date()); /* String generatedHash = DigestUtils.md5Hex( DigestUtils.md5Hex(scanInfo.getMainNode_timestamp().toString()) + DigestUtils.md5Hex(scanInfo.getIniTimestampScan().toString()) + DigestUtils.md5Hex(scanInfo.getEndTimestampScan().toString()) ); */ //scanInfo.setHost(scanInfoDto.getHost()); //log.info("Generated hash code for a snapshot ID: {}", generatedHash); return scanInfo; } }