Added error count for IntentData (ONOS-1060)
Change-Id: Ida6313603c15fb6c1c1793c298206587b370a13e
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/InstallRequest.java b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/InstallRequest.java
index 03f73eb..a75d7cc 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/InstallRequest.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/InstallRequest.java
@@ -21,6 +21,7 @@
import java.util.Optional;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.net.intent.impl.phase.IntentProcessPhase.transferErrorCount;
/**
* Represents a phase where intent installation has been requested.
@@ -47,6 +48,8 @@
@Override
public Optional<IntentProcessPhase> execute() {
+ transferErrorCount(data, stored);
+
return Optional.of(new Compiling(processor, data, stored));
}
}
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/IntentProcessPhase.java b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/IntentProcessPhase.java
index 399a307..bce572c 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/IntentProcessPhase.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/IntentProcessPhase.java
@@ -18,6 +18,7 @@
import org.onosproject.net.intent.IntentData;
import org.onosproject.net.intent.impl.IntentProcessor;
+import java.util.Objects;
import java.util.Optional;
/**
@@ -57,4 +58,16 @@
}
}
+ static void transferErrorCount(IntentData data, Optional<IntentData> stored) {
+ if (stored.isPresent()) {
+ IntentData storedData = stored.get();
+ if (Objects.equals(data.intent(), storedData.intent()) &&
+ Objects.equals(data.request(), storedData.request())) {
+ data.setErrorCount(storedData.errorCount());
+ } else {
+ data.setErrorCount(0);
+ }
+ }
+ }
+
}
diff --git a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/WithdrawRequest.java b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/WithdrawRequest.java
index 73a6510..8a0709e 100644
--- a/core/net/src/main/java/org/onosproject/net/intent/impl/phase/WithdrawRequest.java
+++ b/core/net/src/main/java/org/onosproject/net/intent/impl/phase/WithdrawRequest.java
@@ -21,6 +21,7 @@
import java.util.Optional;
import static com.google.common.base.Preconditions.checkNotNull;
+import static org.onosproject.net.intent.impl.phase.IntentProcessPhase.transferErrorCount;
/**
* Represents a phase of requesting a withdraw of an intent.
@@ -51,6 +52,8 @@
// same version i.e. they are the same
// Note: this call is not just the symmetric version of submit
+ transferErrorCount(data, stored);
+
if (!stored.isPresent() || stored.get().installables().isEmpty()) {
switch (data.request()) {
case INSTALL_REQ: