You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/02/11 20:21:31 UTC
ambari git commit: AMBARI-9559. RU: Finalize fails because Secondary
Namenode was not deleted during HA Wizard (alejandro)
Repository: ambari
Updated Branches:
refs/heads/trunk fe2122c72 -> ca074d01f
AMBARI-9559. RU: Finalize fails because Secondary Namenode was not deleted during HA Wizard (alejandro)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ca074d01
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ca074d01
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ca074d01
Branch: refs/heads/trunk
Commit: ca074d01f834740cf7a81c227a5528b961cd41d3
Parents: fe2122c
Author: Alejandro Fernandez <af...@hortonworks.com>
Authored: Tue Feb 10 15:35:33 2015 -0800
Committer: Alejandro Fernandez <af...@hortonworks.com>
Committed: Wed Feb 11 11:21:24 2015 -0800
----------------------------------------------------------------------
.../checks/SecondaryNamenodeDeletedCheck.java | 66 ++++++++++++++++++++
.../PreUpgradeCheckResourceProvider.java | 15 ++++-
.../ambari/server/stack/MasterHostResolver.java | 2 +-
3 files changed, 81 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/ca074d01/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
new file mode 100644
index 0000000..ad967f8
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ambari.server.checks;
+
+import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.controller.PrereqCheckRequest;
+import org.apache.ambari.server.stack.MasterHostResolver;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.ServiceComponent;
+import org.apache.ambari.server.state.stack.PrereqCheckStatus;
+import org.apache.ambari.server.state.stack.PrereqCheckType;
+import org.apache.ambari.server.state.stack.PrerequisiteCheck;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.Set;
+
+/**
+ * Checks that the Secondary NameNode is not present on any of the hosts.
+ */
+public class SecondaryNamenodeDeletedCheck extends AbstractCheckDescriptor {
+
+ /**
+ * Constructor.
+ */
+ public SecondaryNamenodeDeletedCheck() {
+ super("SECONDARY_NAMENODE_MUST_BE_DELETED", PrereqCheckType.SERVICE, "The SECONDARY_NAMENODE component must be deleted from all hosts");
+ }
+
+ @Override
+ public boolean isApplicable(PrereqCheckRequest request) throws AmbariException {
+ final Cluster cluster = clustersProvider.get().getCluster(request.getClusterName());
+ return cluster.getService(MasterHostResolver.Service.HDFS.name()) != null;
+ }
+
+ @Override
+ public void perform(PrerequisiteCheck prerequisiteCheck, PrereqCheckRequest request) throws AmbariException {
+ final String clusterName = request.getClusterName();
+
+ final Cluster cluster = clustersProvider.get().getCluster(clusterName);
+ ServiceComponent serviceComponent = cluster.getService(MasterHostResolver.Service.HDFS.name()).getServiceComponent("SECONDARY_NAMENODE");
+ if (serviceComponent != null) {
+ Set<String> hosts = serviceComponent.getServiceComponentHosts().keySet();
+
+ if (!hosts.isEmpty()) {
+ prerequisiteCheck.getFailedOn().add(serviceComponent.getName());
+ prerequisiteCheck.setStatus(PrereqCheckStatus.FAIL);
+ prerequisiteCheck.setFailReason("The SECONDARY_NAMENODE component must be deleted from host(s): " + StringUtils.join(hosts, ", ") + ". Please use the REST API to delete it.");
+ }
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/ca074d01/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
index 38cb8c2..784254c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/PreUpgradeCheckResourceProvider.java
@@ -25,7 +25,17 @@ import java.util.List;
import java.util.ArrayList;
import org.apache.ambari.server.StaticallyInject;
-import org.apache.ambari.server.checks.*;
+import org.apache.ambari.server.checks.AbstractCheckDescriptor;
+import org.apache.ambari.server.checks.HostsHeartbeatCheck;
+import org.apache.ambari.server.checks.HostsMasterMaintenanceCheck;
+import org.apache.ambari.server.checks.HostsRepositoryVersionCheck;
+import org.apache.ambari.server.checks.ServicesDecommissionCheck;
+import org.apache.ambari.server.checks.ServicesJobsDistributedCacheCheck;
+import org.apache.ambari.server.checks.ServicesMaintenanceModeCheck;
+import org.apache.ambari.server.checks.ServicesNamenodeHighAvailabilityCheck;
+import org.apache.ambari.server.checks.SecondaryNamenodeDeletedCheck;
+import org.apache.ambari.server.checks.ServicesUpCheck;
+import org.apache.ambari.server.checks.ServicesYarnWorkPreservingCheck;
import org.apache.ambari.server.state.CheckHelper;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.PrereqCheckRequest;
@@ -68,6 +78,8 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
@Inject
private static ServicesNamenodeHighAvailabilityCheck servicesNamenodeHighAvailabilityCheck;
@Inject
+ private static SecondaryNamenodeDeletedCheck secondaryNamenodeDeletedCheck;
+ @Inject
private static ServicesYarnWorkPreservingCheck servicesYarnWorkPreservingCheck;
@Inject
private static ServicesDecommissionCheck servicesDecommissionCheck;
@@ -89,6 +101,7 @@ public class PreUpgradeCheckResourceProvider extends ReadOnlyResourceProvider {
add(hostsRepositoryVersionCheck);
add(servicesMaintenanceModeCheck);
add(servicesNamenodeHighAvailabilityCheck);
+ add(secondaryNamenodeDeletedCheck);
add(servicesYarnWorkPreservingCheck);
add(servicesDecommissionCheck);
add(servicesJobsDistributedCacheCheck);
http://git-wip-us.apache.org/repos/asf/ambari/blob/ca074d01/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
index ed98aaf..0800c91 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/MasterHostResolver.java
@@ -51,7 +51,7 @@ public class MasterHostResolver {
private String m_version;
private ConfigHelper m_configHelper;
- enum Service {
+ public enum Service {
HDFS,
HBASE,
YARN,