diff options
author | Henri Herscher <henri@oreka.org> | 2006-03-02 16:16:44 +0000 |
---|---|---|
committer | Henri Herscher <henri@oreka.org> | 2006-03-02 16:16:44 +0000 |
commit | 5c71b9542c24ff132c2c67c6ffe4a6a5bc43746c (patch) | |
tree | 6d927f2b6e7495126c3080265c7b6f6e77e78a42 | |
parent | 6d301a8dadf98464952912db2646e68df15b347f (diff) |
OrkTrack can now ask for tapes to be deleted
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@190 09dcff7a-b715-0410-9601-b79a96267cd0
3 files changed, 57 insertions, 9 deletions
diff --git a/orktrack/src/net/sf/oreka/orktrack/TapeManager.java b/orktrack/src/net/sf/oreka/orktrack/TapeManager.java index 21544bf..66e15ae 100644 --- a/orktrack/src/net/sf/oreka/orktrack/TapeManager.java +++ b/orktrack/src/net/sf/oreka/orktrack/TapeManager.java @@ -27,8 +27,15 @@ public class TapeManager { return tapeManager; } - - public void notifyTapeMessage(TapeMessage tapeMessage, Session hbnSession, Service srv) { + /** + * @param tapeMessage + * @param hbnSession + * @param srv + * @return false if the tape is rejected and should be deleted, otherwise true + */ + public boolean notifyTapeMessage(TapeMessage tapeMessage, Session hbnSession, Service srv) { + + boolean keepTape = true; if (tapeMessage.getStage() == TapeMessage.CaptureStage.START) { ; // tape start message @@ -71,8 +78,10 @@ public class TapeManager { logger.info("Written segment:" + tapeMessage.getRecId() + " as " + recSegment.getId()); } else { - logger.info("Tape:" + tapeMessage.getRecId() + " generates no segment"); + logger.info("Tape:" + tapeMessage.getRecId() + " not retained by any program"); + keepTape = false; } } + return keepTape; } } diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java b/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java index 0db99d7..aede055 100644 --- a/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java +++ b/orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java @@ -34,7 +34,7 @@ public class TapeMessage extends SyncMessage { public enum CaptureStage {START , STOP, COMPLETE, UNKN}; - Logger log = null; + static Logger logger = Logger.getLogger(TapeMessage.class); CaptureStage stage = CaptureStage.UNKN; int timestamp = 0; @@ -57,7 +57,6 @@ public class TapeMessage extends SyncMessage { String dstMac = ""; public TapeMessage() { - log = LogManager.getInstance().getPortLogger(); } public String getService() { @@ -71,7 +70,7 @@ public class TapeMessage extends SyncMessage { @Override public AsyncMessage process() { - SimpleResponseMessage response = new SimpleResponseMessage(); + TapeResponse response = new TapeResponse(); Session session = null; Transaction tx = null; @@ -80,19 +79,22 @@ public class TapeMessage extends SyncMessage { tx = session.beginTransaction(); SingleLineSerializer ser = new SingleLineSerializer(); - log.info("Message: " + ser.serialize(this)); + logger.info("Message: " + ser.serialize(this)); Service service = ServiceManager.retrieveOrCreate(this.service, this.getHostname(), session); //Port port = PortManager.instance().getAndCreatePort(this.getCapturePort(), session, service); //port.notifyTapeMessage(this, session, service); - TapeManager.instance().notifyTapeMessage(this, session, service); + if (TapeManager.instance().notifyTapeMessage(this, session, service) == false) { + response.setDeleteTape(true); + logger.debug("Tape deletion requested:" + this.getFilename()); + } response.setSuccess(true); tx.commit(); } catch (Exception e) { - log.error("TapeMessage.process: ", e); + logger.error("TapeMessage.process: ", e); response.setSuccess(false); response.setComment(e.getMessage()); } diff --git a/orktrack/src/net/sf/oreka/orktrack/messages/TapeResponse.java b/orktrack/src/net/sf/oreka/orktrack/messages/TapeResponse.java new file mode 100644 index 0000000..7d40db7 --- /dev/null +++ b/orktrack/src/net/sf/oreka/orktrack/messages/TapeResponse.java @@ -0,0 +1,37 @@ +package net.sf.oreka.orktrack.messages; + +import net.sf.oreka.OrkException; +import net.sf.oreka.messages.SimpleResponseMessage; +import net.sf.oreka.serializers.OrkSerializer; + +public class TapeResponse extends SimpleResponseMessage { + + private boolean deleteTape = false; + + public void define(OrkSerializer serializer) throws OrkException { + + super.define(serializer); + deleteTape = serializer.booleanValue("deletetape", deleteTape, false); + } + + public String getOrkClassName() { + + return "taperesponse"; + } + + public void validate() { + // TODO Auto-generated method stub + + } + + public boolean isDeleteTape() { + return deleteTape; + } + + + public void setDeleteTape(boolean deleteTape) { + this.deleteTape = deleteTape; + } + + +} |