Browse Source

AMBARI-11236. RU: Clarify Prerequisite Check for Service and MM details (dlysnichenko)

Lisnichenko Dmitro 10 years ago
parent
commit
7e8d3dea89

+ 1 - 1
ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheck.java

@@ -50,7 +50,7 @@ public class ServicesMaintenanceModeCheck extends AbstractCheckDescriptor {
     final Cluster cluster = clustersProvider.get().getCluster(clusterName);
     for (Map.Entry<String, Service> serviceEntry : cluster.getServices().entrySet()) {
       final Service service = serviceEntry.getValue();
-      if (!service.isClientOnlyService() && (service.getDesiredState() != State.STARTED || service.getMaintenanceState() == MaintenanceState.ON)) {
+      if (!service.isClientOnlyService() && service.getMaintenanceState() == MaintenanceState.ON) {
         prerequisiteCheck.getFailedOn().add(service.getName());
       }
     }

+ 3 - 2
ambari-server/src/test/java/org/apache/ambari/server/checks/ServicesMaintenanceModeCheckTest.java

@@ -76,11 +76,12 @@ public class ServicesMaintenanceModeCheckTest {
     final Service service = Mockito.mock(Service.class);
     Mockito.when(cluster.getServices()).thenReturn(Collections.singletonMap("service", service));
     Mockito.when(service.isClientOnlyService()).thenReturn(false);
-    Mockito.when(service.getDesiredState()).thenReturn(State.UNKNOWN);
 
+    // We don't bother checking service desired state as it's performed by a separate check
+    Mockito.when(service.getDesiredState()).thenReturn(State.UNKNOWN);
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     servicesMaintenanceModeCheck.perform(check, new PrereqCheckRequest("cluster"));
-    Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
+    Assert.assertEquals(PrereqCheckStatus.PASS, check.getStatus());
 
     Mockito.when(service.getDesiredState()).thenReturn(State.STARTED);
     check = new PrerequisiteCheck(null, null);