You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by al...@apache.org on 2015/09/21 18:05:41 UTC

[4/7] incubator-brooklyn git commit: ServiceNotUpDiagnostics: populate properly

ServiceNotUpDiagnostics: populate properly

Previously we only re-populated the ServiceNotUpDiagnostics when
serviceUp changed. However, this meant we did it once at the start
(where it said “no-driver”) and then not again if startup failed,
so serviceUp was left as “false”.

Now we also re-populate the ServiceNotUpDiagnostics if the serviceState
changes (and serviceUp=false), e.g. if we conclude on-fire etc.


Project: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/commit/9157eb9c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/tree/9157eb9c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/diff/9157eb9c

Branch: refs/heads/master
Commit: 9157eb9c434602d91ea6a897364026cb5844748b
Parents: 23d9580
Author: Aled Sage <al...@gmail.com>
Authored: Fri Sep 18 20:52:51 2015 +0100
Committer: Aled Sage <al...@gmail.com>
Committed: Mon Sep 21 14:33:20 2015 +0100

----------------------------------------------------------------------
 .../brooklyn/entity/software/base/SoftwareProcessImpl.java    | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-brooklyn/blob/9157eb9c/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
----------------------------------------------------------------------
diff --git a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
index 33cd4f4..b635242 100644
--- a/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
+++ b/software/base/src/main/java/org/apache/brooklyn/entity/software/base/SoftwareProcessImpl.java
@@ -157,6 +157,7 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
             if (!(entity instanceof SoftwareProcess)) {
                 throw new IllegalArgumentException("Expected SoftwareProcess, but got entity "+entity);
             }
+            subscribe(ImmutableMap.of("notifyOfInitialValue", true), entity, Attributes.SERVICE_STATE_ACTUAL, this);
             subscribe(ImmutableMap.of("notifyOfInitialValue", true), entity, Attributes.SERVICE_UP, this);
         }
 
@@ -167,8 +168,12 @@ public abstract class SoftwareProcessImpl extends AbstractEntity implements Soft
 
         protected void onUpdated() {
             Boolean up = entity.getAttribute(SERVICE_UP);
+            Lifecycle state = entity.getAttribute(SERVICE_STATE_ACTUAL);
             if (up == null || up) {
-                entity.setAttribute(ServiceStateLogic.SERVICE_NOT_UP_DIAGNOSTICS, ImmutableMap.<String, Object>of());
+                entity.sensors().set(ServiceStateLogic.SERVICE_NOT_UP_DIAGNOSTICS, ImmutableMap.<String, Object>of());
+            } else if (state == Lifecycle.STOPPING || state == Lifecycle.STOPPED || state == Lifecycle.DESTROYED) {
+                // stopping/stopped, so expect not to be up; get rid of the diagnostics.
+                entity.sensors().set(ServiceStateLogic.SERVICE_NOT_UP_DIAGNOSTICS, ImmutableMap.<String, Object>of());
             } else {
                 ((SoftwareProcess)entity).populateServiceNotUpDiagnostics();
             }