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:17 UTC

[2/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/7ad8c9ac
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7ad8c9ac
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7ad8c9ac

Branch: refs/heads/trunk
Commit: 7ad8c9acb5fdf27874d24ade5cbe38f1a59bba34
Parents: 4e06a89
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Mon Apr 20 20:17:25 2015 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Mon Apr 20 20:17:25 2015 +0300

----------------------------------------------------------------------
 .../resource_management/libraries/script/script.py   |  2 +-
 .../AmbariCustomCommandExecutionHelper.java          | 15 +++++++++++++++
 .../3.4.5.2.0/package/scripts/params_linux.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  |  2 ++
 6 files changed, 27 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/7ad8c9ac/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/7ad8c9ac/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 2680851..50797a4 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
@@ -64,6 +64,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.orm.entities.OperatingSystemEntity;
 import org.apache.ambari.server.orm.entities.RepositoryEntity;
@@ -80,6 +81,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;
@@ -146,6 +148,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 START_COMMAND_NAME = "START";
@@ -1086,6 +1090,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/7ad8c9ac/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
index a3136d3..cf555fa 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/params_linux.py
@@ -32,6 +32,7 @@ stack_version_unformatted = str(config['hostLevelParams']['stack_version'])
 hdp_stack_version = format_hdp_stack_version(stack_version_unformatted)
 
 stack_name = default("/hostLevelParams/stack_name", None)
+current_version = default("/hostLevelParams/current_version", None)
 
 # New Cluster Stack Version that is defined during the RESTART of a Rolling Upgrade
 version = default("/commandParams/version", None)

http://git-wip-us.apache.org/repos/asf/ambari/blob/7ad8c9ac/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 4bd94bc..8176e2e 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
@@ -26,7 +26,7 @@ from ambari_commons import OSConst
 from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
 
 @OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
-def zookeeper(type = None):
+def zookeeper(type = None, rolling_restart = False):
   import params
 
   Directory(params.config_dir,
@@ -71,6 +71,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(os.path.join(params.config_dir, "log4j.properties"),

http://git-wip-us.apache.org/repos/asf/ambari/blob/7ad8c9ac/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 b2946f4..fb8a641 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
@@ -41,20 +41,21 @@ from ambari_commons.os_family_impl import OsFamilyImpl
 
 class ZookeeperServer(Script):
 
-  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 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 stop(self, env, rolling_restart=False):
     import params
     env.set_params(params)
+    self.configure(env, rolling_restart=rolling_restart)
     zookeeper_service(action = 'stop')
 
 @OsFamilyImpl(os_family=OsFamilyImpl.DEFAULT)

http://git-wip-us.apache.org/repos/asf/ambari/blob/7ad8c9ac/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 61b3f40..e4e09a3 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
@@ -62,6 +62,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',
     )
@@ -106,6 +107,7 @@ class TestZookeeperServer(RMFTestCase):
                        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',
     )