Repository: ambari Updated Branches: refs/heads/branch-2.0.0 f65f17e44 -> 66f8ecbef
AMBARI-9912 Config validation error while trying to install a 3 node cluster on Ubuntu Fixed shell script shebang line. Fixed OS-dependent disk capacity retrieval routines. Normalized imports. No new/updated unit tests needed. The existing unit tests provide the necessary coverage. Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/66f8ecbe Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/66f8ecbe Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/66f8ecbe Branch: refs/heads/branch-2.0.0 Commit: 66f8ecbefbff68e9cfe811fe08a8c4bcaab2a7e4 Parents: f65f17e Author: Florian Barca <fba...@hortonworks.com> Authored: Tue Mar 3 17:15:21 2015 -0800 Committer: Florian Barca <fba...@hortonworks.com> Committed: Tue Mar 3 17:15:21 2015 -0800 ---------------------------------------------------------------------- ambari-agent/conf/unix/ambari-sudo.sh | 2 +- .../src/main/python/ambari_agent/Controller.py | 18 +++++++-------- .../src/main/python/ambari_agent/Hardware.py | 14 ++++-------- .../src/main/python/ambari_agent/Heartbeat.py | 24 ++++++++++++++------ .../stacks/HDP/2.0.6/services/stack_advisor.py | 3 +++ 5 files changed, 35 insertions(+), 26 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/66f8ecbe/ambari-agent/conf/unix/ambari-sudo.sh ---------------------------------------------------------------------- diff --git a/ambari-agent/conf/unix/ambari-sudo.sh b/ambari-agent/conf/unix/ambari-sudo.sh index 0909594..80761c5 100755 --- a/ambari-agent/conf/unix/ambari-sudo.sh +++ b/ambari-agent/conf/unix/ambari-sudo.sh @@ -1,4 +1,4 @@ -#/bin/bash +#!/bin/bash # 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. http://git-wip-us.apache.org/repos/asf/ambari/blob/66f8ecbe/ambari-agent/src/main/python/ambari_agent/Controller.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/Controller.py b/ambari-agent/src/main/python/ambari_agent/Controller.py index bd961c1..6a4ecde 100644 --- a/ambari-agent/src/main/python/ambari_agent/Controller.py +++ b/ambari-agent/src/main/python/ambari_agent/Controller.py @@ -36,15 +36,15 @@ import security import ssl import AmbariConfig -from Heartbeat import Heartbeat -from Register import Register -from ActionQueue import ActionQueue -from FileCache import FileCache -from NetUtil import NetUtil -from LiveStatus import LiveStatus -from AlertSchedulerHandler import AlertSchedulerHandler -from ClusterConfiguration import ClusterConfiguration -from HeartbeatHandlers import HeartbeatStopHandlers, bind_signal_handlers +from ambari_agent.Heartbeat import Heartbeat +from ambari_agent.Register import Register +from ambari_agent.ActionQueue import ActionQueue +from ambari_agent.FileCache import FileCache +from ambari_agent.NetUtil import NetUtil +from ambari_agent.LiveStatus import LiveStatus +from ambari_agent.AlertSchedulerHandler import AlertSchedulerHandler +from ambari_agent.ClusterConfiguration import ClusterConfiguration +from ambari_agent.HeartbeatHandlers import HeartbeatStopHandlers, bind_signal_handlers logger = logging.getLogger() http://git-wip-us.apache.org/repos/asf/ambari/blob/66f8ecbe/ambari-agent/src/main/python/ambari_agent/Hardware.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/Hardware.py b/ambari-agent/src/main/python/ambari_agent/Hardware.py index 54276af..5fbe2f8 100644 --- a/ambari-agent/src/main/python/ambari_agent/Hardware.py +++ b/ambari-agent/src/main/python/ambari_agent/Hardware.py @@ -26,6 +26,7 @@ from ambari_commons.constants import AMBARI_SUDO_BINARY from ambari_commons.shell import shellRunner from Facter import Facter from ambari_commons.os_check import OSConst, OSCheck +from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl logger = logging.getLogger() class Hardware: @@ -34,7 +35,7 @@ class Hardware: def __init__(self): self.hardware = {} - osdisks = self.osdisks() + osdisks = Hardware.osdisks() self.hardware['mounts'] = osdisks otherInfo = Facter().facterInfo() self.hardware.update(otherInfo) @@ -62,14 +63,8 @@ class Hardware: return None @staticmethod + @OsFamilyFuncImpl(OsFamilyImpl.DEFAULT) def osdisks(): - if OSCheck.get_os_family() == OSConst.WINSRV_FAMILY: - return Hardware._osdisks_win() - else: - return Hardware._osdisks_linux() - - @staticmethod - def _osdisks_linux(): """ Run df to find out the disks on the host. Only works on linux platforms. Note that this parser ignores any filesystems with spaces and any mounts with spaces. """ @@ -93,7 +88,8 @@ class Hardware: return False @staticmethod - def _osdisks_win(): + @OsFamilyFuncImpl(OSConst.WINSRV_FAMILY) + def osdisks(): mounts = [] runner = shellRunner() command_result = runner.runPowershell(script_block=Hardware.WINDOWS_GET_DRIVES_CMD) http://git-wip-us.apache.org/repos/asf/ambari/blob/66f8ecbe/ambari-agent/src/main/python/ambari_agent/Heartbeat.py ---------------------------------------------------------------------- diff --git a/ambari-agent/src/main/python/ambari_agent/Heartbeat.py b/ambari-agent/src/main/python/ambari_agent/Heartbeat.py index 695c0fc..4b4937e 100644 --- a/ambari-agent/src/main/python/ambari_agent/Heartbeat.py +++ b/ambari-agent/src/main/python/ambari_agent/Heartbeat.py @@ -20,14 +20,13 @@ limitations under the License. import json import logging +import os import time from pprint import pformat -from ActionQueue import ActionQueue -import AmbariConfig -import hostname -from HostInfo import HostInfo -from Hardware import Hardware +from ambari_agent.hostname import hostname +from ambari_agent.HostInfo import HostInfo +from ambari_agent.Hardware import Hardware logger = logging.getLogger() @@ -52,7 +51,7 @@ class Heartbeat: heartbeat = { 'responseId' : int(id), 'timestamp' : timestamp, - 'hostname' : hostname.hostname(self.config), + 'hostname' : hostname(self.config), 'nodeStatus' : nodeStatus } @@ -98,7 +97,18 @@ class Heartbeat: return heartbeat def main(argv=None): - actionQueue = ActionQueue(AmbariConfig.config) + from ambari_agent.ActionQueue import ActionQueue + from ambari_agent.AmbariConfig import AmbariConfig + from ambari_agent.Controller import Controller + + cfg = AmbariConfig() + if os.path.exists(AmbariConfig.getConfigFile()): + cfg.read(AmbariConfig.getConfigFile()) + else: + raise Exception("No config found, use default") + + ctl = Controller(cfg) + actionQueue = ActionQueue(cfg, ctl) heartbeat = Heartbeat(actionQueue) print json.dumps(heartbeat.build('3',3)) http://git-wip-us.apache.org/repos/asf/ambari/blob/66f8ecbe/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py index 776b1d5..08d3ef5 100644 --- a/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py +++ b/ambari-server/src/main/resources/stacks/HDP/2.0.6/services/stack_advisor.py @@ -381,6 +381,9 @@ class HDP206StackAdvisor(DefaultStackAdvisor): mountPoints[mountPoint["mountpoint"]] = to_number(mountPoint["available"]) mountPoint = getMountPointForDir(dir, mountPoints.keys()) + if not mountPoints: + return self.getErrorItem("No disk info found on host {0}", hostInfo["host_name"]) + if mountPoints[mountPoint] < reqiuredDiskSpace: msg = "Ambari Metrics disk space requirements not met. \n" \ "Recommended disk space for partition {0} is {1}G"