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 2015/04/20 19:19:18 UTC

[3/3] ambari git commit: AMBARI-10566. Ambari Upgrade from 1.7.0 to 2.0.0 fails to restart ZK server due to missing symlink (dlysnichenko)

AMBARI-10566. Ambari Upgrade from 1.7.0 to 2.0.0 fails to restart ZK server due to missing symlink (dlysnichenko)


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

Branch: refs/heads/branch-2.0.maint
Commit: 665eb178479dca4b3d9940a26f6b86e7a76efdf0
Parents: 7ba47fd
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Mon Apr 20 20:18:27 2015 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Mon Apr 20 20:18:27 2015 +0300

----------------------------------------------------------------------
 .../resource_management/libraries/script/script.py   |  2 +-
 .../AmbariCustomCommandExecutionHelper.java          | 15 +++++++++++++++
 .../ZOOKEEPER/3.4.5.2.0/package/scripts/params.py    |  1 +
 .../ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py |  5 ++++-
 .../3.4.5.2.0/package/scripts/zookeeper_server.py    |  7 ++++---
 .../stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py  |  3 ++-
 6 files changed, 27 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-common/src/main/python/resource_management/libraries/script/script.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/script/script.py b/ambari-common/src/main/python/resource_management/libraries/script/script.py
index 1e35327..34dd16f 100644
--- a/ambari-common/src/main/python/resource_management/libraries/script/script.py
+++ b/ambari-common/src/main/python/resource_management/libraries/script/script.py
@@ -382,7 +382,7 @@ class Script(object):
     """
     pass
 
-  def configure(self, env):
+  def configure(self, env, rolling_restart=False):
     """
     To be overridden by subclasses
     """

http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
index 5a15f64..422ecb6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
@@ -63,6 +63,7 @@ import org.apache.ambari.server.controller.internal.RequestOperationLevel;
 import org.apache.ambari.server.controller.internal.RequestResourceFilter;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.metadata.ActionMetadata;
+import org.apache.ambari.server.orm.dao.ClusterVersionDAO;
 import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
 import org.apache.ambari.server.state.Cluster;
 import org.apache.ambari.server.state.Clusters;
@@ -76,6 +77,7 @@ import org.apache.ambari.server.state.HostState;
 import org.apache.ambari.server.state.MaintenanceState;
 import org.apache.ambari.server.state.PropertyInfo.PropertyType;
 import org.apache.ambari.server.state.RepositoryInfo;
+import org.apache.ambari.server.state.RepositoryVersionState;
 import org.apache.ambari.server.state.Service;
 import org.apache.ambari.server.state.ServiceComponent;
 import org.apache.ambari.server.state.ServiceComponentHost;
@@ -139,6 +141,8 @@ public class AmbariCustomCommandExecutionHelper {
   private MaintenanceStateHelper maintenanceStateHelper;
   @Inject
   private OsFamily os_family;
+  @Inject
+  private ClusterVersionDAO clusterVersionDAO;
 
   protected static final String SERVICE_CHECK_COMMAND_NAME = "SERVICE_CHECK";
   protected static final String INSTALL_COMMAND_NAME = "INSTALL";
@@ -1017,6 +1021,17 @@ public class AmbariCustomCommandExecutionHelper {
     hostLevelParams.put(ORACLE_JDBC_URL, managementController.getOjdbcUrl());
     hostLevelParams.put(DB_DRIVER_FILENAME, configs.getMySQLJarName());
     hostLevelParams.putAll(managementController.getRcaParameters());
+    ClusterVersionEntity clusterVersionEntity = clusterVersionDAO.findByClusterAndStateCurrent(cluster.getClusterName());
+    if (clusterVersionEntity == null) {
+     List<ClusterVersionEntity> clusterVersionEntityList = clusterVersionDAO
+             .findByClusterAndState(cluster.getClusterName(), RepositoryVersionState.UPGRADING);
+     if (!clusterVersionEntityList.isEmpty()) {
+       clusterVersionEntity = clusterVersionEntityList.iterator().next();
+     }
+    }
+    if (clusterVersionEntity != null) {
+      hostLevelParams.put("current_version", clusterVersionEntity.getRepositoryVersion().getVersion());
+    }
 
     return hostLevelParams;
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
index fa82f49..5d6c4f6 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params.py
@@ -35,6 +35,7 @@ stack_name = default("/hostLevelParams/stack_name", None)
 
 # New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade
 version = default("/commandParams/version", None)
+current_version = default("/hostLevelParams/current_version", None)
 
 #hadoop params
 if hdp_stack_version != "" and compare_versions(hdp_stack_version, '2.2') >= 0:

http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
index aa1c891..3d8efa0 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
@@ -24,7 +24,7 @@ from resource_management import *
 import sys
 
 
-def zookeeper(type = None):
+def zookeeper(type = None, rolling_restart=False):
   import params
 
   Directory(params.config_dir,
@@ -69,6 +69,9 @@ def zookeeper(type = None):
          mode = 0644,
          content = myid
     )
+    # This path may be missing after Ambari upgrade. We need to create it.
+    if (not rolling_restart) and (not os.path.exists("/usr/hdp/current/zookeeper-server")) and params.current_version:
+      Execute(format("hdp-select set zookeeper-server {current_version}"))
 
   if (params.log4j_props != None):
     File(format("{params.config_dir}/log4j.properties"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
index 72a8f0b..19aff3d 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_server.py
@@ -45,10 +45,10 @@ class ZookeeperServer(Script):
     self.install_packages(env)
     self.configure(env)
 
-  def configure(self, env):
+  def configure(self, env, rolling_restart=False):
     import params
     env.set_params(params)
-    zookeeper(type='server')
+    zookeeper(type='server', rolling_restart=rolling_restart)
 
   def pre_rolling_restart(self, env):
     Logger.info("Executing Rolling Upgrade pre-restart")
@@ -61,7 +61,7 @@ class ZookeeperServer(Script):
   def start(self, env, rolling_restart=False):
     import params
     env.set_params(params)
-    self.configure(env)
+    self.configure(env, rolling_restart=rolling_restart)
     zookeeper_service(action = 'start')
 
   def post_rolling_restart(self, env):
@@ -90,6 +90,7 @@ class ZookeeperServer(Script):
   def stop(self, env, rolling_restart=False):
     import params
     env.set_params(params)
+    self.configure(env, rolling_restart=rolling_restart)
     zookeeper_service(action = 'stop')
 
   def status(self, env):

http://git-wip-us.apache.org/repos/asf/ambari/blob/665eb178/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
index 4b9721a..2529ecb 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/ZOOKEEPER/test_zookeeper_server.py
@@ -61,6 +61,7 @@ class TestZookeeperServer(RMFTestCase):
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
 
+    self.assert_configure_default()
     self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
       user = 'zookeeper',
     )
@@ -104,7 +105,7 @@ class TestZookeeperServer(RMFTestCase):
                        hdp_stack_version = self.STACK_VERSION,
                        target = RMFTestCase.TARGET_COMMON_SERVICES
     )
-
+    self.assert_configure_secured()
     self.assertResourceCalled('Execute', 'source /etc/zookeeper/conf/zookeeper-env.sh ; env ZOOCFGDIR=/etc/zookeeper/conf ZOOCFG=zoo.cfg /usr/lib/zookeeper/bin/zkServer.sh stop',
                   user = 'zookeeper',
     )