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',
)