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);