ambari-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From aonis...@apache.org
Subject [1/3] ambari git commit: AMBARI-13284. HostCleanup script does not work for hosts that are manually registered (aonishuk)
Date Thu, 01 Oct 2015 11:44:07 GMT
Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 719bea42f -> 055e184c9
  refs/heads/trunk c538a4d2c -> d2e11c868


AMBARI-13284. HostCleanup script does not work for hosts that are manually registered (aonishuk)


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

Branch: refs/heads/trunk
Commit: d2e11c86805d998796a23374a9f55b898066bbee
Parents: abf1cb8
Author: Andrew Onishuk <aonishuk@hortonworks.com>
Authored: Thu Oct 1 14:43:57 2015 +0300
Committer: Andrew Onishuk <aonishuk@hortonworks.com>
Committed: Thu Oct 1 14:43:57 2015 +0300

----------------------------------------------------------------------
 .../src/main/python/ambari_agent/HostCleanup.py | 28 +++++++++++++++++++-
 .../custom_actions/scripts/check_host.py        |  6 +++++
 nohup.out                                       | 16 +++++++++++
 3 files changed, 49 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/d2e11c86/ambari-agent/src/main/python/ambari_agent/HostCleanup.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/main/python/ambari_agent/HostCleanup.py b/ambari-agent/src/main/python/ambari_agent/HostCleanup.py
index a725d43..4d3cd83 100644
--- a/ambari-agent/src/main/python/ambari_agent/HostCleanup.py
+++ b/ambari-agent/src/main/python/ambari_agent/HostCleanup.py
@@ -34,7 +34,9 @@ import ConfigParser
 import optparse
 import shlex
 import datetime
+import tempfile
 from AmbariConfig import AmbariConfig
+from ambari_agent.Constants import AGENT_TMP_DIR
 from ambari_commons import OSCheck, OSConst
 from ambari_commons.constants import AMBARI_SUDO_BINARY
 from ambari_commons.os_family_impl import OsFamilyImpl, OsFamilyFuncImpl
@@ -46,6 +48,7 @@ GROUP_ERASE_CMD = "groupdel {0}"
 PROC_KILL_CMD = "kill -9 {0}"
 ALT_DISP_CMD = "alternatives --display {0}"
 ALT_ERASE_CMD = "alternatives --remove {0} {1}"
+RUN_HOST_CHECKS_CMD = '/var/lib/ambari-agent/cache/custom_actions/scripts/check_host.py ACTIONEXECUTE
{0} /var/lib/ambari-agent/cache/custom_actions {1} INFO {2}'
 
 REPO_PATH_RHEL = "/etc/yum.repos.d"
 REPO_PATH_SUSE = "/etc/zypp/repos.d/"
@@ -492,6 +495,19 @@ class HostCleanup:
     (stdoutdata, stderrdata) = process.communicate()
     return process.returncode, stdoutdata, stderrdata
 
+  def run_check_hosts(self):
+    config_json = '{"commandParams": {"check_execute_list": "*BEFORE_CLEANUP_HOST_CHECKS*"}}'
+    with tempfile.NamedTemporaryFile(delete=False) as config_json_file:
+      config_json_file.write(config_json)
+
+    with tempfile.NamedTemporaryFile(delete=False) as tmp_output_file:
+      tmp_output_file.write('{}')
+
+    run_checks_command = RUN_HOST_CHECKS_CMD.format(config_json_file.name, tmp_output_file.name,
AGENT_TMP_DIR)
+    (returncode, stdoutdata, stderrdata) = self.run_os_command(run_checks_command)
+    if returncode != 0:
+      logger.warn('Failed to run host checks,\nstderr:\n ' + stderrdata + '\n\nstdout:\n'
+ stdoutdata)
+
 # Copy file and save with file.# (timestamp)
 def backup_file(filePath):
   if filePath is not None and os.path.exists(filePath):
@@ -584,7 +600,17 @@ def main():
         sys.exit(1)
 
   hostcheckfile, hostcheckfileca  = options.inputfiles.split(",")
-  
+
+  # Manage non UI install
+  if not os.path.exists(hostcheckfileca):
+    if options.silent:
+      print 'Host Check results not found. There is no {0}. Running host checks.'.format(hostcheckfileca)
+      h.run_check_hosts()
+    else:
+      run_check_hosts_input = get_YN_input('Host Check results not found. There is no {0}.
Do you want to run host checks [y/n] (y)'.format(hostcheckfileca), True)
+      if run_check_hosts_input:
+        h.run_check_hosts()
+
   with open(TMP_HOST_CHECK_FILE_NAME, "wb") as tmp_f:
     with open(hostcheckfile, "rb") as f1:
       with open(hostcheckfileca, "rb") as f2:

http://git-wip-us.apache.org/repos/asf/ambari/blob/d2e11c86/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/check_host.py b/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
index a1c93b1..203b000 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/check_host.py
@@ -37,6 +37,8 @@ from resource_management.core.resources import Directory, File
 from ambari_commons.constants import AMBARI_SUDO_BINARY
 from resource_management.core import shell
 
+# WARNING. If you are adding a new host check that is used by cleanup, add it to BEFORE_CLEANUP_HOST_CHECKS
+# It is used by HostCleanup.py
 CHECK_JAVA_HOME = "java_home_check"
 CHECK_DB_CONNECTION = "db_connection_check"
 CHECK_HOST_RESOLUTION = "host_resolution_check"
@@ -45,6 +47,8 @@ CHECK_INSTALLED_PACKAGES = "installed_packages"
 CHECK_EXISTING_REPOS = "existing_repos"
 CHECK_TRANSPARENT_HUGE_PAGE = "transparentHugePage"
 
+BEFORE_CLEANUP_HOST_CHECKS = ','.join([CHECK_LAST_AGENT_ENV, CHECK_INSTALLED_PACKAGES, CHECK_EXISTING_REPOS,
CHECK_TRANSPARENT_HUGE_PAGE])
+
 DB_MYSQL = "mysql"
 DB_ORACLE = "oracle"
 DB_POSTGRESQL = "postgres"
@@ -115,6 +119,8 @@ class CheckHost(Script):
     #print "CONFIG: " + str(config)
 
     check_execute_list = config['commandParams']['check_execute_list']
+    if check_execute_list == '*BEFORE_CLEANUP_HOST_CHECKS*':
+      check_execute_list = BEFORE_CLEANUP_HOST_CHECKS
     structured_output = {}
 
     # check each of the commands; if an unknown exception wasn't handled

http://git-wip-us.apache.org/repos/asf/ambari/blob/d2e11c86/nohup.out
----------------------------------------------------------------------
diff --git a/nohup.out b/nohup.out
new file mode 100644
index 0000000..97275e2
--- /dev/null
+++ b/nohup.out
@@ -0,0 +1,16 @@
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize
+[debug] execute contextualize


Mime
View raw message