You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2016/06/02 15:31:33 UTC

[2/2] ambari git commit: AMBARI-16953. Service name shown instead of Host name on popup (dlysnichenko)

AMBARI-16953. Service name shown instead of Host name on popup (dlysnichenko)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7c1a3788
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7c1a3788
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7c1a3788

Branch: refs/heads/branch-2.4
Commit: 7c1a378825a433eba41e92b955679992db6f7da0
Parents: 07c9ce0
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Thu Jun 2 18:29:08 2016 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Thu Jun 2 18:30:42 2016 +0300

----------------------------------------------------------------------
 .../ambari/server/checks/CheckDescription.java  |  4 ++--
 .../checks/SecondaryNamenodeDeletedCheck.java   | 14 ++++++++-----
 .../checks/ServiceCheckValidityCheck.java       |  7 +++++++
 .../SecondaryNamenodeDeletedCheckTest.java      |  2 ++
 .../checks/ServiceCheckValidityCheckTest.java   | 22 ++++++++++++++++++++
 5 files changed, 42 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7c1a3788/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java
index 5899370..850b58a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/CheckDescription.java
@@ -88,10 +88,10 @@ public enum CheckDescription {
           "Repository version {{version}} does not exist.");
       }}),
 
-  SECONDARY_NAMENODE_MUST_BE_DELETED(PrereqCheckType.SERVICE,
+  SECONDARY_NAMENODE_MUST_BE_DELETED(PrereqCheckType.HOST,
       "The SNameNode component must be deleted from all hosts",
       new HashMap<String, String>() {{
-        put(AbstractCheckDescriptor.DEFAULT, "The SNameNode component must be deleted from host: {{fails}}.");
+        put(AbstractCheckDescriptor.DEFAULT, "The SNameNode component must be deleted from host: %s.");
       }}),
 
   STORM_REST_API_MUST_BE_DELETED(PrereqCheckType.SERVICE,

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c1a3788/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java
index 4893098..0dbb1b5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java
@@ -43,6 +43,8 @@ import com.google.inject.Singleton;
 @Singleton
 @UpgradeCheck(group = UpgradeCheckGroup.NAMENODE_HA, order = 16.0f)
 public class SecondaryNamenodeDeletedCheck extends AbstractCheckDescriptor {
+  private static final String HDFS_SERVICE_NAME = MasterHostResolver.Service.HDFS.name();
+
   @Inject
   HostComponentStateDAO hostComponentStateDao;
   /**
@@ -54,7 +56,7 @@ public class SecondaryNamenodeDeletedCheck extends AbstractCheckDescriptor {
 
   @Override
   public boolean isApplicable(PrereqCheckRequest request) throws AmbariException {
-    if (!super.isApplicable(request, Arrays.asList("HDFS"), true)) {
+    if (!super.isApplicable(request, Arrays.asList(HDFS_SERVICE_NAME), true)) {
       return false;
     }
 
@@ -79,7 +81,7 @@ public class SecondaryNamenodeDeletedCheck extends AbstractCheckDescriptor {
     final String clusterName = request.getClusterName();
     final Cluster cluster = clustersProvider.get().getCluster(clusterName);
     try {
-      ServiceComponent serviceComponent = cluster.getService(MasterHostResolver.Service.HDFS.name()).getServiceComponent(SECONDARY_NAMENODE);
+      ServiceComponent serviceComponent = cluster.getService(HDFS_SERVICE_NAME).getServiceComponent(SECONDARY_NAMENODE);
       if (serviceComponent != null) {
         hosts = serviceComponent.getServiceComponentHosts().keySet();
       }
@@ -92,16 +94,18 @@ public class SecondaryNamenodeDeletedCheck extends AbstractCheckDescriptor {
     if (hosts.isEmpty()) {
       List<HostComponentStateEntity> allHostComponents = hostComponentStateDao.findAll();
       for(HostComponentStateEntity hc : allHostComponents) {
-        if (hc.getServiceName().equalsIgnoreCase(MasterHostResolver.Service.HDFS.name()) && hc.getComponentName().equalsIgnoreCase(SECONDARY_NAMENODE)) {
+        if (hc.getServiceName().equalsIgnoreCase(HDFS_SERVICE_NAME) && hc.getComponentName().equalsIgnoreCase(SECONDARY_NAMENODE)) {
           hosts.add(hc.getHostName());
         }
       }
     }
 
     if (!hosts.isEmpty()) {
-      prerequisiteCheck.getFailedOn().add(SECONDARY_NAMENODE);
+      String foundHost = hosts.toArray(new String[hosts.size()])[0];
+      prerequisiteCheck.getFailedOn().add(HDFS_SERVICE_NAME);
       prerequisiteCheck.setStatus(PrereqCheckStatus.FAIL);
-      prerequisiteCheck.setFailReason(getFailReason(prerequisiteCheck, request));
+      String failReason = getFailReason(prerequisiteCheck, request);
+      prerequisiteCheck.setFailReason(String.format(failReason, foundHost));
     }
   }
 }

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c1a3788/ambari-server/src/main/java/org/apache/ambari/server/checks/ServiceCheckValidityCheck.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/ServiceCheckValidityCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/ServiceCheckValidityCheck.java
index 9abfa50..2bc22c9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/checks/ServiceCheckValidityCheck.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/ServiceCheckValidityCheck.java
@@ -133,8 +133,10 @@ public class ServiceCheckValidityCheck extends AbstractCheckDescriptor {
       String serviceName = serviceEntry.getKey();
       Long configTimestamp = serviceEntry.getValue();
 
+      boolean serviceCheckWasExecuted = false;
       for (HostRoleCommandEntity command : latestTimestamps.values()) {
         if (command.getCommandDetail().contains(serviceName)) {
+          serviceCheckWasExecuted = true;
           Long serviceCheckTimestamp = command.getStartTime();
 
           if (serviceCheckTimestamp < configTimestamp) {
@@ -146,6 +148,11 @@ public class ServiceCheckValidityCheck extends AbstractCheckDescriptor {
           }
         }
       }
+
+      if (!serviceCheckWasExecuted) {
+        failedServiceNames.add(serviceName);
+        LOG.info("Service {} service check has never been executed", serviceName);
+      }
     }
 
     if (!failedServiceNames.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c1a3788/ambari-server/src/test/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheckTest.java
index e2617bf..3ce9757 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheckTest.java
@@ -111,6 +111,8 @@ public class SecondaryNamenodeDeletedCheckTest {
     PrerequisiteCheck check = new PrerequisiteCheck(null, null);
     secondaryNamenodeDeletedCheck.perform(check, new PrereqCheckRequest("cluster"));
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
+    Assert.assertEquals("HDFS", check.getFailedOn().toArray(new String[1])[0]);
+    Assert.assertEquals("The SNameNode component must be deleted from host: host.", check.getFailReason());
 
     Mockito.when(serviceComponent.getServiceComponentHosts()).thenReturn(Collections.<String, ServiceComponentHost> emptyMap());
     check = new PrerequisiteCheck(null, null);

http://git-wip-us.apache.org/repos/asf/ambari/blob/7c1a3788/ambari-server/src/test/java/org/apache/ambari/server/checks/ServiceCheckValidityCheckTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServiceCheckValidityCheckTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServiceCheckValidityCheckTest.java
index 55429bd..8d72b96 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/checks/ServiceCheckValidityCheckTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/ServiceCheckValidityCheckTest.java
@@ -24,6 +24,7 @@ import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
+import java.util.Collections;
 
 import org.apache.ambari.server.AmbariException;
 import org.apache.ambari.server.Role;
@@ -126,6 +127,27 @@ public class ServiceCheckValidityCheckTest {
     Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
   }
 
+
+  @Test
+  public void testFailWhenServiceWithNoServiceCheckExists() throws AmbariException {
+    ServiceComponent serviceComponent = mock(ServiceComponent.class);
+    when(serviceComponent.isVersionAdvertised()).thenReturn(true);
+
+    when(service.getMaintenanceState()).thenReturn(MaintenanceState.OFF);
+    when(service.getServiceComponents()).thenReturn(ImmutableMap.of(SERVICE_COMPONENT_NAME, serviceComponent));
+
+    ServiceConfigEntity serviceConfigEntity = new ServiceConfigEntity();
+    serviceConfigEntity.setServiceName(SERVICE_NAME);
+    serviceConfigEntity.setCreateTimestamp(CONFIG_CREATE_TIMESTAMP);
+
+    when(serviceConfigDAO.getLastServiceConfig(eq(CLUSTER_ID), eq(SERVICE_NAME))).thenReturn(serviceConfigEntity);
+    when(hostRoleCommandDAO.findAll(any(Request.class), any(Predicate.class))).thenReturn(Collections.<HostRoleCommandEntity>emptyList());
+
+    PrerequisiteCheck check = new PrerequisiteCheck(null, CLUSTER_NAME);
+    serviceCheckValidityCheck.perform(check, new PrereqCheckRequest(CLUSTER_NAME));
+    Assert.assertEquals(PrereqCheckStatus.FAIL, check.getStatus());
+  }
+
   @Test
   public void testFailWhenServiceWithOutdatedServiceCheckExistsRepeated() throws AmbariException {
     ServiceComponent serviceComponent = mock(ServiceComponent.class);