Repository: brooklyn-server
Updated Branches:
  refs/heads/master 001730b86 -> c9f7b0dc5


use highlights in `ServiceRestarter`


Project: http://git-wip-us.apache.org/repos/asf/brooklyn-server/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-server/commit/1a8df427
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-server/tree/1a8df427
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-server/diff/1a8df427

Branch: refs/heads/master
Commit: 1a8df4275d61ddd69e6bc05b057c081dd4dcad34
Parents: b9f14e5
Author: Alex Heneveld <[email protected]>
Authored: Wed Sep 13 09:07:44 2017 +0100
Committer: Alex Heneveld <[email protected]>
Committed: Wed Sep 13 09:07:44 2017 +0100

----------------------------------------------------------------------
 .../apache/brooklyn/policy/ha/ServiceRestarter.java  | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-server/blob/1a8df427/policy/src/main/java/org/apache/brooklyn/policy/ha/ServiceRestarter.java
----------------------------------------------------------------------
diff --git 
a/policy/src/main/java/org/apache/brooklyn/policy/ha/ServiceRestarter.java 
b/policy/src/main/java/org/apache/brooklyn/policy/ha/ServiceRestarter.java
index 03cae2e..2c2637c 100644
--- a/policy/src/main/java/org/apache/brooklyn/policy/ha/ServiceRestarter.java
+++ b/policy/src/main/java/org/apache/brooklyn/policy/ha/ServiceRestarter.java
@@ -22,6 +22,8 @@ import java.util.concurrent.atomic.AtomicReference;
 
 import org.apache.brooklyn.api.catalog.Catalog;
 import org.apache.brooklyn.api.entity.EntityLocal;
+import org.apache.brooklyn.api.mgmt.Task;
+import org.apache.brooklyn.api.objs.HighlightTuple;
 import org.apache.brooklyn.api.sensor.Sensor;
 import org.apache.brooklyn.api.sensor.SensorEvent;
 import org.apache.brooklyn.api.sensor.SensorEventListener;
@@ -110,6 +112,8 @@ public class ServiceRestarter extends AbstractPolicy {
                     }
                 }
             });
+        addHighlight(HIGHLIGHT_NAME_TRIGGERS, 
+            new HighlightTuple("Listening for 
"+getConfig(FAILURE_SENSOR_TO_MONITOR).getName(), 0, null));
     }
     
     // TODO semaphores would be better to allow at-most-one-blocking behaviour
@@ -117,6 +121,8 @@ public class ServiceRestarter extends AbstractPolicy {
     // (as has been done in ServiceReplacer)
     protected synchronized void onDetectedFailure(SensorEvent<Object> event) {
         if (isSuspended()) {
+            addHighlight(HIGHLIGHT_NAME_LAST_VIOLATION, 
+                new HighlightTuple("Failure detected but policy suspended", 
System.currentTimeMillis(), null));
             LOG.warn("ServiceRestarter suspended, so not acting on failure 
detected at "+entity+" ("+event.getValue()+")");
             return;
         }
@@ -126,12 +132,19 @@ public class ServiceRestarter extends AbstractPolicy {
         Long last = lastFailureTime.getAndSet(current);
         long elapsed = last==null ? -1 : current-last;
         if (elapsed>=0 && elapsed <= 
getConfig(FAIL_ON_RECURRING_FAILURES_IN_THIS_DURATION).toMilliseconds()) {
+            addHighlight(HIGHLIGHT_NAME_LAST_VIOLATION, 
+                new HighlightTuple("Failure detected but policy ran 
"+Duration.millis(elapsed)+" ago so not running again", 
System.currentTimeMillis(), null));
             onRestartFailed("Restart failure (failed again after 
"+Time.makeTimeStringRounded(elapsed)+") at "+entity+": "+event.getValue());
             return;
         }
         try {
+            addHighlight(HIGHLIGHT_NAME_LAST_VIOLATION, 
+                new HighlightTuple("Failure detected and restart triggered", 
System.currentTimeMillis(), null));
             ServiceStateLogic.setExpectedState(entity, Lifecycle.STARTING);
-            Entities.invokeEffector(entity, entity, Startable.RESTART).get();
+            Task<Void> t = Entities.invokeEffector(entity, entity, 
Startable.RESTART);
+            addHighlight(HIGHLIGHT_NAME_LAST_ACTION, 
+                new HighlightTuple("Restart node on failure", 
System.currentTimeMillis(), t.getId()));
+            t.get();
         } catch (Exception e) {
             onRestartFailed("Restart failure (error "+e+") at "+entity+": 
"+event.getValue());
         }

Reply via email to