Procházet zdrojové kódy

AMBARI-8811 - Rolling Upgrade: inconsistent statuses (tbeerbower)

tbeerbower před 10 roky
rodič
revize
1cc10ed3b6

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java

@@ -381,7 +381,7 @@ public class StageResourceProvider extends AbstractResourceProvider implements E
         counters.get(HostRoleStatus.ABORTED) > 0 ? HostRoleStatus.ABORTED :
         counters.get(HostRoleStatus.TIMEDOUT) > 0 && failAll ? HostRoleStatus.TIMEDOUT :
         counters.get(HostRoleStatus.IN_PROGRESS) > 0 ? HostRoleStatus.IN_PROGRESS :
-        counters.get(HostRoleStatus.COMPLETED) == total ? HostRoleStatus.COMPLETED : HostRoleStatus.PENDING;
+        counters.get(HostRoleStatus.COMPLETED) == total  && total > 0 ? HostRoleStatus.COMPLETED : HostRoleStatus.PENDING;
   }
 
   /**

+ 7 - 0
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StageResourceProviderTest.java

@@ -276,6 +276,13 @@ public class StageResourceProviderTest {
     counts = StageResourceProvider.calculateTaskStatusCounts(hostRoleStatuses);
 
     assertEquals(HostRoleStatus.COMPLETED, StageResourceProvider.calculateSummaryStatus(counts, hostRoleStatuses.size(), false));
+
+
+    hostRoleStatuses = new LinkedList<HostRoleStatus>();
+
+    counts = StageResourceProvider.calculateTaskStatusCounts(hostRoleStatuses);
+
+    assertEquals(HostRoleStatus.PENDING, StageResourceProvider.calculateSummaryStatus(counts, hostRoleStatuses.size(), false));
   }