package com.cloudera.sa.node360.model; import org.apache.commons.lang.StringUtils; /** * Created by ted.malaska on 6/8/15. */ public class RulePojo implements java.io.Serializable{ String ruleId; String sourcePort; String destinationPort; String destinationIp; public RulePojo(String ruleId, String sourcePort, String destinationPort, String destinationIp) { this.ruleId = ruleId; this.sourcePort = sourcePort; this.destinationPort = destinationPort; this.destinationIp = destinationIp; if (this.sourcePort == null || this.sourcePort.equals("null")) {this.sourcePort = null;} if (this.destinationPort == null || this.destinationPort.equals("null")) {this.destinationPort = null;} if (this.destinationIp == null || this.destinationIp.equals("null")) {this.destinationIp = null;} } public RulePojo(String ruleId, String value) { this.ruleId = ruleId; String[] parts = StringUtils.splitByWholeSeparatorPreserveAllTokens(value, ","); sourcePort = parts[0]; if (sourcePort.isEmpty() || sourcePort.equals("null")) {sourcePort = "";} destinationPort = parts[1]; if (destinationPort.isEmpty() || destinationPort.equals("null")) {destinationPort = "";} destinationIp = parts[2]; if (destinationIp.isEmpty() || destinationIp.equals("null")) {destinationIp = "";} } public String getRuleId() { return ruleId; } public void setRuleId(String ruleId) { this.ruleId = ruleId; } public String getSourcePort() { return sourcePort; } public void setSourcePort(String sourcePort) { this.sourcePort = sourcePort; } public String getDestinationPort() { return destinationPort; } public void setDestinationPort(String destinationPort) { this.destinationPort = destinationPort; } public String getDestinationIp() { return destinationIp; } public void setDestinationIp(String destinationIp) { this.destinationIp = destinationIp; } public String toString() { return sourcePort + "," + destinationPort + "," + destinationIp; } public String toPrettyString() { return "RulePojo{" + "ruleId=" + ruleId + "sourcePort=" + sourcePort + ", destinationPort=" + destinationPort + ", destinationIp=" + destinationIp + '}'; } public NotificationPojo runRule(String node, long timeStamp, String group, NetFlowPojo netFlowPojo) { boolean fireNotification = true; if (!sourcePort.isEmpty()) { if (!sourcePort.equals(netFlowPojo.getSourcePort())) { return null; } } if (!destinationPort.isEmpty()) { if (!destinationPort.equals(netFlowPojo.getDestinationPort())) { return null; } } if (!destinationIp.isEmpty()) { if (!destinationIp.equals(netFlowPojo.getDestinationAddress())) { return null; } } if (fireNotification) { return new NotificationPojo(System.currentTimeMillis(), "node: " + node + " " + this.toPrettyString() + " - " + netFlowPojo.toString(), System.currentTimeMillis() - timeStamp); } else { return null; } } }