package com.nvarghese.beowulf.common.scan.model;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.google.code.morphia.annotations.Entity;
import com.google.code.morphia.annotations.PrePersist;
import com.google.code.morphia.annotations.Reference;
import com.google.code.morphia.annotations.Transient;
import com.nvarghese.beowulf.common.model.AbstractDocument;
@Entity("webscans")
public class WebScanDocument extends AbstractDocument {
private String bwControllerIPAddress;
private int bwControllerPort;
/* Scan status copied from masterscan status */
private String scanPhase;
private String restoreScanPhase;
private boolean scanRunning;
private boolean scanJobsInProgress;
private boolean abortRequested;
private String abortingReason;
private int abortReasonId;
private boolean pauseRequested;
private String pausingReason;
private int pauseReasonId;
private boolean resumeRequested;
private String resumeReason;
private int resumeReasonId;
private List<String> baseUris;
private Date estimatedTime;
private Date scanStartTime;
private Date scanEndTime;
@Reference
private MasterScanConfigDocument scanConfig;
@Reference
private MasterScanReportDocument scanReport;
private long createdCategorizationJobs;
private long completedCategorizationJobs;
private long erroredCategorizationJobs;
private long pendingCategorizationJobs;
private long createdExecutionJobs;
private long completedExecutionJobs;
private long erroredExecutionJobs;
private long pendingExecutionJobs;
private int percentageDone;
private String txnDbName;
// @Reference
// private ScanReportDocument reportDocument;
private List<String> comments;
private String lastError;
@Transient
static Logger logger = LoggerFactory.getLogger(WebScanDocument.class);
public WebScanDocument() {
super();
setCreatedOn(new Date());
comments = new ArrayList<String>();
baseUris = new ArrayList<String>();
txnDbName = "";
abortRequested = false;
scanRunning = false;
scanJobsInProgress = false;
scanPhase = "";
scanStartTime = new Date(0);
scanEndTime = new Date(0);
estimatedTime = new Date(0);
createdCategorizationJobs = 0;
completedCategorizationJobs = 0;
erroredCategorizationJobs = 0;
pendingCategorizationJobs = 0;
createdExecutionJobs = 0;
completedExecutionJobs = 0;
erroredExecutionJobs = 0;
pendingExecutionJobs = 0;
percentageDone = 0;
lastError = "";
setAbortingReason("");
}
@PrePersist
void prePersist() {
setLastUpdated(new Date());
}
public String getBwControllerIPAddress() {
return bwControllerIPAddress;
}
public void setBwControllerIPAddress(String bwControllerIPAddress) {
this.bwControllerIPAddress = bwControllerIPAddress;
}
public int getBwControllerPort() {
return bwControllerPort;
}
public void setBwControllerPort(int bwControllerPort) {
this.bwControllerPort = bwControllerPort;
}
public boolean isAbortRequested() {
return abortRequested;
}
public void setAbortRequested(boolean isAbortRequested) {
this.abortRequested = isAbortRequested;
}
public int getAbortReasonId() {
return abortReasonId;
}
public void setAbortReasonId(int abortReasonId) {
this.abortReasonId = abortReasonId;
}
public boolean isScanRunning() {
return scanRunning;
}
public boolean isResumeRequested() {
return resumeRequested;
}
public void setResumeRequested(boolean resumeRequested) {
this.resumeRequested = resumeRequested;
}
public String getResumeReason() {
return resumeReason;
}
public void setResumeReason(String resumeReason) {
this.resumeReason = resumeReason;
}
public int getResumeReasonId() {
return resumeReasonId;
}
public void setResumeReasonId(int resumeReasonId) {
this.resumeReasonId = resumeReasonId;
}
public void setScanRunning(boolean scanRunning) {
this.scanRunning = scanRunning;
}
public boolean isScanJobsInProgress() {
return scanJobsInProgress;
}
public void setScanJobsInProgress(boolean scanJobsInProgress) {
this.scanJobsInProgress = scanJobsInProgress;
}
public String getRestoreScanPhase() {
return restoreScanPhase;
}
public void setRestoreScanPhase(String restoreScanPhase) {
this.restoreScanPhase = restoreScanPhase;
}
public String getScanPhase() {
return scanPhase;
}
public void setScanPhase(String scanPhase) {
this.scanPhase = scanPhase;
}
public Date getEstimatedTime() {
return estimatedTime;
}
public void setEstimatedTime(Date estimatedTime) {
this.estimatedTime = estimatedTime;
}
public Date getScanStartTime() {
return scanStartTime;
}
public void setScanStartTime(Date scanStartTime) {
this.scanStartTime = scanStartTime;
}
public Date getScanEndTime() {
return scanEndTime;
}
public void setScanEndTime(Date scanEndTime) {
this.scanEndTime = scanEndTime;
}
public MasterScanConfigDocument getScanConfig() {
return scanConfig;
}
public void setScanConfig(MasterScanConfigDocument scanConfig) {
this.scanConfig = scanConfig;
}
public MasterScanReportDocument getScanReport() {
return scanReport;
}
public void setScanReport(MasterScanReportDocument scanReport) {
this.scanReport = scanReport;
}
public long getCreatedCategorizationJobs() {
return createdCategorizationJobs;
}
public void setCreatedCategorizationJobs(long createdCategorizationJobs) {
this.createdCategorizationJobs = createdCategorizationJobs;
}
public long getCompletedCategorizationJobs() {
return completedCategorizationJobs;
}
public void setCompletedCategorizationJobs(long completedCategorizationJobs) {
this.completedCategorizationJobs = completedCategorizationJobs;
}
public long getErroredCategorizationJobs() {
return erroredCategorizationJobs;
}
public void setErroredCategorizationJobs(long erroredCategorizationJobs) {
this.erroredCategorizationJobs = erroredCategorizationJobs;
}
public long getPendingCategorizationJobs() {
return pendingCategorizationJobs;
}
public void setPendingCategorizationJobs(long pendingCategorizationJobs) {
this.pendingCategorizationJobs = pendingCategorizationJobs;
}
public long getCreatedExecutionJobs() {
return createdExecutionJobs;
}
public void setCreatedExecutionJobs(long createdExecutionJobs) {
this.createdExecutionJobs = createdExecutionJobs;
}
public long getCompletedExecutionJobs() {
return completedExecutionJobs;
}
public void setCompletedExecutionJobs(long completedExecutionJobs) {
this.completedExecutionJobs = completedExecutionJobs;
}
public long getErroredExecutionJobs() {
return erroredExecutionJobs;
}
public void setErroredExecutionJobs(long erroredExecutionJobs) {
this.erroredExecutionJobs = erroredExecutionJobs;
}
public long getPendingExecutionJobs() {
return pendingExecutionJobs;
}
public void setPendingExecutionJobs(long pendingExecutionJobs) {
this.pendingExecutionJobs = pendingExecutionJobs;
}
public int getPercentageDone() {
return percentageDone;
}
public void setPercentageDone(int percentageDone) {
this.percentageDone = percentageDone;
}
public List<String> getComments() {
return comments;
}
public void setComments(List<String> logs) {
this.comments = logs;
}
public String getLastError() {
return lastError;
}
public void setLastError(String lastError) {
this.lastError = lastError;
}
public List<String> getBaseUris() {
return baseUris;
}
public void setBaseUris(List<String> baseUris) {
this.baseUris = baseUris;
}
public void addComment(String message) {
comments.add(new Date() + ": " + message);
}
public void setAbortingReason(String abortingReason) {
this.abortingReason = abortingReason;
}
public String getAbortingReason() {
return abortingReason;
}
public void setPauseRequested(boolean pauseRequested) {
this.pauseRequested = pauseRequested;
}
public boolean isPauseRequested() {
return pauseRequested;
}
public void setPausingReason(String pausingReason) {
this.pausingReason = pausingReason;
}
public String getPausingReason() {
return pausingReason;
}
public void setPauseReasonId(int pauseReasonId) {
this.pauseReasonId = pauseReasonId;
}
public int getPauseReasonId() {
return pauseReasonId;
}
public String getTxnDbName() {
return txnDbName;
}
public void setTxnDbName(String txnDbName) {
this.txnDbName = txnDbName;
}
}