You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2016/03/31 17:45:35 UTC
ambari git commit: AMBARI-15650. Output short logs summary on
start/stop failure (aonishuk)
Repository: ambari
Updated Branches:
refs/heads/trunk 7a909ade9 -> 017fbf130
AMBARI-15650. Output short logs summary on start/stop failure (aonishuk)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/017fbf13
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/017fbf13
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/017fbf13
Branch: refs/heads/trunk
Commit: 017fbf130f7a3ce880baa11bf6a783f3ca850d78
Parents: 7a909ad
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Thu Mar 31 18:45:27 2016 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Thu Mar 31 18:45:27 2016 +0300
----------------------------------------------------------------------
.../libraries/functions/__init__.py | 1 +
.../libraries/functions/show_logs.py | 39 +++++++++++++++
.../libraries/functions/version_select_util.py | 2 +-
.../package/scripts/accumulo_service.py | 13 +++--
.../0.1.0/package/scripts/ams_service.py | 22 ++++++---
.../package/scripts/metadata_server.py | 30 ++++++++----
.../FALCON/0.5.0.2.1/package/scripts/falcon.py | 27 +++++++----
.../FLUME/1.4.0.2.0/package/scripts/flume.py | 15 ++++--
.../0.96.0.2.0/package/scripts/hbase_service.py | 31 +++++++-----
.../2.1.0.2.0/package/scripts/params_linux.py | 3 +-
.../HDFS/2.1.0.2.0/package/scripts/utils.py | 14 +++++-
.../0.12.0.2.0/package/scripts/hive_service.py | 22 ++++++---
.../package/scripts/webhcat_service.py | 36 +++++++++-----
.../0.8.1.2.2/package/scripts/kafka_broker.py | 23 ++++++---
.../0.5.0.2.2/package/scripts/knox_gateway.py | 28 +++++++----
.../4.0.0.2.0/package/scripts/oozie_service.py | 21 +++++---
.../0.4.0/package/scripts/ranger_service.py | 20 +++++---
.../0.5.0.2.3/package/scripts/kms_service.py | 13 ++++-
.../1.2.0.2.2/package/scripts/spark_service.py | 51 +++++++++++++-------
.../STORM/0.9.1.2.1/package/scripts/service.py | 17 ++++---
.../YARN/2.1.0.2.0/package/scripts/service.py | 31 ++++++++----
.../package/scripts/zookeeper_service.py | 29 +++++++----
.../2.0.6/ZOOKEEPER/test_zookeeper_server.py | 8 ++-
.../stacks/2.3/ATLAS/test_metadata_server.py | 3 +-
24 files changed, 358 insertions(+), 141 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-common/src/main/python/resource_management/libraries/functions/__init__.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/__init__.py b/ambari-common/src/main/python/resource_management/libraries/functions/__init__.py
index e886fe4..ff4fddf 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/__init__.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/__init__.py
@@ -43,6 +43,7 @@ from resource_management.libraries.functions.get_lzo_packages import *
from resource_management.libraries.functions.setup_ranger_plugin import *
from resource_management.libraries.functions.curl_krb_request import *
from resource_management.libraries.functions.get_bare_principal import *
+from resource_management.libraries.functions.show_logs import *
IS_WINDOWS = platform.system() == "Windows"
if IS_WINDOWS:
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-common/src/main/python/resource_management/libraries/functions/show_logs.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/show_logs.py b/ambari-common/src/main/python/resource_management/libraries/functions/show_logs.py
new file mode 100644
index 0000000..bb2e12c
--- /dev/null
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/show_logs.py
@@ -0,0 +1,39 @@
+#!/usr/bin/env python
+"""
+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.
+
+"""
+__all__ = ["show_logs"]
+
+from resource_management.core.resources.system import Execute
+from resource_management.libraries.functions.format import format
+
+LAST_LINES_OUTPUT_COUNT = 40
+
+def show_logs(log_dir, user):
+ """
+ This should be used in 'except' block of start or stop Execute of services or of command which checks if start was fine.
+ It allows to give additional debugging information without need to have access to log files.
+
+ Don't forget to call "raise" after using the function or else the original exception will be masked.
+ """
+ lines_count = LAST_LINES_OUTPUT_COUNT
+ Execute(format("log_files=`find {log_dir} -maxdepth 1 -type f` ; [ ! -z \"$log_files\" ] && tail -n {lines_count} $log_files"),
+ logoutput = True,
+ ignore_failures = True, # if this fails should not overwrite the actual exception
+ user = user, # need to have permissions to read log files
+ )
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-common/src/main/python/resource_management/libraries/functions/version_select_util.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/version_select_util.py b/ambari-common/src/main/python/resource_management/libraries/functions/version_select_util.py
index 05e6eb6..9122a0e 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/version_select_util.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/version_select_util.py
@@ -55,7 +55,7 @@ def get_component_version(stack_name, component_name):
# This is necessary because Ubuntu returns "stdin: is not a tty", see AMBARI-8088
with open(tmpfile.name, 'r') as file:
get_stack_comp_version_cmd = '%s status %s > %s' % (stack_selector_path, component_name, tmpfile.name)
- code, stdoutdata = shell.call(get_stack_comp_version_cmd)
+ code, stdoutdata = shell.call(get_stack_comp_version_cmd, quiet=True)
out = file.read()
if code != 0 or out is None:
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
index e71d5af..33d3273 100644
--- a/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
+++ b/ambari-server/src/main/resources/common-services/ACCUMULO/1.6.1.2.2.0/package/scripts/accumulo_service.py
@@ -19,6 +19,7 @@ limitations under the License.
"""
from resource_management import *
+from resource_management.libraries.functions.show_logs import show_logs
import time
import os
@@ -48,10 +49,14 @@ def accumulo_service( name,
if name == 'monitor' and params.accumulo_monitor_bind_all:
address = '0.0.0.0'
daemon_cmd = format("{daemon_script} {role} --address {address} > {log_dir}/accumulo-{role}.out 2>{log_dir}/accumulo-{role}.err & echo $! > {pid_file}")
- Execute ( daemon_cmd,
- not_if=as_user(pid_exists, params.accumulo_user),
- user=params.accumulo_user
- )
+ try:
+ Execute ( daemon_cmd,
+ not_if=as_user(pid_exists, params.accumulo_user),
+ user=params.accumulo_user
+ )
+ except:
+ show_logs(params.log_dir, params.accumulo_user)
+ raise
elif action == 'stop':
no_pid_exists = format("! ({pid_exists})")
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams_service.py b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams_service.py
index c9188c2..eb1b6d7 100644
--- a/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams_service.py
+++ b/ambari-server/src/main/resources/common-services/AMBARI_METRICS/0.1.0/package/scripts/ams_service.py
@@ -19,6 +19,7 @@ limitations under the License.
"""
from resource_management import *
+from resource_management.libraries.functions.show_logs import show_logs
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
from hbase_service import hbase_service
@@ -77,9 +78,13 @@ def ams_service(name, action):
else:
daemon_cmd = format("{cmd} start")
- Execute(daemon_cmd,
- user=params.ams_user
- )
+ try:
+ Execute(daemon_cmd,
+ user=params.ams_user
+ )
+ except:
+ show_logs(params.ams_collector_log_dir, params.ams_user)
+ raise
pass
elif action == 'stop':
@@ -97,9 +102,14 @@ def ams_service(name, action):
if action == 'start':
daemon_cmd = format("{cmd} start")
- Execute(daemon_cmd,
- user=params.ams_user
- )
+
+ try:
+ Execute(daemon_cmd,
+ user=params.ams_user
+ )
+ except:
+ show_logs(params.ams_monitor_log_dir, params.ams_user)
+ raise
pass
elif action == 'stop':
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py
index b6374f9..46c8fd3 100644
--- a/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py
+++ b/ambari-server/src/main/resources/common-services/ATLAS/0.1.0.2.3/package/scripts/metadata_server.py
@@ -19,12 +19,13 @@ limitations under the License.
from metadata import metadata
from resource_management.libraries.functions import conf_select
from resource_management.libraries.functions import stack_select
-from resource_management import Execute, check_process_status, Script
+from resource_management import Execute, File, check_process_status, Script
from resource_management.libraries.functions import format
from resource_management.libraries.functions.version import compare_versions, format_stack_version
from resource_management.libraries.functions.security_commons import build_expectations, \
get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_PROPERTIES
+from resource_management.libraries.functions.show_logs import show_logs
class MetadataServer(Script):
@@ -54,19 +55,30 @@ class MetadataServer(Script):
daemon_cmd = format('source {params.conf_dir}/atlas-env.sh ; {params.metadata_start_script}')
no_op_test = format('ls {params.pid_file} >/dev/null 2>&1 && ps -p `cat {params.pid_file}` >/dev/null 2>&1')
- Execute(daemon_cmd,
- user=params.metadata_user,
- not_if=no_op_test
- )
+
+ try:
+ Execute(daemon_cmd,
+ user=params.metadata_user,
+ not_if=no_op_test
+ )
+ except:
+ show_logs(params.log_dir, params.metadata_user)
+ raise
def stop(self, env, upgrade_type=None):
import params
env.set_params(params)
daemon_cmd = format('source {params.conf_dir}/atlas-env.sh; {params.metadata_stop_script}')
- Execute(daemon_cmd,
- user=params.metadata_user,
- )
- Execute (format("rm -f {params.pid_file}"))
+
+ try:
+ Execute(daemon_cmd,
+ user=params.metadata_user,
+ )
+ except:
+ show_logs(params.log_dir, params.metadata_user)
+ raise
+
+ File(params.pid_file, action="delete")
def status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
index 7b469d3..46457ad 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon.py
@@ -31,6 +31,7 @@ from resource_management.core.resources.system import Link
from resource_management.libraries.script import Script
from resource_management.libraries.resources import PropertiesFile
from resource_management.libraries.functions import format
+from resource_management.libraries.functions.show_logs import show_logs
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -179,10 +180,14 @@ def falcon(type, action = None, upgrade_type=None):
environment_dictionary = { "HADOOP_HOME" : params.hadoop_home_dir }
if action == 'start':
- Execute(format('{falcon_home}/bin/falcon-start -port {falcon_port}'),
- user = params.falcon_user,
- path = params.hadoop_bin_dir,
- environment=environment_dictionary)
+ try:
+ Execute(format('{falcon_home}/bin/falcon-start -port {falcon_port}'),
+ user = params.falcon_user,
+ path = params.hadoop_bin_dir,
+ environment=environment_dictionary)
+ except:
+ show_logs(params.falcon_log_dir, params.falcon_user)
+ raise
if params.has_atlas:
atlas_falcon_hook_dir = os.path.join(params.atlas_home_dir, "hook", "falcon")
@@ -195,11 +200,15 @@ def falcon(type, action = None, upgrade_type=None):
Link(falcon_lib_file_name, to = atlas_falcon_hook_file_name)
if action == 'stop':
- Execute(format('{falcon_home}/bin/falcon-stop'),
- user = params.falcon_user,
- path = params.hadoop_bin_dir,
- environment=environment_dictionary)
-
+ try:
+ Execute(format('{falcon_home}/bin/falcon-stop'),
+ user = params.falcon_user,
+ path = params.hadoop_bin_dir,
+ environment=environment_dictionary)
+ except:
+ show_logs(params.falcon_log_dir, params.falcon_user)
+ raise
+
File(params.server_pid_file, action = 'delete')
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
index b30b122..db52431 100644
--- a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
+++ b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume.py
@@ -26,6 +26,7 @@ from resource_management.libraries.functions.flume_agent_helper import find_expe
from resource_management.libraries.functions.flume_agent_helper import await_flume_process_termination
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
+from resource_management.libraries.functions.show_logs import show_logs
@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
def flume(action = None):
@@ -184,10 +185,15 @@ def flume(action = None):
# sometimes startup spawns a couple of threads - so only the first line may count
pid_cmd = as_sudo(('pgrep', '-o', '-u', params.flume_user, '-f', format('^{java_home}.*{agent}.*'))) + \
" | " + as_sudo(('tee', flume_agent_pid_file)) + " && test ${PIPESTATUS[0]} -eq 0"
- Execute(pid_cmd,
- logoutput=True,
- tries=20,
- try_sleep=10)
+
+ try:
+ Execute(pid_cmd,
+ logoutput=True,
+ tries=20,
+ try_sleep=10)
+ except:
+ show_logs(params.flume_log_dir, None)
+ raise
pass
elif action == 'stop':
@@ -211,6 +217,7 @@ def flume(action = None):
Execute(("kill", "-15", pid), sudo=True) # kill command has to be a tuple
if not await_flume_process_termination(pid_file):
+ show_logs(params.flume_log_dir, None)
raise Fail("Can't stop flume agent: {0}".format(agent))
File(pid_file, action = 'delete')
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_service.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_service.py
index ef4cd5b..a6904f6 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_service.py
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_service.py
@@ -35,20 +35,29 @@ def hbase_service(
if action == 'start':
daemon_cmd = format("{cmd} start {role}")
- Execute ( daemon_cmd,
- not_if = no_op_test,
- user = params.hbase_user
- )
+ try:
+ Execute ( daemon_cmd,
+ not_if = no_op_test,
+ user = params.hbase_user
+ )
+ except:
+ show_logs(params.log_dir, params.hbase_user)
+ raise
elif action == 'stop':
daemon_cmd = format("{cmd} stop {role}")
- Execute ( daemon_cmd,
- user = params.hbase_user,
- only_if = no_op_test,
- # BUGFIX: hbase regionserver sometimes hangs when nn is in safemode
- timeout = 30,
- on_timeout = format("! ( {no_op_test} ) || {sudo} -H -E kill -9 `{pid_expression}`"),
- )
+ try:
+ Execute ( daemon_cmd,
+ user = params.hbase_user,
+ only_if = no_op_test,
+ # BUGFIX: hbase regionserver sometimes hangs when nn is in safemode
+ timeout = 30,
+ on_timeout = format("! ( {no_op_test} ) || {sudo} -H -E kill -9 `{pid_expression}`"),
+ )
+ except:
+ show_logs(params.log_dir, params.hbase_user)
+ raise
+
File(pid_file,
action = "delete",
)
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py
index d6dec26..d4894ba 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/params_linux.py
@@ -223,7 +223,8 @@ jn_edits_dir = config['configurations']['hdfs-site']['dfs.journalnode.edits.dir'
dfs_name_dir = config['configurations']['hdfs-site']['dfs.namenode.name.dir']
-namenode_dirs_created_stub_dir = format("{hdfs_log_dir_prefix}/{hdfs_user}")
+hdfs_log_dir = format("{hdfs_log_dir_prefix}/{hdfs_user}")
+namenode_dirs_created_stub_dir = hdfs_log_dir
namenode_dirs_stub_filename = "namenode_dirs_created"
smoke_hdfs_user_dir = format("/user/{smoke_user}")
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
index 339d52a..f9ee40d 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/utils.py
@@ -34,6 +34,7 @@ from resource_management.libraries.functions.curl_krb_request import curl_krb_re
from resource_management.core.exceptions import Fail
from resource_management.libraries.functions.namenode_ha_utils import get_namenode_states
from resource_management.libraries.script.script import Script
+from resource_management.libraries.functions.show_logs import show_logs
from zkfc_slave import ZkfcSlave
@@ -265,9 +266,18 @@ def service(action=None, name=None, user=None, options="", create_pid_dir=False,
if action == "start":
# remove pid file from dead process
File(pid_file, action="delete", not_if=process_id_exists_command)
- Execute(daemon_cmd, not_if=process_id_exists_command, environment=hadoop_env_exports)
+
+ try:
+ Execute(daemon_cmd, not_if=process_id_exists_command, environment=hadoop_env_exports)
+ except:
+ show_logs(params.hdfs_log_dir, user)
+ raise
elif action == "stop":
- Execute(daemon_cmd, only_if=process_id_exists_command, environment=hadoop_env_exports)
+ try:
+ Execute(daemon_cmd, only_if=process_id_exists_command, environment=hadoop_env_exports)
+ except:
+ show_logs(params.hdfs_log_dir, user)
+ raise
File(pid_file, action="delete")
def get_jmx_data(nn_address, modeler_type, metric, encrypted=False, security_enabled=False):
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py
index 2f94dfb..3aa6536 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_service.py
@@ -31,6 +31,7 @@ from resource_management.core.exceptions import Fail
from resource_management.core.shell import as_user
from resource_management.libraries.functions.hive_check import check_thrift_port_sasl
from resource_management.libraries.functions import get_user_call_output
+from resource_management.libraries.functions.show_logs import show_logs
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
from ambari_commons import OSConst
@@ -100,8 +101,13 @@ def hive_service(name, action='start', upgrade_type=None):
db_connection_check_command = format(
"{java64_home}/bin/java -cp {check_db_connection_jar}:{target} org.apache.ambari.server.DBConnectionVerification '{hive_jdbc_connection_url}' {hive_metastore_user_name} {hive_metastore_user_passwd!p} {hive_jdbc_driver}")
- Execute(db_connection_check_command,
+ try:
+ Execute(db_connection_check_command,
path='/usr/sbin:/sbin:/usr/local/bin:/bin:/usr/bin', tries=5, try_sleep=10)
+ except:
+ show_logs(params.hive_log_dir, user)
+ raise
+
elif action == 'stop':
daemon_kill_cmd = format("{sudo} kill {pid}")
@@ -116,11 +122,15 @@ def hive_service(name, action='start', upgrade_type=None):
not_if = format("! ({process_id_exists_command}) || ( sleep {wait_time} && ! ({process_id_exists_command}) )")
)
- # check if stopped the process, else fail the task
- Execute(format("! ({process_id_exists_command})"),
- tries=20,
- try_sleep=3,
- )
+ try:
+ # check if stopped the process, else fail the task
+ Execute(format("! ({process_id_exists_command})"),
+ tries=20,
+ try_sleep=3,
+ )
+ except:
+ show_logs(params.hive_log_dir, user)
+ raise
File(pid_file,
action = "delete"
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service.py
index 2553c70..10e0990 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_service.py
@@ -46,15 +46,23 @@ def webhcat_service(action='start', upgrade_type=None):
daemon_cmd = format('cd {hcat_pid_dir} ; {cmd} start')
no_op_test = as_user(format('ls {webhcat_pid_file} >/dev/null 2>&1 && ps -p `cat {webhcat_pid_file}` >/dev/null 2>&1'), user=params.webhcat_user)
- Execute(daemon_cmd,
- user=params.webhcat_user,
- not_if=no_op_test,
- environment = environ)
+ try:
+ Execute(daemon_cmd,
+ user=params.webhcat_user,
+ not_if=no_op_test,
+ environment = environ)
+ except:
+ show_logs(params.hcat_log_dir, params.webhcat_user)
+ raise
elif action == 'stop':
daemon_cmd = format('{cmd} stop')
- Execute(daemon_cmd,
- user = params.webhcat_user,
- environment = environ)
+ try:
+ Execute(daemon_cmd,
+ user = params.webhcat_user,
+ environment = environ)
+ except:
+ show_logs(params.hcat_log_dir, params.webhcat_user)
+ raise
pid_expression = "`" + as_user(format("cat {webhcat_pid_file}"), user=params.webhcat_user) + "`"
process_id_exists_command = format("ls {webhcat_pid_file} >/dev/null 2>&1 && ps -p {pid_expression} >/dev/null 2>&1")
@@ -64,11 +72,15 @@ def webhcat_service(action='start', upgrade_type=None):
not_if = format("! ({process_id_exists_command}) || ( sleep {wait_time} && ! ({process_id_exists_command}) )")
)
- # check if stopped the process, else fail the task
- Execute(format("! ({process_id_exists_command})"),
- tries=20,
- try_sleep=3,
- )
+ try:
+ # check if stopped the process, else fail the task
+ Execute(format("! ({process_id_exists_command})"),
+ tries=20,
+ try_sleep=3,
+ )
+ except:
+ show_logs(params.hcat_log_dir, params.webhcat_user)
+ raise
File(params.webhcat_pid_file,
action="delete",
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py
index 2043cfa..41074db 100644
--- a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py
+++ b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/kafka_broker.py
@@ -27,6 +27,7 @@ from resource_management.libraries.functions.format import format
from resource_management.libraries.functions.check_process_status import check_process_status
from resource_management.libraries.functions import StackFeature
from resource_management.libraries.functions.stack_features import check_stack_feature
+from resource_management.libraries.functions.show_logs import show_logs
from kafka import ensure_base_directories
import upgrade
@@ -82,10 +83,14 @@ class KafkaBroker(Script):
setup_ranger_kafka() #Ranger Kafka Plugin related call
daemon_cmd = format('source {params.conf_dir}/kafka-env.sh ; {params.kafka_bin} start')
no_op_test = format('ls {params.kafka_pid_file} >/dev/null 2>&1 && ps -p `cat {params.kafka_pid_file}` >/dev/null 2>&1')
- Execute(daemon_cmd,
- user=params.kafka_user,
- not_if=no_op_test
- )
+ try:
+ Execute(daemon_cmd,
+ user=params.kafka_user,
+ not_if=no_op_test
+ )
+ except:
+ show_logs(params.kafka_log_dir, params.kafka_user)
+ raise
def stop(self, env, upgrade_type=None):
import params
@@ -95,9 +100,13 @@ class KafkaBroker(Script):
# before attempting to stop Kafka Broker
ensure_base_directories()
daemon_cmd = format('source {params.conf_dir}/kafka-env.sh; {params.kafka_bin} stop')
- Execute(daemon_cmd,
- user=params.kafka_user,
- )
+ try:
+ Execute(daemon_cmd,
+ user=params.kafka_user,
+ )
+ except:
+ show_logs(params.kafka_log_dir, params.kafka_user)
+ raise
File(params.kafka_pid_file,
action = "delete"
)
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
index af0442c..b72fc6f 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
@@ -35,6 +35,7 @@ from resource_management.libraries.functions.security_commons import build_expec
from resource_management.core.resources.system import File, Execute, Directory, Link
from resource_management.core.resources.service import Service
from resource_management.core.logger import Logger
+from resource_management.libraries.functions.show_logs import show_logs
from ambari_commons import OSConst, OSCheck
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -157,11 +158,15 @@ class KnoxGatewayDefault(KnoxGateway):
update_knox_logfolder_permissions()
- Execute(daemon_cmd,
- user=params.knox_user,
- environment={'JAVA_HOME': params.java_home},
- not_if=no_op_test
- )
+ try:
+ Execute(daemon_cmd,
+ user=params.knox_user,
+ environment={'JAVA_HOME': params.java_home},
+ not_if=no_op_test
+ )
+ except:
+ show_logs(params.knox_logs_dir, params.knox_user)
+ raise
def stop(self, env, upgrade_type=None):
import params
@@ -170,10 +175,15 @@ class KnoxGatewayDefault(KnoxGateway):
update_knox_logfolder_permissions()
- Execute(daemon_cmd,
- environment={'JAVA_HOME': params.java_home},
- user=params.knox_user,
- )
+ try:
+ Execute(daemon_cmd,
+ environment={'JAVA_HOME': params.java_home},
+ user=params.knox_user,
+ )
+ except:
+ show_logs(params.knox_logs_dir, params.knox_user)
+ raise
+
File(params.knox_pid_file,
action="delete",
)
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_service.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_service.py
index 5a2474f..3060353 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_service.py
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_service.py
@@ -20,6 +20,7 @@ limitations under the License.
import os
from resource_management import *
from resource_management.core.shell import as_user
+from resource_management.libraries.functions.show_logs import show_logs
from resource_management.libraries.providers.hdfs_resource import WebHDFSUtil
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
from ambari_commons import OSConst
@@ -124,15 +125,23 @@ def oozie_service(action = 'start', upgrade_type=None):
params.HdfsResource(None, action="execute")
- # start oozie
- Execute( start_cmd, environment=environment, user = params.oozie_user,
- not_if = no_op_test )
+ try:
+ # start oozie
+ Execute( start_cmd, environment=environment, user = params.oozie_user,
+ not_if = no_op_test )
+ except:
+ show_logs(params.oozie_log_dir, params.oozie_user)
+ raise
elif action == 'stop':
stop_cmd = format("cd {oozie_tmp_dir} && {oozie_home}/bin/oozie-stop.sh")
- # stop oozie
- Execute(stop_cmd, environment=environment, only_if = no_op_test,
- user = params.oozie_user)
+ try:
+ # stop oozie
+ Execute(stop_cmd, environment=environment, only_if = no_op_test,
+ user = params.oozie_user)
+ except:
+ show_logs(params.oozie_log_dir, params.oozie_user)
+ raise
File(params.pid_file, action = "delete")
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
index 0cb56aa..9477b8e 100644
--- a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
+++ b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/ranger_service.py
@@ -28,17 +28,25 @@ def ranger_service(name, action=None):
if name == 'ranger_admin':
no_op_test = format('ps -ef | grep proc_rangeradmin | grep -v grep')
- Execute(params.ranger_start, environment=env_dict, user=params.unix_user, not_if=no_op_test)
+ try:
+ Execute(params.ranger_start, environment=env_dict, user=params.unix_user, not_if=no_op_test)
+ except:
+ show_logs(params.admin_log_dir, params.unix_user)
+ raise
elif name == 'ranger_usersync':
no_op_test = format('ps -ef | grep proc_rangerusersync | grep -v grep')
if params.stack_supports_usersync_non_root:
- Execute(params.usersync_start,
- environment=env_dict,
- not_if=no_op_test,
- user=params.unix_user,
- )
+ try:
+ Execute(params.usersync_start,
+ environment=env_dict,
+ not_if=no_op_test,
+ user=params.unix_user,
+ )
+ except:
+ show_logs(params.usersync_log_dir, params.unix_user)
+ raise
else:
# Usersync requires to be run as root for 2.2
Execute((params.usersync_start,),
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms_service.py b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms_service.py
index f5b0c83..55c0486 100644
--- a/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms_service.py
+++ b/ambari-server/src/main/resources/common-services/RANGER_KMS/0.5.0.2.3/package/scripts/kms_service.py
@@ -23,6 +23,7 @@ from resource_management.core import shell
from resource_management.libraries.functions.format import format
from resource_management.core.exceptions import ComponentIsNotRunning
from resource_management.core.logger import Logger
+from resource_management.libraries.functions.show_logs import show_logs
def kms_service(action='start'):
import params
@@ -34,7 +35,15 @@ def kms_service(action='start'):
if action == 'start':
no_op_test = format('ps -ef | grep proc_rangerkms | grep -v grep')
cmd = format('{kms_home}/ranger-kms start')
- Execute(cmd, not_if=no_op_test, environment=env_dict, user=format('{kms_user}'))
+ try:
+ Execute(cmd, not_if=no_op_test, environment=env_dict, user=format('{kms_user}'))
+ except:
+ show_logs(params.kms_log_dir, params.kms_user)
+ raise
elif action == 'stop':
cmd = format('{kms_home}/ranger-kms stop')
- Execute(cmd, environment=env_dict, user=format('{kms_user}'))
+ try:
+ Execute(cmd, environment=env_dict, user=format('{kms_user}'))
+ except:
+ show_logs(params.kms_log_dir, params.kms_user)
+ raise
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_service.py b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_service.py
index 6ada1c2..c3784d6 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_service.py
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_service.py
@@ -27,6 +27,7 @@ from resource_management.core.resources.system import File, Execute
from resource_management.libraries.functions.version import format_stack_version
from resource_management.libraries.functions.stack_features import check_stack_feature
from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.functions.show_logs import show_logs
def spark_service(name, upgrade_type=None, action=None):
import params
@@ -65,10 +66,14 @@ def spark_service(name, upgrade_type=None, action=None):
if name == 'jobhistoryserver':
historyserver_no_op_test = format(
'ls {spark_history_server_pid_file} >/dev/null 2>&1 && ps -p `cat {spark_history_server_pid_file}` >/dev/null 2>&1')
- Execute(format('{spark_history_server_start}'),
- user=params.spark_user,
- environment={'JAVA_HOME': params.java_home},
- not_if=historyserver_no_op_test)
+ try:
+ Execute(format('{spark_history_server_start}'),
+ user=params.spark_user,
+ environment={'JAVA_HOME': params.java_home},
+ not_if=historyserver_no_op_test)
+ except:
+ show_logs(params.spark_log_dir, user=params.spark_user)
+ raise
elif name == 'sparkthriftserver':
if params.security_enabled:
@@ -78,26 +83,38 @@ def spark_service(name, upgrade_type=None, action=None):
thriftserver_no_op_test = format(
'ls {spark_thrift_server_pid_file} >/dev/null 2>&1 && ps -p `cat {spark_thrift_server_pid_file}` >/dev/null 2>&1')
- Execute(format('{spark_thrift_server_start} --properties-file {spark_thrift_server_conf_file} {spark_thrift_cmd_opts_properties}'),
- user=params.hive_user,
- environment={'JAVA_HOME': params.java_home},
- not_if=thriftserver_no_op_test
- )
+ try:
+ Execute(format('{spark_thrift_server_start} --properties-file {spark_thrift_server_conf_file} {spark_thrift_cmd_opts_properties}'),
+ user=params.hive_user,
+ environment={'JAVA_HOME': params.java_home},
+ not_if=thriftserver_no_op_test
+ )
+ except:
+ show_logs(params.spark_log_dir, user=params.hive_user)
+ raise
elif action == 'stop':
if name == 'jobhistoryserver':
- Execute(format('{spark_history_server_stop}'),
- user=params.spark_user,
- environment={'JAVA_HOME': params.java_home}
- )
+ try:
+ Execute(format('{spark_history_server_stop}'),
+ user=params.spark_user,
+ environment={'JAVA_HOME': params.java_home}
+ )
+ except:
+ show_logs(params.spark_log_dir, user=params.spark_user)
+ raise
File(params.spark_history_server_pid_file,
action="delete"
)
elif name == 'sparkthriftserver':
- Execute(format('{spark_thrift_server_stop}'),
- user=params.hive_user,
- environment={'JAVA_HOME': params.java_home}
- )
+ try:
+ Execute(format('{spark_thrift_server_stop}'),
+ user=params.hive_user,
+ environment={'JAVA_HOME': params.java_home}
+ )
+ except:
+ show_logs(params.spark_log_dir, user=params.hive_user)
+ raise
File(params.spark_thrift_server_pid_file,
action="delete"
)
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
index 0222d71..d0b717f 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/service.py
@@ -25,6 +25,7 @@ from resource_management.core.resources import File
from resource_management.core.shell import as_user
from resource_management.libraries.functions.format import format
from resource_management.libraries.functions import get_user_call_output
+from resource_management.libraries.functions.show_logs import show_logs
import time
@@ -65,12 +66,16 @@ def service(name, action = 'start'):
wait_for_finish = False,
path = params.storm_bin_dir)
- Execute(crt_pid_cmd,
- user = params.storm_user,
- logoutput = True,
- tries = tries_count,
- try_sleep = 10,
- path = params.storm_bin_dir)
+ try:
+ Execute(crt_pid_cmd,
+ user = params.storm_user,
+ logoutput = True,
+ tries = tries_count,
+ try_sleep = 10,
+ path = params.storm_bin_dir)
+ except:
+ show_logs(params.log_dir, params.storm_user)
+ raise
elif action == "stop":
process_dont_exist = format("! ({no_op_test})")
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service.py
index 6d9aef5..0703c1f 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/service.py
@@ -23,6 +23,7 @@ from resource_management import *
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
from ambari_commons import OSConst
from resource_management.core.shell import as_user
+from resource_management.libraries.functions.show_logs import show_logs
@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
def service(componentName, action='start', serviceName='yarn'):
@@ -44,6 +45,7 @@ def service(componentName, action='start', serviceName='yarn'):
daemon = format("{mapred_bin}/mr-jobhistory-daemon.sh")
pid_file = format("{mapred_pid_dir}/mapred-{mapred_user}-{componentName}.pid")
usr = params.mapred_user
+ log_dir = params.yarn_log_dir
else:
# !!! yarn-daemon.sh deletes the PID for us; if we remove it the script
# may not work correctly when stopping the service
@@ -51,6 +53,7 @@ def service(componentName, action='start', serviceName='yarn'):
daemon = format("{yarn_bin}/yarn-daemon.sh")
pid_file = format("{yarn_pid_dir}/yarn-{yarn_user}-{componentName}.pid")
usr = params.yarn_user
+ log_dir = params.mapred_log_dir
cmd = format("export HADOOP_LIBEXEC_DIR={hadoop_libexec_dir} && {daemon} --config {hadoop_conf_dir}")
@@ -69,19 +72,27 @@ def service(componentName, action='start', serviceName='yarn'):
ignore_failures = True
)
- # Attempt to start the process. Internally, this is skipped if the process is already running.
- Execute(daemon_cmd, user = usr, not_if = check_process)
-
- # Ensure that the process with the expected PID exists.
- Execute(check_process,
- not_if = check_process,
- tries=5,
- try_sleep=1,
- )
+ try:
+ # Attempt to start the process. Internally, this is skipped if the process is already running.
+ Execute(daemon_cmd, user = usr, not_if = check_process)
+
+ # Ensure that the process with the expected PID exists.
+ Execute(check_process,
+ not_if = check_process,
+ tries=5,
+ try_sleep=1,
+ )
+ except:
+ show_logs(log_dir, usr)
+ raise
elif action == 'stop':
daemon_cmd = format("{cmd} stop {componentName}")
- Execute(daemon_cmd, user=usr)
+ try:
+ Execute(daemon_cmd, user=usr)
+ except:
+ show_logs(log_dir, usr)
+ raise
# !!! yarn-daemon doesn't need us to delete PIDs
if delete_pid_file is True:
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
index d645997..9f943d7 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper_service.py
@@ -27,7 +27,8 @@ from resource_management.libraries.functions import conf_select
from resource_management.libraries.functions import stack_select
from resource_management.libraries.functions import StackFeature
from resource_management.libraries.functions.version import compare_versions, format_stack_version
-from resource_management.libraries.functions.stack_features import check_stack_feature
+from resource_management.libraries.functions.stack_features import check_stack_feature
+from resource_management.libraries.functions.show_logs import show_logs
@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def zookeeper_service(action='start', upgrade_type=None):
@@ -44,10 +45,15 @@ def zookeeper_service(action='start', upgrade_type=None):
if action == 'start':
daemon_cmd = format("source {config_dir}/zookeeper-env.sh ; {cmd} start")
no_op_test = format("ls {zk_pid_file} >/dev/null 2>&1 && ps -p `cat {zk_pid_file}` >/dev/null 2>&1")
- Execute(daemon_cmd,
- not_if=no_op_test,
- user=params.zk_user
- )
+
+ try:
+ Execute(daemon_cmd,
+ not_if=no_op_test,
+ user=params.zk_user
+ )
+ except:
+ show_logs(params.zk_log_dir, params.zk_user)
+ raise
if params.security_enabled:
kinit_cmd = format("{kinit_path_local} -kt {smoke_user_keytab} {smokeuser_principal};")
@@ -58,11 +64,14 @@ def zookeeper_service(action='start', upgrade_type=None):
elif action == 'stop':
daemon_cmd = format("source {config_dir}/zookeeper-env.sh ; {cmd} stop")
- rm_pid = format("rm -f {zk_pid_file}")
- Execute(daemon_cmd,
- user=params.zk_user
- )
- Execute(rm_pid)
+ try:
+ Execute(daemon_cmd,
+ user=params.zk_user
+ )
+ except:
+ show_logs(params.zk_log_dir, params.zk_user)
+ raise
+ File(params.zk_pid_file, action="delete")
@OsFamilyFuncImpl(os_family=OSConst.WINSRV_FAMILY)
def zookeeper_service(action='start', rolling_restart=False):
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/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 1c20915..2bd9944 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
@@ -67,7 +67,9 @@ class TestZookeeperServer(RMFTestCase):
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',
)
- self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertResourceCalled('File', '/var/run/zookeeper/zookeeper_server.pid',
+ action = ['delete'],
+ )
self.assertNoMoreResources()
def test_configure_secured(self):
@@ -112,7 +114,9 @@ class TestZookeeperServer(RMFTestCase):
user = 'zookeeper',
)
- self.assertResourceCalled('Execute', 'rm -f /var/run/zookeeper/zookeeper_server.pid')
+ self.assertResourceCalled('File', '/var/run/zookeeper/zookeeper_server.pid',
+ action = ['delete'],
+ )
self.assertNoMoreResources()
def assert_configure_default(self):
http://git-wip-us.apache.org/repos/asf/ambari/blob/017fbf13/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py b/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
index ab5236b..e52f29c 100644
--- a/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
+++ b/ambari-server/src/test/python/stacks/2.3/ATLAS/test_metadata_server.py
@@ -148,5 +148,6 @@ class TestMetadataServer(RMFTestCase):
self.assertResourceCalled('Execute', 'source /etc/atlas/conf/atlas-env.sh; /usr/hdp/current/atlas-server/bin/atlas_stop.py',
user = 'atlas',
)
- self.assertResourceCalled('Execute', 'rm -f /var/run/atlas/atlas.pid',
+ self.assertResourceCalled('File', '/var/run/atlas/atlas.pid',
+ action = ['delete'],
)