summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-03-02 16:16:44 +0000
committerHenri Herscher <henri@oreka.org>2006-03-02 16:16:44 +0000
commit5c71b9542c24ff132c2c67c6ffe4a6a5bc43746c (patch)
tree6d927f2b6e7495126c3080265c7b6f6e77e78a42
parent6d301a8dadf98464952912db2646e68df15b347f (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
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/TapeManager.java15
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/messages/TapeMessage.java14
-rw-r--r--orktrack/src/net/sf/oreka/orktrack/messages/TapeResponse.java37
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;
+ }
+
+
+}