Add logging feature for each Intent instances
Change-Id: I6af9079bb0233c6dab378b056a05ea98aaff5762
diff --git a/src/main/java/net/onrc/onos/intent/Intent.java b/src/main/java/net/onrc/onos/intent/Intent.java
index 9a40325..b6a51cb 100644
--- a/src/main/java/net/onrc/onos/intent/Intent.java
+++ b/src/main/java/net/onrc/onos/intent/Intent.java
@@ -1,5 +1,9 @@
package net.onrc.onos.intent;
+import java.util.LinkedList;
+
+import com.esotericsoftware.kryo.serializers.FieldSerializer.Optional;
+
/**
* @author Toshio Koide (t-koide@onlab.us)
*/
@@ -18,19 +22,25 @@
private String id;
private IntentState state = IntentState.CREATED;
+ @Optional(value="logs")
+ private LinkedList<String> logs = new LinkedList<>();
+
/**
* Default constructor for Kryo deserialization
*/
protected Intent() {
+ logs.add(String.format("created, time:%d", System.nanoTime())); // for measurement
}
public Intent(String id) {
+ logs.add(String.format("created, time:%d", System.nanoTime())); // for measurement
this.id = id;
}
public Intent(String id, IntentState state) {
+ logs.add(String.format("created, time:%d", System.nanoTime())); // for measurement
+ setState(state);
this.id = id;
- this.state = state;
}
public String getId() {
@@ -42,11 +52,17 @@
}
public IntentState setState(IntentState newState) {
+ logs.add(String.format("setState, oldState:%s, newState:%s, time:%d",
+ state, newState, System.nanoTime())); // for measurement
IntentState oldState = state;
state = newState;
return oldState;
}
+ public LinkedList<String> getLogs() {
+ return logs;
+ }
+
@Override
public int hashCode() {
return (id == null) ? 0 : id.hashCode();