ScanInfo.java 4.18 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
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<HostDto> 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;
    }

}