You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2017/06/12 17:19:18 UTC
[01/10] ambari git commit: AMBARI-21170. Upgrade Dialog Is Missing
the Version Information (alexantonenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 8d129d414 -> acc12fb72
AMBARI-21170. Upgrade Dialog Is Missing the Version Information (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/4767389b
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/4767389b
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/4767389b
Branch: refs/heads/trunk
Commit: 4767389b655cba8e6062f06d8390a1a22bf60e41
Parents: 9a42d40
Author: Alex Antonenko <hi...@gmail.com>
Authored: Thu Jun 1 17:04:36 2017 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Thu Jun 1 17:04:36 2017 +0300
----------------------------------------------------------------------
ambari-web/app/messages.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/4767389b/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 02a54f7..2f915ec 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -1776,8 +1776,8 @@ Em.I18n.translations = {
'admin.stackVersions.version.upgrade.upgradeOptions.preCheck.allPassed.msg':'All checks passed',
'admin.stackVersions.version.upgrade.upgradeOptions.preCheck.failed.tooltip':'Option not available',
'admin.stackVersions.version.upgrade.upgradeOptions.notAllowed':'Not allowed by the current version',
- 'admin.stackVersions.version.upgrade.upgradeOptions.EU.confirm.msg': 'You are about to perform an <b>Express Upgrade</b> to <b>{1}</b>. This will incur cluster downtime. Are you sure you want to proceed?',
- 'admin.stackVersions.version.upgrade.upgradeOptions.RU.confirm.msg': 'You are about to perform a <b>Rolling Upgrade</b> to <b>{1}</b>. Are you sure you want to proceed?',
+ 'admin.stackVersions.version.upgrade.upgradeOptions.EU.confirm.msg': 'You are about to perform an <b>Express Upgrade</b> to <b>{0}</b>. This will incur cluster downtime. Are you sure you want to proceed?',
+ 'admin.stackVersions.version.upgrade.upgradeOptions.RU.confirm.msg': 'You are about to perform a <b>Rolling Upgrade</b> to <b>{0}</b>. Are you sure you want to proceed?',
'admin.stackVersions.version.upgrade.upgradeOptions.error': 'Could not proceed with upgrade:',
'admin.stackVersions.version.upgrade.upgradeOptions.loading': 'Checking for supported upgrade types...',
[08/10] ambari git commit: AMBARI-21091. HDP deploy from public repo
failed (dlysnichenko)
Posted by nc...@apache.org.
AMBARI-21091. HDP deploy from public repo failed (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/871f85b3
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/871f85b3
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/871f85b3
Branch: refs/heads/trunk
Commit: 871f85b34e5d0586dd21ed332a16abd012a72eef
Parents: 7750c9a
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Mon Jun 12 19:38:34 2017 +0300
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Mon Jun 12 19:38:34 2017 +0300
----------------------------------------------------------------------
.../test/python/ambari_agent/TestHostInfo.py | 107 ++++++++++
.../libraries/functions/packages_analyzer.py | 53 ++++-
.../libraries/script/script.py | 25 ++-
.../server/orm/entities/UpgradeEntity.java | 3 +-
.../orm/entities/UpgradeHistoryEntity.java | 3 +-
.../custom_actions/scripts/install_packages.py | 8 +-
.../upgrades/UpgradeActionTest.java | 2 +-
.../custom_actions/TestInstallPackages.py | 202 +++++++------------
.../configs/install_packages_config.json | 19 +-
.../stacks/2.0.6/HBASE/test_hbase_master.py | 11 +-
.../stacks/2.0.6/configs/hbase_with_phx.json | 12 ++
utility/pom.xml | 21 ++
12 files changed, 322 insertions(+), 144 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py b/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
index a00771d..027a0a8 100644
--- a/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
+++ b/ambari-agent/src/test/python/ambari_agent/TestHostInfo.py
@@ -538,5 +538,112 @@ class TestHostInfo(TestCase):
os_path_isfile_mock.return_value = False
self.assertEqual("", hostInfo.getTransparentHugePage())
+ @staticmethod
+ def _add_packages_available(command, arg):
+ arg.append(["hadoop_2_2_0_1_885", "1.0", "HDP-2.2"])
+ arg.append(["hadooplzo_2_2_0_1_885", "1.0", "HDP-2.2"])
+ arg.append(["hadoop_2_2_0_1_885-libhdfs", "1.0", "HDP-2.2"])
+
+ @staticmethod
+ def _add_packages_lookUpYum(command, key, arg):
+ TestHostInfo._add_packages_available(command, arg)
+
+ @patch("ambari_commons.os_check.OSCheck.is_suse_family")
+ @patch("ambari_commons.os_check.OSCheck.is_ubuntu_family")
+ @patch("ambari_commons.os_check.OSCheck.is_redhat_family")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpZypperPackages")
+ def test_get_available_packages_in_repos_suse(self, lookUpZypperPackages, is_redhat_family, is_ubuntu_family,
+ is_suse_family_mock):
+ is_suse_family_mock.return_value = True
+ is_redhat_family.return_value = False
+ is_ubuntu_family.return_value = False
+ lookUpZypperPackages.side_effect = TestHostInfo._add_packages_available
+
+ command_json = {
+ "repositoryFile": {
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoVersion": "2",
+ "repositories": [
+ {
+ "repoName": "HDP",
+ "baseUrl": "http://repo1/HDP/centos5/2.x/updates/2.2.0.0",
+ "repoId": "HDP-2.2"
+ }
+ ]
+ }
+ }
+
+ available_packages_in_repos = packages_analyzer.get_available_packages_in_repos(
+ command_json['repositoryFile']['repositories'])
+
+ self.assertEqual(available_packages_in_repos,
+ ["hadoop_2_2_0_1_885", "hadooplzo_2_2_0_1_885", "hadoop_2_2_0_1_885-libhdfs"])
+
+ @patch("ambari_commons.os_check.OSCheck.is_suse_family")
+ @patch("ambari_commons.os_check.OSCheck.is_ubuntu_family")
+ @patch("ambari_commons.os_check.OSCheck.is_redhat_family")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpYumPackages")
+ def test_get_available_packages_in_repos_rhel(self, lookUpYumPackages, is_redhat_family, is_ubuntu_family,
+ is_suse_family_mock):
+ is_suse_family_mock.return_value = False
+ is_redhat_family.return_value = True
+ is_ubuntu_family.return_value = False
+ lookUpYumPackages.side_effect = TestHostInfo._add_packages_lookUpYum
+
+ command_json = {
+ "repositoryFile": {
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoVersion": "2",
+ "repositories": [
+ {
+ "repoName": "HDP",
+ "baseUrl": "http://repo1/HDP/centos5/2.x/updates/2.2.0.0",
+ "repoId": "HDP-2.2"
+ }
+ ]
+ }
+ }
+
+ available_packages_in_repos = packages_analyzer.get_available_packages_in_repos(
+ command_json['repositoryFile']['repositories'])
+
+ self.assertEqual(available_packages_in_repos,
+ ["hadoop_2_2_0_1_885", "hadooplzo_2_2_0_1_885", "hadoop_2_2_0_1_885-libhdfs", "hadoop_2_2_0_1_885",
+ "hadooplzo_2_2_0_1_885", "hadoop_2_2_0_1_885-libhdfs"])
+
+ @patch("ambari_commons.os_check.OSCheck.is_suse_family")
+ @patch("ambari_commons.os_check.OSCheck.is_ubuntu_family")
+ @patch("ambari_commons.os_check.OSCheck.is_redhat_family")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpAptPackages")
+ def test_get_available_packages_in_repos_ubuntu(self, lookUpAptPackages, is_redhat_family, is_ubuntu_family,
+ is_suse_family_mock):
+ is_suse_family_mock.return_value = False
+ is_redhat_family.return_value = False
+ is_ubuntu_family.return_value = True
+ lookUpAptPackages.side_effect = TestHostInfo._add_packages_available
+
+ command_json = {
+ "repositoryFile": {
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoVersion": "2",
+ "repositories": [
+ {
+ "repoName": "HDP",
+ "baseUrl": "http://repo1/HDP/centos5/2.x/updates/2.2.0.0",
+ "repoId": "HDP-2.2"
+ }
+ ]
+ }
+ }
+
+ available_packages_in_repos = packages_analyzer.get_available_packages_in_repos(
+ command_json['repositoryFile']['repositories'])
+
+ self.assertEqual(available_packages_in_repos,
+ ["hadoop_2_2_0_1_885", "hadooplzo_2_2_0_1_885", "hadoop_2_2_0_1_885-libhdfs"])
+
if __name__ == "__main__":
unittest.main()
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py b/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py
index 8a15ee5..f4db3d2 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/packages_analyzer.py
@@ -34,8 +34,8 @@ __all__ = ["installedPkgsByName", "allInstalledPackages", "allAvailablePackages"
"getInstalledRepos", "getInstalledPkgsByRepo", "getInstalledPkgsByNames", "getPackageDetails"]
LIST_INSTALLED_PACKAGES_UBUNTU = "COLUMNS=9999 ; for i in $(dpkg -l |grep ^ii |awk -F' ' '{print $2}'); do apt-cache showpkg \"$i\"|head -3|grep -v '^Versions'| tr -d '()' | awk '{ print $1\" \"$2 }'|sed -e 's/^Package: //;' | paste -d ' ' - -; done"
-LIST_AVAILABLE_PACKAGES_UBUNTU = "packages=`for i in $(ls -1 /var/lib/apt/lists | grep -v \"ubuntu.com\") ; do grep ^Package: /var/lib/apt/lists/$i | awk '{print $2}' ; done` ; for i in $packages; do apt-cache showpkg \"$i\"|head -3|grep -v '^Versions'| tr -d '()' | awk '{ print $1\" \"$2 }'|sed -e 's/^Package: //;' | paste -d ' ' - -; done"
-
+LIST_AVAILABLE_PACKAGES_UBUNTU = "packages=`for i in $(ls -1 /var/lib/apt/lists | grep %s ) ; do grep ^Package: /var/lib/apt/lists/$i | awk '{print $2}' ; done` ; for i in $packages; do apt-cache showpkg \"$i\"|head -3|grep -v '^Versions'| tr -d '()' | awk '{ print $1\" \"$2 }'|sed -e 's/^Package: //;' | paste -d ' ' - -; done"
+GREP_REPO_EXCLUDE_SYSTEM = "-v \"ubuntu.com\""
logger = logging.getLogger()
# default timeout for async invoked processes
@@ -91,8 +91,6 @@ def allInstalledPackages(allInstalledPackages):
"""
All installed packages in system
"""
- osType = OSCheck.get_os_family()
-
if OSCheck.is_suse_family():
return _lookUpZypperPackages(
["sudo", "zypper", "--no-gpg-checks", "search", "--installed-only", "--details"],
@@ -108,9 +106,47 @@ def allInstalledPackages(allInstalledPackages):
allInstalledPackages)
-def allAvailablePackages(allAvailablePackages):
- osType = OSCheck.get_os_family()
+def get_available_packages_in_repos(repositories):
+ """
+ Gets all (both installed and available) packages that are available at given repositories.
+ :param repositories: from command configs like config['repositoryFile']['repositories']
+ :return: installed and available packages from these repositories
+ """
+ available_packages = []
+ installed_packages = []
+ available_packages_in_repos = []
+ repo_ids = [repository['repoId'] for repository in repositories]
+ if OSCheck.is_ubuntu_family():
+ allInstalledPackages(installed_packages)
+ repo_urls = [repository['baseUrl'] for repository in repositories]
+ repo_urls = [repo_url.replace("http://","") for repo_url in repo_urls]
+ repo_urls = [repo_url.replace("/","_") for repo_url in repo_urls]
+ for url in repo_urls:
+ _lookUpAptPackages(
+ LIST_AVAILABLE_PACKAGES_UBUNTU % url,
+ available_packages)
+ for package in installed_packages:
+ if url in package[2]:
+ available_packages_in_repos.append(package[0])
+ for package in available_packages:
+ available_packages_in_repos.append(package[0])
+ elif OSCheck.is_suse_family():
+ for repo in repo_ids:
+ _lookUpZypperPackages(["sudo", "zypper", "--no-gpg-checks", "search", "--details", "--repo", repo],
+ available_packages)
+ available_packages_in_repos += [package[0] for package in available_packages]
+ elif OSCheck.is_redhat_family():
+ for repo in repo_ids:
+ _lookUpYumPackages(["sudo", "yum", "list", "available", "--disablerepo=*", "--enablerepo=" + repo],
+ 'Available Packages', available_packages)
+ _lookUpYumPackages(["sudo", "yum", "list", "installed", "--disablerepo=*", "--enablerepo=" + repo],
+ 'Installed Packages', installed_packages)
+ available_packages_in_repos += [package[0] for package in available_packages + installed_packages]
+ return available_packages_in_repos
+
+
+def allAvailablePackages(allAvailablePackages):
if OSCheck.is_suse_family():
return _lookUpZypperPackages(
["sudo", "zypper", "--no-gpg-checks", "search", "--uninstalled-only", "--details"],
@@ -122,7 +158,7 @@ def allAvailablePackages(allAvailablePackages):
allAvailablePackages)
elif OSCheck.is_ubuntu_family():
return _lookUpAptPackages(
- LIST_AVAILABLE_PACKAGES_UBUNTU,
+ LIST_AVAILABLE_PACKAGES_UBUNTU % GREP_REPO_EXCLUDE_SYSTEM,
allAvailablePackages)
# ToDo: add execution via sudo for ubuntu (currently Ubuntu is not supported)
@@ -170,7 +206,6 @@ def _lookUpZypperPackages(command, allPackages):
if 0 == result['retCode']:
lines = result['out'].split('\n')
lines = [line.strip() for line in lines]
- items = []
for index in range(len(lines)):
if "--+--" in lines[index]:
skipIndex = index + 1
@@ -281,7 +316,7 @@ def getInstalledPackageVersion(package_name):
code, out, err = rmf_shell.checked_call("dpkg -s {0} | grep Version | awk '{{print $2}}'".format(package_name), stderr=subprocess.PIPE)
else:
code, out, err = rmf_shell.checked_call("rpm -q --queryformat '%{{version}}-%{{release}}' {0} | sed -e 's/\.el[0-9]//g'".format(package_name), stderr=subprocess.PIPE)
-
+
return out
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/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 054490b..2c56a13 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
@@ -463,10 +463,26 @@ class Script(object):
return Script.stack_version_from_distro_select
+
+ def get_package_from_available(self, name, available_packages_in_repos):
+ """
+ This function matches package names with ${stack_version} placeholder to actual package names from
+ Ambari-managed repository.
+ Package names without ${stack_version} placeholder are returned as is.
+ """
+ if STACK_VERSION_PLACEHOLDER not in name:
+ return name
+ package_delimiter = '-' if OSCheck.is_ubuntu_family() else '_'
+ package_regex = name.replace(STACK_VERSION_PLACEHOLDER, '(\d|{0})+'.format(package_delimiter))
+ for package in available_packages_in_repos:
+ if re.match(package_regex, package):
+ return package
+
+
def format_package_name(self, name):
from resource_management.libraries.functions.default import default
"""
- This function replaces ${stack_version} placeholder into actual version. If the package
+ This function replaces ${stack_version} placeholder with actual version. If the package
version is passed from the server, use that as an absolute truth.
"""
@@ -703,12 +719,15 @@ class Script(object):
package_list_str = config['hostLevelParams']['package_list']
agent_stack_retry_on_unavailability = bool(config['hostLevelParams']['agent_stack_retry_on_unavailability'])
agent_stack_retry_count = int(config['hostLevelParams']['agent_stack_retry_count'])
-
+ try:
+ available_packages_in_repos = packages_analyzer.get_available_packages_in_repos(config['repositoryFile']['repositories'])
+ except Exception as err:
+ available_packages_in_repos = []
if isinstance(package_list_str, basestring) and len(package_list_str) > 0:
package_list = json.loads(package_list_str)
for package in package_list:
if self.check_package_condition(package):
- name = self.format_package_name(package['name'])
+ name = self.get_package_from_available(package['name'], available_packages_in_repos)
# HACK: On Windows, only install ambari-metrics packages using Choco Package Installer
# TODO: Update this once choco packages for hadoop are created. This is because, service metainfo.xml support
# <osFamily>any<osFamily> which would cause installation failure on Windows.
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java
index 975d6a6..43b2e08 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeEntity.java
@@ -41,7 +41,8 @@ import org.apache.ambari.server.actionmanager.HostRoleStatus;
import org.apache.ambari.server.state.stack.upgrade.Direction;
import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.hadoop.metrics2.sink.relocated.google.common.base.Objects;
+
+import com.google.common.base.Objects;
/**
* Models the data representation of an upgrade
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeHistoryEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeHistoryEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeHistoryEntity.java
index 8bfafd3..0f7ac72 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeHistoryEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/UpgradeHistoryEntity.java
@@ -31,7 +31,8 @@ import javax.persistence.TableGenerator;
import javax.persistence.UniqueConstraint;
import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.hadoop.metrics2.sink.relocated.google.common.base.Objects;
+
+import com.google.common.base.Objects;
/**
* The {@link UpgradeHistoryEntity} represents the version history of components
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
index d6da0fc..a4a7a8c 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
@@ -22,6 +22,7 @@ import signal
import re
import ambari_simplejson as json
+import sys, traceback
from ambari_commons.os_check import OSCheck
from ambari_commons.str_utils import cbool, cint
@@ -36,6 +37,7 @@ from resource_management.libraries.functions.version import format_stack_version
from resource_management.libraries.functions.repo_version_history \
import read_actual_version_from_history_file, write_actual_version_to_history_file, REPO_VERSION_HISTORY_FILE
from resource_management.libraries.functions import StackFeature
+from resource_management.libraries.functions import packages_analyzer
from resource_management.libraries.functions.repository_util import create_repo_files, CommandRepository
from resource_management.libraries.functions.stack_features import check_stack_feature
from resource_management.libraries.resources.repository import Repository
@@ -352,8 +354,12 @@ class InstallPackages(Script):
packages_installed_before = [package[0] for package in packages_installed_before]
packages_were_checked = True
filtered_package_list = self.filter_package_list(package_list)
+ try:
+ available_packages_in_repos = packages_analyzer.get_available_packages_in_repos(config['repositoryFile']['repositories'])
+ except Exception:
+ available_packages_in_repos = []
for package in filtered_package_list:
- name = self.format_package_name(package['name'])
+ name = self.get_package_from_available(package['name'], available_packages_in_repos)
Package(name,
action="upgrade", # this enables upgrading non-versioned packages, despite the fact they exist. Needed by 'mahout' which is non-version but have to be updated
retry_on_repo_unavailability=agent_stack_retry_on_unavailability,
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
index e3ffae0..50d219c 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
@@ -79,7 +79,7 @@ import org.apache.ambari.server.state.UpgradeState;
import org.apache.ambari.server.state.stack.UpgradePack;
import org.apache.ambari.server.state.stack.upgrade.UpgradeType;
import org.apache.ambari.server.utils.EventBusSynchronizer;
-import org.apache.hadoop.metrics2.sink.relocated.commons.lang.StringUtils;
+import org.apache.commons.lang.StringUtils;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
index 5f5576e..3e90c64 100644
--- a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
+++ b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
@@ -61,8 +61,18 @@ class TestInstallPackages(RMFTestCase):
arg.append(["pkg1", "1.0", "repo"])
arg.append(["pkg2", "2.0", "repo2"])
+ @staticmethod
+ def _add_packages_available(command, arg):
+ arg.append(["hadoop_2_2_0_1_885", "1.0", "HDP-2.2"])
+ arg.append(["hadooplzo_2_2_0_1_885", "1.0", "HDP-2.2"])
+ arg.append(["hadoop_2_2_0_1_885-libhdfs", "1.0", "HDP-2.2"])
+
+ @staticmethod
+ def _add_packages_lookUpYum(command, key, arg):
+ TestInstallPackages._add_packages_available(command, arg)
+
@patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpYumPackages")
@patch("resource_management.libraries.script.Script.put_structured_out")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@@ -71,12 +81,13 @@ class TestInstallPackages(RMFTestCase):
write_actual_version_to_history_file_mock,
read_actual_version_from_history_file_mock,
stack_versions_mock,
- put_structured_out_mock, allInstalledPackages_mock, list_ambari_managed_repos_mock):
+ put_structured_out_mock,
+ lookUpYumPackages, list_ambari_managed_repos_mock):
stack_versions_mock.side_effect = [
[], # before installation attempt
[VERSION_STUB]
]
- allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+ lookUpYumPackages.side_effect = TestInstallPackages._add_packages_lookUpYum
list_ambari_managed_repos_mock.return_value=[]
self.executeScript("scripts/install_packages.py",
classname="InstallPackages",
@@ -91,21 +102,21 @@ class TestInstallPackages(RMFTestCase):
'installed_repository_version': VERSION_STUB,
'stack_id': 'HDP-2.2',
'actual_version': VERSION_STUB})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS', 'main'],
repo_template='[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=False,
)
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-2.2',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP', 'main'],
repo_template='[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=True,
)
@@ -140,6 +151,7 @@ class TestInstallPackages(RMFTestCase):
command_json = json.load(f)
command_json['roleParams']['base_urls'] = "[]"
+ del command_json['repositoryFile']
allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
@@ -159,32 +171,33 @@ class TestInstallPackages(RMFTestCase):
'actual_version': VERSION_STUB})
self.assertResourceCalled('Package', 'hdp-select', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', None, action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy-devel', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'lzo', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_885', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885-libhdfs', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', None, action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', None, action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'ambari-log4j', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertNoMoreResources()
@patch("ambari_commons.os_check.OSCheck.is_suse_family")
@patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpZypperPackages")
@patch("resource_management.libraries.script.Script.put_structured_out")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
def test_normal_flow_sles(self, write_actual_version_to_history_file_mock,
read_actual_version_from_history_file_mock,
- stack_versions_mock, put_structured_out_mock, allInstalledPackages_mock, list_ambari_managed_repos_mock, is_suse_family_mock):
+ stack_versions_mock, put_structured_out_mock,
+ lookUpZypperPackages, list_ambari_managed_repos_mock, is_suse_family_mock):
is_suse_family_mock = True
Script.stack_version_from_distro_select = VERSION_STUB
stack_versions_mock.side_effect = [
[], # before installation attempt
[VERSION_STUB]
]
- allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+ lookUpZypperPackages.side_effect = TestInstallPackages._add_packages_available
list_ambari_managed_repos_mock.return_value=[]
self.executeScript("scripts/install_packages.py",
classname="InstallPackages",
@@ -199,21 +212,21 @@ class TestInstallPackages(RMFTestCase):
'installed_repository_version': VERSION_STUB,
'stack_id': 'HDP-2.2',
'actual_version': VERSION_STUB})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS', 'main'],
repo_template='[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=False,
)
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-2.2',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=True,
)
@@ -231,21 +244,21 @@ class TestInstallPackages(RMFTestCase):
@patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
@patch("ambari_commons.os_check.OSCheck.is_redhat_family")
@patch("resource_management.libraries.script.Script.put_structured_out")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpYumPackages")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
- def test_exclude_existing_repo(self, write_actual_version_to_history_file_mock,
+ def test_exclude_existing_repo(self, write_actual_version_to_history_file_mock,
read_actual_version_from_history_file_mock,
stack_versions_mock,
- allInstalledPackages_mock, put_structured_out_mock,
+ lookUpYumPackages, put_structured_out_mock,
is_redhat_family_mock, list_ambari_managed_repos_mock):
stack_versions_mock.side_effect = [
[], # before installation attempt
[VERSION_STUB]
]
Script.stack_version_from_distro_select = VERSION_STUB
- allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+ lookUpYumPackages.side_effect = TestInstallPackages._add_packages_lookUpYum
list_ambari_managed_repos_mock.return_value=["HDP-UTILS-2.2.0.1-885"]
is_redhat_family_mock.return_value = True
self.executeScript("scripts/install_packages.py",
@@ -261,21 +274,21 @@ class TestInstallPackages(RMFTestCase):
'installed_repository_version': VERSION_STUB,
'stack_id': 'HDP-2.2',
'actual_version': VERSION_STUB})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name='HDP-2.2.0.1-885',
+ repo_file_name='ambari-hdp-1',
mirror_list=None,
append_to_file=False,
)
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-2.2',
base_url='http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=True,
)
@@ -337,21 +350,21 @@ class TestInstallPackages(RMFTestCase):
{'stack_id': 'HDP-2.2',
'installed_repository_version': VERSION_STUB,
'package_installation_result': 'FAIL'})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=False,
)
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-2.2',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=True,
)
@@ -363,14 +376,14 @@ class TestInstallPackages(RMFTestCase):
@patch("ambari_commons.os_check.OSCheck.is_suse_family")
@patch("resource_management.core.resources.packaging.Package")
@patch("resource_management.libraries.script.Script.put_structured_out")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpZypperPackages")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
- def test_format_package_name(self, write_actual_version_to_history_file_mock,
+ def test_format_package_name(self, write_actual_version_to_history_file_mock,
read_actual_version_from_history_file_mock,
stack_versions_mock,
- allInstalledPackages_mock, put_structured_out_mock,
+ lookUpZypperPackages, put_structured_out_mock,
package_mock, is_suse_family_mock):
Script.stack_version_from_distro_select = VERSION_STUB
stack_versions_mock.side_effect = [
@@ -378,7 +391,7 @@ class TestInstallPackages(RMFTestCase):
[VERSION_STUB]
]
read_actual_version_from_history_file_mock.return_value = VERSION_STUB
- allInstalledPackages_mock = MagicMock(side_effect = TestInstallPackages._add_packages)
+ lookUpZypperPackages.side_effect = TestInstallPackages._add_packages_available
is_suse_family_mock.return_value = True
self.executeScript("scripts/install_packages.py",
classname="InstallPackages",
@@ -393,21 +406,21 @@ class TestInstallPackages(RMFTestCase):
'installed_repository_version': VERSION_STUB,
'stack_id': 'HDP-2.2',
'actual_version': VERSION_STUB})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=False,
)
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
+ self.assertResourceCalled('Repository', 'HDP-2.2',
base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP', 'main'],
repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
+ repo_file_name=u'ambari-hdp-1',
mirror_list=None,
append_to_file=True,
)
@@ -421,99 +434,30 @@ class TestInstallPackages(RMFTestCase):
self.assertResourceCalled('Package', 'ambari-log4j', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertNoMoreResources()
- @patch("ambari_commons.os_check.OSCheck.is_suse_family")
- @patch("resource_management.core.resources.packaging.Package")
- @patch("resource_management.libraries.script.Script.put_structured_out")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
- @patch("resource_management.libraries.functions.stack_select.get_stack_versions")
- @patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
- @patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
- def test_format_package_name_specific(self, write_actual_version_to_history_file_mock,
- read_actual_version_from_history_file_mock,
- stack_versions_mock,
- allInstalledPackages_mock, put_structured_out_mock,
- package_mock, is_suse_family_mock):
- Script.stack_version_from_distro_select = VERSION_STUB
- stack_versions_mock.side_effect = [
- [], # before installation attempt
- [VERSION_STUB]
- ]
- read_actual_version_from_history_file_mock.return_value = VERSION_STUB
- allInstalledPackages_mock = MagicMock(side_effect = TestInstallPackages._add_packages)
- is_suse_family_mock.return_value = True
-
-
- config_file = self.get_src_folder() + "/test/python/custom_actions/configs/install_packages_config.json"
- with open(config_file, "r") as f:
- command_json = json.load(f)
-
- command_json['roleParams']['package_version'] = "2_2_0_1_889"
-
-
- self.executeScript("scripts/install_packages.py",
- classname="InstallPackages",
- command="actionexecute",
- config_dict=command_json,
- target=RMFTestCase.TARGET_CUSTOM_ACTIONS,
- os_type=('Suse', '11', 'Final'),
- )
- self.assertTrue(put_structured_out_mock.called)
- self.assertEquals(put_structured_out_mock.call_args[0][0],
- {'package_installation_result': 'SUCCESS',
- 'installed_repository_version': VERSION_STUB,
- 'stack_id': 'HDP-2.2',
- 'actual_version': VERSION_STUB})
- self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
- base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
- action=['create'],
- components=[u'HDP-UTILS', 'main'],
- repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
- mirror_list=None,
- append_to_file=False,
- )
- self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
- base_url=u'http://repo1/HDP/centos5/2.x/updates/2.2.0.0',
- action=['create'],
- components=[u'HDP', 'main'],
- repo_template=u'[{{repo_id}}]\nname={{repo_id}}\n{% if mirror_list %}mirrorlist={{mirror_list}}{% else %}baseurl={{base_url}}{% endif %}\n\npath=/\nenabled=1\ngpgcheck=0',
- repo_file_name=u'HDP-2.2.0.1-885',
- mirror_list=None,
- append_to_file=True,
- )
- self.assertResourceCalled('Package', 'hdp-select', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_889', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'snappy', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'snappy-devel', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'lzo', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_889', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_889-libhdfs', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'ambari-log4j', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertNoMoreResources()
@patch("ambari_commons.os_check.OSCheck.is_suse_family")
@patch("resource_management.core.resources.packaging.Package")
@patch("resource_management.libraries.script.Script.put_structured_out")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpZypperPackages")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
def test_format_package_name_via_repositoryFile(self, write_actual_version_to_history_file_mock,
- read_actual_version_from_history_file_mock,
- stack_versions_mock,
- allInstalledPackages_mock, put_structured_out_mock,
- package_mock, is_suse_family_mock):
+ read_actual_version_from_history_file_mock,
+ stack_versions_mock,
+ lookUpZypperPackages, put_structured_out_mock,
+ package_mock, is_suse_family_mock):
Script.stack_version_from_distro_select = VERSION_STUB
stack_versions_mock.side_effect = [
[], # before installation attempt
[VERSION_STUB]
]
read_actual_version_from_history_file_mock.return_value = VERSION_STUB
- allInstalledPackages_mock = MagicMock(side_effect = TestInstallPackages._add_packages)
+ lookUpZypperPackages.side_effect = TestInstallPackages._add_packages_available
is_suse_family_mock.return_value = True
-
+
config_file = self.get_src_folder() + "/test/python/custom_actions/configs/install_packages_repository_file.json"
with open(config_file, "r") as f:
command_json = json.load(f)
@@ -552,12 +496,15 @@ class TestInstallPackages(RMFTestCase):
append_to_file=True,
)
self.assertResourceCalled('Package', 'hdp-select', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_990', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy-devel', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'lzo', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_990', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_990-libhdfs', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_885', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885-libhdfs', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'ambari-log4j', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertNoMoreResources()
@@ -1106,21 +1053,23 @@ class TestInstallPackages(RMFTestCase):
self.assertFalse(write_actual_version_to_history_file_mock.called)
@patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos")
- @patch("resource_management.libraries.functions.packages_analyzer.allInstalledPackages")
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpYumPackages")
@patch("resource_management.libraries.script.Script.put_structured_out")
@patch("resource_management.libraries.functions.stack_select.get_stack_versions")
@patch("resource_management.libraries.functions.repo_version_history.read_actual_version_from_history_file")
@patch("resource_management.libraries.functions.repo_version_history.write_actual_version_to_history_file")
def test_normal_flow_rhel_with_command_repo(self,
- write_actual_version_to_history_file_mock,
- read_actual_version_from_history_file_mock,
- stack_versions_mock,
- put_structured_out_mock, allInstalledPackages_mock, list_ambari_managed_repos_mock):
+ write_actual_version_to_history_file_mock,
+ read_actual_version_from_history_file_mock,
+ stack_versions_mock,
+ put_structured_out_mock,
+ lookUpYumPackages,
+ list_ambari_managed_repos_mock):
stack_versions_mock.side_effect = [
[], # before installation attempt
[VERSION_STUB]
]
- allInstalledPackages_mock.side_effect = TestInstallPackages._add_packages
+ lookUpYumPackages.side_effect = TestInstallPackages._add_packages_lookUpYum
list_ambari_managed_repos_mock.return_value=[]
self.executeScript("scripts/install_packages.py",
classname="InstallPackages",
@@ -1155,11 +1104,14 @@ class TestInstallPackages(RMFTestCase):
append_to_file=True,
)
self.assertResourceCalled('Package', 'hdp-select', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'snappy-devel', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'lzo', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_885', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
- self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885-libhdfs', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadooplzo_2_2_0_1_885', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
+ self.assertResourceCalled('Package', 'hadoop_2_2_0_1_885-libhdfs', action=["upgrade"], retry_count=5,
+ retry_on_repo_unavailability=False)
self.assertResourceCalled('Package', 'ambari-log4j', action=["upgrade"], retry_count=5, retry_on_repo_unavailability=False)
self.assertNoMoreResources()
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/test/python/custom_actions/configs/install_packages_config.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/custom_actions/configs/install_packages_config.json b/ambari-server/src/test/python/custom_actions/configs/install_packages_config.json
index c6575b5..be010b3 100644
--- a/ambari-server/src/test/python/custom_actions/configs/install_packages_config.json
+++ b/ambari-server/src/test/python/custom_actions/configs/install_packages_config.json
@@ -49,7 +49,24 @@
"package_list": "[{\"name\":\"hadoop_${stack_version}\", \"condition\": \"\"},{\"name\":\"snappy\", \"condition\": \"\"},{\"name\":\"snappy-devel\", \"condition\": \"\"},{\"name\":\"lzo\", \"condition\": \"\"},{\"name\":\"hadooplzo_${stack_version}\", \"condition\": \"\"},{\"name\":\"hadoop_${stack_version}-libhdfs\", \"condition\": \"\"},{\"name\":\"ambari-log4j\", \"condition\": \"\"}]",
"script": "install_packages.py"
},
- "commandId": "14-1",
+ "commandId": "14-1",
+ "repositoryFile": {
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoVersion": "2",
+ "repositories": [
+ {
+ "repoName": "HDP-UTILS",
+ "baseUrl": "http://repo1/HDP/centos5/2.x/updates/2.2.0.0",
+ "repoId": "HDP-UTILS-1.1.0.20"
+ },
+ {
+ "repoName": "HDP",
+ "baseUrl": "http://repo1/HDP/centos5/2.x/updates/2.2.0.0",
+ "repoId": "HDP-2.2"
+ }
+ ]
+ },
"clusterHostInfo": {
"snamenode_host": [
"0b3.vm"
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
index fda63e0..05fa204 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/HBASE/test_hbase_master.py
@@ -69,11 +69,17 @@ class TestHBaseMaster(RMFTestCase):
self.assertNoMoreResources()
- def test_install_hbase_master_with_version(self):
+ @patch("resource_management.libraries.functions.packages_analyzer._lookUpYumPackages")
+ def test_install_hbase_master_with_version(self, lookUpYumPackages):
+ def _add_packages_available(command, key, arg):
+ arg.append(["hbase_2_3_0_1_1234", "1.0", "testrepo"])
+
config_file = self.get_src_folder()+"/test/python/stacks/2.0.6/configs/hbase_with_phx.json"
with open(config_file, "r") as f:
json_content = json.load(f)
version = '2.3.0.1-1234'
+
+ lookUpYumPackages.side_effect = _add_packages_available
# the json file is not a "well formed" install command
json_content['roleCommand'] = 'INSTALL'
json_content['commandParams']['version'] = version
@@ -86,8 +92,9 @@ class TestHBaseMaster(RMFTestCase):
stack_version = self.STACK_VERSION,
target = RMFTestCase.TARGET_COMMON_SERVICES,
try_install=True,
+ os_type=('Redhat', '6.4', 'Final'),
checked_call_mocks = [(0, "OK.", "")],
- )
+ )
# only assert that the correct package is trying to be installed
self.assertResourceCalled('Package', 'hbase_2_3_0_1_1234',
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/ambari-server/src/test/python/stacks/2.0.6/configs/hbase_with_phx.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/python/stacks/2.0.6/configs/hbase_with_phx.json b/ambari-server/src/test/python/stacks/2.0.6/configs/hbase_with_phx.json
index 5147603..9979e9d 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/configs/hbase_with_phx.json
+++ b/ambari-server/src/test/python/stacks/2.0.6/configs/hbase_with_phx.json
@@ -28,6 +28,18 @@
"roleParams": {},
"serviceName": "HIVE",
"role": "HIVE_SERVER",
+ "repositoryFile": {
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoVersion": "2",
+ "repositories": [
+ {
+ "repoName": "HDP",
+ "baseUrl": "testurl",
+ "repoId": "testrepo"
+ }
+ ]
+ },
"commandParams": {
"command_timeout": "300",
"service_package_folder": "OOZIE",
http://git-wip-us.apache.org/repos/asf/ambari/blob/871f85b3/utility/pom.xml
----------------------------------------------------------------------
diff --git a/utility/pom.xml b/utility/pom.xml
index 7d5eb93..918080e 100644
--- a/utility/pom.xml
+++ b/utility/pom.xml
@@ -67,6 +67,27 @@
</configuration>
</plugin>
<plugin>
+ <groupId>org.vafer</groupId>
+ <artifactId>jdeb</artifactId>
+ <version>1.0.1</version>
+ <executions>
+ <execution>
+ <!--Stub execution on direct plugin call - workaround for ambari deb build process-->
+ <id>stub-execution</id>
+ <phase>none</phase>
+ <goals>
+ <goal>jdeb</goal>
+ </goals>
+ </execution>
+ </executions>
+ <configuration>
+ <skip>true</skip>
+ <attach>false</attach>
+ <submodules>false</submodules>
+ <controlDir>${project.basedir}/../src/main/package/deb/control</controlDir>
+ </configuration>
+ </plugin>
+ <plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
[05/10] ambari git commit: AMBARI-21183. Removal of INIT Repository
State from Web Client (alexantonenko)
Posted by nc...@apache.org.
AMBARI-21183. Removal of INIT Repository State from Web Client (alexantonenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/12202a2f
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/12202a2f
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/12202a2f
Branch: refs/heads/trunk
Commit: 12202a2fd303e0d557a987f77f33387e17c9fb81
Parents: 64e3ad7
Author: Alex Antonenko <hi...@gmail.com>
Authored: Tue Jun 6 17:12:42 2017 +0300
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Tue Jun 6 17:12:42 2017 +0300
----------------------------------------------------------------------
ambari-web/app/app.js | 8 +++---
.../main/admin/stack_and_upgrade_controller.js | 6 ++---
ambari-web/app/data/controller_route.js | 2 +-
.../models/stack_version/repository_version.js | 2 +-
.../stack_upgrade/upgrade_version_box_view.js | 8 +++---
.../upgrade_version_column_view.js | 2 +-
.../admin/stack_upgrade/upgrade_wizard_view.js | 2 +-
.../main/admin/stack_upgrade/versions_view.js | 2 +-
ambari-web/test/app_test.js | 10 +++----
.../admin/stack_and_upgrade_controller_test.js | 18 ++++++-------
.../upgrade_version_box_view_test.js | 28 ++++++++++----------
.../stack_upgrade/upgrade_wizard_view_test.js | 2 +-
.../admin/stack_upgrade/version_view_test.js | 6 ++---
13 files changed, 48 insertions(+), 48 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/app.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/app.js b/ambari-web/app/app.js
index c22d71c..2c638e4 100644
--- a/ambari-web/app/app.js
+++ b/ambari-web/app/app.js
@@ -56,7 +56,7 @@ module.exports = Em.Application.create({
/**
* state of stack upgrade process
* states:
- * - INIT
+ * - NOT_REQUIRED
* - PENDING
* - IN_PROGRESS
* - HOLDING
@@ -66,14 +66,14 @@ module.exports = Em.Application.create({
* - HOLDING_TIMEDOUT
* @type {String}
*/
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
/**
* Check if upgrade is in INIT state
* 'INIT' is set on upgrade start and when it's finished
* @type {boolean}
*/
- upgradeInit: Em.computed.equal('upgradeState', 'INIT'),
+ upgradeInit: Em.computed.equal('upgradeState', 'NOT_REQUIRED'),
/**
* flag is true when upgrade process is running
@@ -146,7 +146,7 @@ module.exports = Em.Application.create({
// When Upgrade running(not suspended) only operations related to upgrade should be allowed
if ((!this.get('upgradeSuspended') && !authRoles.contains('CLUSTER.UPGRADE_DOWNGRADE_STACK')) &&
!App.get('supports.opsDuringRollingUpgrade') &&
- !['INIT', 'COMPLETED'].contains(this.get('upgradeState')) ||
+ !['NOT_REQUIRED', 'COMPLETED'].contains(this.get('upgradeState')) ||
!App.auth){
return false;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
index a676f7429..91b5ecd 100644
--- a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
@@ -1705,7 +1705,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
},
/**
- * reset upgradeState to INIT when upgrade is COMPLETED
+ * reset upgradeState to NOT_REQUIRED when upgrade is COMPLETED
* and clean auxiliary data
*/
finish: function () {
@@ -1713,7 +1713,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
this.setDBProperties({
fromVersion: undefined,
upgradeId: undefined,
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
upgradeVersion: undefined,
currentVersion: undefined,
upgradeTypeDisplayName: undefined,
@@ -1730,7 +1730,7 @@ App.MainAdminStackAndUpgradeController = Em.Controller.extend(App.LocalStorage,
if (upgradeVersion && upgradeVersion[0]) {
App.set('currentStackVersion', upgradeVersion[0]);
}
- App.set('upgradeState', 'INIT');
+ App.set('upgradeState', 'NOT_REQUIRED');
},
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/data/controller_route.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/controller_route.js b/ambari-web/app/data/controller_route.js
index 5f7c499..13d0380 100644
--- a/ambari-web/app/data/controller_route.js
+++ b/ambari-web/app/data/controller_route.js
@@ -71,7 +71,7 @@ module.exports = [
},
{
wizardControllerName: App.router.get('mainAdminStackAndUpgradeController.name'),
- route: App.db.get('MainAdminStackAndUpgrade', 'upgradeState') == 'INIT' ? 'main.admin.stackAndUpgrade.index' : 'main.admin.stackAndUpgrade.versions'
+ route: App.db.get('MainAdminStackAndUpgrade', 'upgradeState') === 'NOT_REQUIRED' ? 'main.admin.stackAndUpgrade.index' : 'main.admin.stackAndUpgrade.versions'
},
{
wizardControllerName: App.router.get('widgetWizardController.name'),
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/models/stack_version/repository_version.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/stack_version/repository_version.js b/ambari-web/app/models/stack_version/repository_version.js
index d5bc64d..5ecfdd1 100644
--- a/ambari-web/app/models/stack_version/repository_version.js
+++ b/ambari-web/app/models/stack_version/repository_version.js
@@ -38,7 +38,7 @@ App.RepositoryVersion = DS.Model.extend({
* status used until corresponding stack version get created
* @type {string}
*/
- defaultStatus: 'INIT',
+ defaultStatus: 'NOT_REQUIRED',
/**
* @type {boolean}
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
index bb0cc81..1af7d5c 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_box_view.js
@@ -57,7 +57,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
isUpgrading: function () {
return (this.get('controller.upgradeVersion') === this.get('content.displayName') ||
this.get('controller.fromVersion') === this.get('content.repositoryVersion'))
- && App.get('upgradeState') !== 'INIT';
+ && App.get('upgradeState') !== 'NOT_REQUIRED';
}.property('App.upgradeState', 'content.displayName', 'controller.upgradeVersion'),
isRepoUrlsEditDisabled: function () {
@@ -119,7 +119,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
text: Em.I18n.t('common.current'),
class: 'label label-success'
},
- 'INIT': {
+ 'NOT_REQUIRED': {
isButton: true,
text: Em.I18n.t('admin.stackVersions.version.installNow'),
action: 'installRepoVersionConfirmation'
@@ -170,7 +170,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
if (['INSTALLING', 'CURRENT'].contains(status)) {
element.setProperties(statePropertiesMap[status]);
}
- else if (status === 'INIT') {
+ else if (status === 'NOT_REQUIRED') {
requestInProgressRepoId && requestInProgressRepoId == this.get('content.id') ? element.setProperties(statePropertiesMap['LOADING']) : element.setProperties(statePropertiesMap[status]);
element.set('isDisabled', this.isDisabledOnInit());
}
@@ -245,7 +245,7 @@ App.UpgradeVersionBoxView = Em.View.extend({
),
/**
- * check if actions of INIT stack version disabled
+ * check if actions of NOT_REQUIRED stack version disabled
* @returns {boolean}
*/
isDisabledOnInit: function() {
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
index 4ce07f2..91381e7 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_version_column_view.js
@@ -73,7 +73,7 @@ App.UpgradeVersionColumnView = App.UpgradeVersionBoxView.extend({
text: Em.I18n.t('common.current'),
class: 'label label-success'
},
- 'INIT': {
+ 'NOT_REQUIRED': {
isButton: true,
text: Em.I18n.t('common.install'),
action: 'installRepoVersionConfirmation'
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
index bcb1ad7..3b269a0 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/upgrade_wizard_view.js
@@ -123,7 +123,7 @@ App.upgradeWizardView = Em.View.extend({
*/
noActiveItem: function () {
return (Em.isNone(this.get('failedItem')) && Em.isNone(this.get('runningItem')) && Em.isNone(this.get('manualItem'))) &&
- !['INIT', 'COMPLETED', 'ABORTED'].contains(App.get('upgradeState'));
+ !['NOT_REQUIRED', 'COMPLETED', 'ABORTED'].contains(App.get('upgradeState'));
}.property('failedItem', 'runningItem', 'manualItem', 'App.upgradeState'),
/**
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js b/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
index c317465..6077344 100644
--- a/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
+++ b/ambari-web/app/views/main/admin/stack_upgrade/versions_view.js
@@ -160,7 +160,7 @@ App.MainAdminStackVersionsView = Em.View.extend({
return stringUtils.compareVersions(version.get('repositoryVersion'), Em.get(currentVersion, 'repository_version')) < 1;
}
} else if (filter.get('value') === 'NOT_INSTALLED') {
- return ['INIT', 'INSTALL_FAILED', 'INSTALLING', 'OUT_OF_SYNC'].contains(status);
+ return ['NOT_REQUIRED', 'INSTALL_FAILED', 'INSTALLING', 'OUT_OF_SYNC'].contains(status);
} else {
return status === filter.get('value');
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/test/app_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/app_test.js b/ambari-web/test/app_test.js
index c87215f..2812b7d 100644
--- a/ambari-web/test/app_test.js
+++ b/ambari-web/test/app_test.js
@@ -443,7 +443,7 @@ describe('App', function () {
describe('#upgradeSuspended', function () {
var cases = [
{
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
isSuspended: false,
upgradeSuspended: false
},
@@ -480,7 +480,7 @@ describe('App', function () {
var cases = [
{
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
isSuspended: false,
upgradeAborted: false
},
@@ -516,7 +516,7 @@ describe('App', function () {
describe('#wizardIsNotFinished', function () {
var cases = [
{
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
wizardIsNotFinished: false
},
{
@@ -549,7 +549,7 @@ describe('App', function () {
describe("#upgradeHolding", function () {
var cases = [
{
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
upgradeAborted: false,
upgradeHolding: false
},
@@ -564,7 +564,7 @@ describe('App', function () {
upgradeHolding: true
},
{
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
upgradeAborted: true,
upgradeHolding: true
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
index 4585991..b87714e 100644
--- a/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
+++ b/ambari-web/test/controllers/main/admin/stack_and_upgrade_controller_test.js
@@ -98,9 +98,9 @@ describe('App.MainAdminStackAndUpgradeController', function() {
it("state not ABORTED", function() {
this.mock.returns(false);
- controller.set('upgradeData', { Upgrade: {request_status: 'INIT'}});
+ controller.set('upgradeData', { Upgrade: {request_status: 'NOT_REQUIRED'}});
controller.propertyDidChange('requestStatus');
- expect(controller.get('requestStatus')).to.equal('INIT');
+ expect(controller.get('requestStatus')).to.equal('NOT_REQUIRED');
});
it("upgradeData is null", function() {
@@ -235,7 +235,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
controller.updateUpgradeData.restore();
controller.setDBProperty.restore();
controller.finish.restore();
- App.set('upgradeState', 'INIT');
+ App.set('upgradeState', 'NOT_REQUIRED');
});
it("correct data", function() {
@@ -1197,7 +1197,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
describe("#installRepoVersionSuccess()", function() {
var mock = Em.Object.create({
id: 1,
- defaultStatus: 'INIT',
+ defaultStatus: 'NOT_REQUIRED',
stackVersion: {}
});
beforeEach(function () {
@@ -3133,7 +3133,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
expect(controller.setDBProperties.calledWith({
fromVersion: undefined,
upgradeId: undefined,
- upgradeState: 'INIT',
+ upgradeState: 'NOT_REQUIRED',
upgradeVersion: undefined,
currentVersion: undefined,
upgradeTypeDisplayName: undefined,
@@ -3155,9 +3155,9 @@ describe('App.MainAdminStackAndUpgradeController', function() {
expect(App.clusterStatus.setClusterStatus.calledOnce).to.be.true;
});
- it("upgradeState should be INIT", function() {
+ it("upgradeState should be NOT_REQUIRED", function() {
controller.finish();
- expect(App.get('upgradeState')).to.be.equal('INIT');
+ expect(App.get('upgradeState')).to.be.equal('NOT_REQUIRED');
});
it("currentStackVersion should be set", function() {
@@ -3265,7 +3265,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
ClusterStackVersions: {
version: '2.3',
stack: 'HDP',
- state: 'INIT'
+ state: 'NOT_REQUIRED'
},
repository_versions: [
{
@@ -3281,7 +3281,7 @@ describe('App.MainAdminStackAndUpgradeController', function() {
ClusterStackVersions: {
version: '2.2',
stack: 'HDP',
- state: 'INIT'
+ state: 'NOT_REQUIRED'
},
repository_versions: [
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
index 31aa796..b5738a0 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_version_box_view_test.js
@@ -50,7 +50,7 @@ describe('App.UpgradeVersionBoxView', function () {
view.set('controller.fromVersion', 'HDP-1');
});
afterEach(function () {
- App.set('upgradeState', 'INIT');
+ App.set('upgradeState', 'NOT_REQUIRED');
});
it("wrong version", function () {
App.set('upgradeState', 'IN_PROGRESS');
@@ -74,15 +74,15 @@ describe('App.UpgradeVersionBoxView', function () {
view.propertyDidChange('isUpgrading');
expect(view.get('isUpgrading')).to.be.true;
});
- it("upgradeState INIT", function () {
- App.set('upgradeState', 'INIT');
+ it("upgradeState NOT_REQUIRED", function () {
+ App.set('upgradeState', 'NOT_REQUIRED');
view.set('controller.upgradeVersion', 'HDP-2.2.2');
view.set('content.displayName', 'HDP-2.2.2');
view.propertyDidChange('isUpgrading');
expect(view.get('isUpgrading')).to.be.false;
});
- it("upgradeState INIT and wrong version", function () {
- App.set('upgradeState', 'INIT');
+ it("upgradeState NOT_REQUIRED and wrong version", function () {
+ App.set('upgradeState', 'NOT_REQUIRED');
view.set('controller.upgradeVersion', 'HDP-2.2.2');
view.set('content.displayName', 'HDP-2.2.1');
view.propertyDidChange('isUpgrading');
@@ -449,11 +449,11 @@ describe('App.UpgradeVersionBoxView', function () {
},
{
inputData: {
- 'content.status': 'INIT',
+ 'content.status': 'NOT_REQUIRED',
'controller.requestInProgress': false,
'parentView.repoVersions': [
Em.Object.create({
- status: 'INIT'
+ status: 'NOT_REQUIRED'
})
]
},
@@ -462,20 +462,20 @@ describe('App.UpgradeVersionBoxView', function () {
this.initMock.returns(false);
},
expected: {
- status: 'INIT',
+ status: 'NOT_REQUIRED',
isButton: true,
buttons: [],
isDisabled: true
},
- title: 'INIT state, no admin access, no requests in progress'
+ title: 'NOT_REQUIRED state, no admin access, no requests in progress'
},
{
inputData: {
- 'content.status': 'INIT',
+ 'content.status': 'NOT_REQUIRED',
'controller.requestInProgress': true,
'parentView.repoVersions': [
Em.Object.create({
- status: 'INIT'
+ status: 'NOT_REQUIRED'
})
]
},
@@ -484,12 +484,12 @@ describe('App.UpgradeVersionBoxView', function () {
this.initMock.returns(true);
},
expected: {
- status: 'INIT',
+ status: 'NOT_REQUIRED',
isButton: true,
buttons: [],
isDisabled: true
},
- title: 'INIT state, no admin access, request in progress, not installation'
+ title: 'NOT_REQUIRED state, no admin access, request in progress, not installation'
},
{
inputData: {
@@ -1039,7 +1039,7 @@ describe('App.UpgradeVersionBoxView', function () {
title: 'upgrading just started'
},
{
- status: 'INIT',
+ status: 'NOT_REQUIRED',
isUpgrading: false,
isRepoUrlsEditDisabled: false,
title: 'neither upgrading nor installing packages'
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
index 075bcc8..7ae785c 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/upgrade_wizard_view_test.js
@@ -322,7 +322,7 @@ describe('App.upgradeWizardView', function () {
failedItem: null,
runningItem: null,
manualItem: null,
- upgradeState: 'INIT'
+ upgradeState: 'NOT_REQUIRED'
},
result: false
},
http://git-wip-us.apache.org/repos/asf/ambari/blob/12202a2f/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js b/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
index 651c361..cf66165 100644
--- a/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
+++ b/ambari-web/test/views/main/admin/stack_upgrade/version_view_test.js
@@ -44,7 +44,7 @@ describe('App.mainAdminStackVersionsView', function () {
describe("#filterBy()", function () {
var versions = [
Em.Object.create({
- status: "INIT",
+ status: "NOT_REQUIRED",
repositoryVersion: "2.2.1.1"
}),
Em.Object.create({
@@ -88,7 +88,7 @@ describe('App.mainAdminStackVersionsView', function () {
}),
filteredVersions: [
Em.Object.create({
- status: "INIT",
+ status: "NOT_REQUIRED",
repositoryVersion: "2.2.1.1"
}),
Em.Object.create({
@@ -128,7 +128,7 @@ describe('App.mainAdminStackVersionsView', function () {
}),
filteredVersions: [
Em.Object.create({
- status: "INIT",
+ status: "NOT_REQUIRED",
repositoryVersion: "2.2.1.1"
}),
Em.Object.create({
[10/10] ambari git commit: Merge branch 'branch-feature-AMBARI-12556'
into trunk
Posted by nc...@apache.org.
Merge branch 'branch-feature-AMBARI-12556' into trunk
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/acc12fb7
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/acc12fb7
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/acc12fb7
Branch: refs/heads/trunk
Commit: acc12fb7232c8bcd007fe38a942209b853ce3618
Parents: 8d129d4 382da97
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Jun 12 12:48:52 2017 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Jun 12 12:48:52 2017 -0400
----------------------------------------------------------------------
.../test/python/ambari_agent/TestHostInfo.py | 107 ++++++++++
.../libraries/functions/conf_select.py | 1 -
.../libraries/functions/packages_analyzer.py | 53 ++++-
.../libraries/script/script.py | 25 ++-
.../actionmanager/ExecutionCommandWrapper.java | 65 +++---
.../ambari/server/agent/ExecutionCommand.java | 57 ++++--
.../AmbariCustomCommandExecutionHelper.java | 4 +-
.../AmbariManagementControllerImpl.java | 2 -
.../ambari/server/orm/dao/HostVersionDAO.java | 16 ++
.../server/orm/entities/HostVersionEntity.java | 5 +
.../ServiceComponentDesiredStateEntity.java | 2 +-
.../upgrades/FinalizeUpgradeAction.java | 57 +++++-
.../server/state/RepositoryVersionState.java | 31 ++-
.../apache/ambari/server/state/ServiceImpl.java | 2 +-
.../server/upgrade/UpgradeCatalog300.java | 13 +-
.../main/resources/Ambari-DDL-Derby-CREATE.sql | 2 +-
.../main/resources/Ambari-DDL-MySQL-CREATE.sql | 2 +-
.../main/resources/Ambari-DDL-Oracle-CREATE.sql | 2 +-
.../resources/Ambari-DDL-Postgres-CREATE.sql | 2 +-
.../resources/Ambari-DDL-SQLAnywhere-CREATE.sql | 2 +-
.../resources/Ambari-DDL-SQLServer-CREATE.sql | 2 +-
.../STORM/0.9.1/package/scripts/params_linux.py | 2 -
.../1.0.1.3.0/package/scripts/params_linux.py | 2 -
.../custom_actions/scripts/install_packages.py | 25 ++-
.../AmbariCustomCommandExecutionHelperTest.java | 11 +-
.../upgrades/UpgradeActionTest.java | 109 ++++++++--
.../custom_actions/TestInstallPackages.py | 202 +++++++------------
.../configs/install_packages_config.json | 19 +-
.../stacks/2.0.6/HBASE/test_hbase_master.py | 11 +-
.../stacks/2.0.6/configs/hbase_with_phx.json | 12 ++
ambari-web/app/app.js | 8 +-
.../main/admin/stack_and_upgrade_controller.js | 6 +-
ambari-web/app/data/controller_route.js | 2 +-
ambari-web/app/messages.js | 4 +-
.../models/stack_version/repository_version.js | 2 +-
.../stack_upgrade/upgrade_version_box_view.js | 8 +-
.../upgrade_version_column_view.js | 2 +-
.../admin/stack_upgrade/upgrade_wizard_view.js | 2 +-
.../main/admin/stack_upgrade/versions_view.js | 2 +-
ambari-web/test/app_test.js | 10 +-
.../admin/stack_and_upgrade_controller_test.js | 18 +-
.../upgrade_version_box_view_test.js | 28 +--
.../stack_upgrade/upgrade_wizard_view_test.js | 2 +-
.../admin/stack_upgrade/version_view_test.js | 6 +-
utility/pom.xml | 21 ++
45 files changed, 650 insertions(+), 316 deletions(-)
----------------------------------------------------------------------
[04/10] ambari git commit: Merge branch 'trunk' into
branch-feature-AMBARI-12556
Posted by nc...@apache.org.
Merge branch 'trunk' into branch-feature-AMBARI-12556
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/64e3ad77
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/64e3ad77
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/64e3ad77
Branch: refs/heads/trunk
Commit: 64e3ad77685dd934324947225889e76429ad5813
Parents: cd3fb85 601a7cd
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Mon Jun 5 15:43:28 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Mon Jun 5 15:43:28 2017 -0400
----------------------------------------------------------------------
.../scripts/controllers/users/UsersShowCtrl.js | 13 ++
.../ui/admin-web/app/views/users/show.html | 5 +-
.../src/main/python/ambari_agent/Controller.py | 6 +-
ambari-server/conf/unix/ambari.properties | 4 +
ambari-server/docs/configuration/index.md | 5 +-
.../ambari/server/agent/HeartBeatHandler.java | 18 ++-
.../server/configuration/Configuration.java | 31 ++++-
.../AmbariManagementControllerImpl.java | 126 ++++++++++++++++++-
.../server/controller/KerberosHelperImpl.java | 6 +
.../internal/ConfigGroupResourceProvider.java | 41 ++++--
.../internal/HostResourceProvider.java | 2 +-
.../listeners/tasks/TaskStatusListener.java | 2 +-
.../scheduler/ExecutionSchedulerImpl.java | 2 +
.../security/InternalSSLSocketFactory.java | 112 +++++++++++++++++
.../InternalSSLSocketFactoryNonTrusting.java | 49 ++++++++
.../InternalSSLSocketFactoryTrusting.java | 48 +++++++
.../kerberos/ADKerberosOperationHandler.java | 34 +++--
.../KerberosKDCSSLConnectionException.java | 45 +++++++
.../kerberos/TrustingSSLSocketFactory.java | 101 ---------------
.../server/state/cluster/ClusterImpl.java | 13 +-
.../svccomphost/ServiceComponentHostImpl.java | 2 +-
.../server/upgrade/UpgradeCatalog251.java | 45 ++++++-
.../OOZIE/4.0.0.2.0/package/scripts/oozie.py | 9 +-
.../OOZIE/4.2.0.3.0/package/scripts/oozie.py | 9 +-
.../internal/UpgradeResourceProviderTest.java | 1 -
.../ADKerberosOperationHandlerTest.java | 96 +++++++++++++-
.../server/upgrade/UpgradeCatalog251Test.java | 13 +-
.../main/service/reassign/step3_controller.js | 1 +
.../app/controllers/wizard/step8_controller.js | 3 +-
.../app/styles/theme/bootstrap-ambari.css | 18 +--
.../stack_upgrade/upgrade_version_box_view.js | 4 +-
.../upgrade_version_box_view_test.js | 4 +-
.../view/filebrowser/DownloadService.java | 9 +-
.../ambari/view/hive2/actor/DeathWatch.java | 5 +-
.../view/hive2/client/NonPersistentCursor.java | 4 +-
.../ambari/view/hive20/actor/DeathWatch.java | 7 +-
.../view/hive20/client/NonPersistentCursor.java | 4 +-
docs/src/site/site.xml | 2 +-
38 files changed, 690 insertions(+), 209 deletions(-)
----------------------------------------------------------------------
[09/10] ambari git commit: Merge branch 'trunk' into
branch-feature-AMBARI-12556
Posted by nc...@apache.org.
Merge branch 'trunk' into branch-feature-AMBARI-12556
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/382da979
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/382da979
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/382da979
Branch: refs/heads/trunk
Commit: 382da97990dfe673bb6d4d69590444ddbbb455eb
Parents: 871f85b 8d129d4
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Jun 12 12:44:40 2017 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Jun 12 12:44:40 2017 -0400
----------------------------------------------------------------------
.../org/apache/ambari/tools/zk/ZkMigrator.java | 44 +-
.../apache/ambari/tools/zk/ZkMigratorTest.java | 60 +-
.../main/python/ambari_commons/inet_utils.py | 32 ++
.../src/main/python/ambari_commons/os_check.py | 6 +
.../ambari_commons/resources/os_family.json | 10 +
.../core/providers/__init__.py | 19 +-
.../core/resources/zkmigrator.py | 17 +-
.../libraries/providers/__init__.py | 3 -
.../InfraKerberosHostValidator.java | 54 --
.../InfraRuleBasedAuthorizationPlugin.java | 542 -------------------
.../InfraUserRolesLookupStrategy.java | 49 --
.../security/InfraKerberosHostValidator.java | 54 ++
.../InfraRuleBasedAuthorizationPlugin.java | 542 +++++++++++++++++++
.../security/InfraUserRolesLookupStrategy.java | 49 ++
ambari-logsearch/docker/Dockerfile | 6 +-
ambari-metrics/ambari-metrics-common/pom.xml | 5 +
.../timeline/AbstractTimelineMetricsSink.java | 64 ++-
.../sink/timeline/AppCookieManager.java | 219 ++++++++
.../sink/timeline/AppCookieManagerTest.java | 52 ++
.../ambari-metrics-host-aggregator/pom.xml | 30 +-
.../AbstractMetricPublisherThread.java | 134 -----
.../aggregator/AggregatedMetricsPublisher.java | 101 ----
.../host/aggregator/AggregatorApplication.java | 98 ++--
.../host/aggregator/AggregatorWebService.java | 2 +-
.../host/aggregator/RawMetricsPublisher.java | 60 --
.../host/aggregator/TimelineMetricsHolder.java | 26 +-
.../sink/timeline/AbstractMetricPublisher.java | 169 ++++++
.../timeline/AggregatedMetricsPublisher.java | 103 ++++
.../sink/timeline/RawMetricsPublisher.java | 65 +++
.../aggregator/AggregatorApplicationTest.java | 55 ++
.../aggregator/AggregatorWebServiceTest.java | 135 +++++
.../aggregator/TimelineMetricsHolderTest.java | 107 ++++
.../timeline/AbstractMetricPublisherTest.java | 82 +++
.../AggregatedMetricsPublisherTest.java | 154 ++++++
.../sink/timeline/RawMetricsPublisherTest.java | 151 ++++++
.../src/main/python/core/aggregator.py | 6 +-
.../src/main/python/core/controller.py | 2 +-
ambari-project/pom.xml | 5 +
.../security/kerberos/kerberos_descriptor.md | 5 +-
ambari-server/pom.xml | 24 +-
.../server/KdcServerConnectionVerification.java | 2 +-
.../ambari/server/StateRecoveryManager.java | 2 +-
.../actionmanager/ActionDBAccessorImpl.java | 6 +-
.../server/actionmanager/ActionManager.java | 8 +-
.../server/actionmanager/ActionScheduler.java | 18 +-
.../ambari/server/actionmanager/Stage.java | 6 +-
.../apache/ambari/server/agent/ActionQueue.java | 2 +-
.../ambari/server/agent/AgentRequests.java | 10 +-
.../ambari/server/agent/ExecutionCommand.java | 6 +-
.../ambari/server/agent/HeartBeatHandler.java | 17 +-
.../ambari/server/agent/HeartbeatMonitor.java | 14 +-
.../ambari/server/agent/HeartbeatProcessor.java | 4 +-
.../apache/ambari/server/agent/HostInfo.java | 2 +-
.../apache/ambari/server/agent/Register.java | 2 +-
.../ambari/server/agent/rest/AgentResource.java | 18 +-
.../ambari/server/api/query/QueryImpl.java | 4 +-
.../server/api/rest/BootStrapResource.java | 6 +-
.../server/api/services/AmbariMetaInfo.java | 12 +-
.../ambari/server/api/services/BaseRequest.java | 2 +-
.../api/services/PersistKeyValueService.java | 16 +-
.../services/parsers/JsonRequestBodyParser.java | 2 +-
.../StackAdvisorBlueprintProcessor.java | 2 +-
.../commands/StackAdvisorCommand.java | 10 +-
.../views/ViewDataMigrationService.java | 6 +-
.../server/bootstrap/BSHostStatusCollector.java | 12 +-
.../ambari/server/bootstrap/BSRunner.java | 14 +-
.../ambari/server/bootstrap/BootStrapImpl.java | 6 +-
.../server/checks/AbstractCheckDescriptor.java | 7 -
.../checks/ServiceCheckValidityCheck.java | 9 +-
.../server/checks/UpgradeCheckRegistry.java | 4 +-
.../server/configuration/Configuration.java | 17 +
.../controller/AmbariActionExecutionHelper.java | 9 +-
.../AmbariCustomCommandExecutionHelper.java | 17 +-
.../server/controller/AmbariHandlerList.java | 2 +-
.../AmbariManagementControllerImpl.java | 96 ++--
.../ambari/server/controller/AmbariServer.java | 2 +-
.../server/controller/ControllerModule.java | 2 +-
.../server/controller/KerberosHelperImpl.java | 21 +-
.../internal/AbstractPropertyProvider.java | 4 +-
.../internal/AbstractProviderModule.java | 15 +-
.../internal/ActionResourceProvider.java | 3 +-
.../controller/internal/AppCookieManager.java | 8 +-
.../controller/internal/BaseProvider.java | 10 +-
.../BlueprintConfigurationProcessor.java | 28 +-
.../internal/ClientConfigResourceProvider.java | 2 +-
.../internal/ClusterControllerImpl.java | 4 +-
.../internal/ClusterResourceProvider.java | 6 +-
...atibleRepositoryVersionResourceProvider.java | 2 +-
.../internal/ComponentResourceProvider.java | 6 +-
.../internal/ConfigGroupResourceProvider.java | 15 +-
.../internal/GroupResourceProvider.java | 4 +-
.../internal/HostComponentResourceProvider.java | 2 +-
.../internal/HostResourceProvider.java | 12 +-
.../controller/internal/HostStatusHelper.java | 2 +-
.../internal/JobResourceProvider.java | 12 +-
.../internal/MemberResourceProvider.java | 4 +-
.../PreUpgradeCheckResourceProvider.java | 8 +-
.../internal/RequestResourceProvider.java | 6 +-
.../internal/RequestStageContainer.java | 2 +-
.../internal/ServiceResourceProvider.java | 53 +-
.../internal/TaskAttemptResourceProvider.java | 6 +-
.../controller/internal/URLStreamProvider.java | 10 +-
.../internal/UpgradeResourceProvider.java | 5 -
.../internal/UserResourceProvider.java | 4 +-
.../internal/WidgetLayoutResourceProvider.java | 4 +-
.../internal/WorkflowResourceProvider.java | 6 +-
.../server/controller/jmx/JMXMetricHolder.java | 2 +-
.../logging/LogSearchDataRetrievalService.java | 4 +-
.../logging/LoggingRequestHelperImpl.java | 15 +-
.../logging/LoggingSearchPropertyProvider.java | 4 +-
.../metrics/MetricsCollectorHAManager.java | 2 +-
.../metrics/MetricsDownsamplingMethod.java | 5 +-
.../metrics/timeline/AMSPropertyProvider.java | 2 +-
.../metrics/timeline/MetricsRequestHelper.java | 20 +-
.../timeline/cache/TimelineMetricCache.java | 28 +-
.../cache/TimelineMetricCacheEntryFactory.java | 46 +-
.../cache/TimelineMetricsCacheSizeOfEngine.java | 6 +-
.../controller/utilities/KerberosChecker.java | 2 +-
.../ServiceCalculatedStateFactory.java | 2 +-
.../server/credentialapi/CredentialUtil.java | 2 +-
.../customactions/ActionDefinitionManager.java | 6 +-
.../alerts/AlertHashInvalidationListener.java | 2 +-
.../alerts/AlertLifecycleListener.java | 2 +-
.../alerts/AlertMaintenanceModeListener.java | 2 +-
.../AlertServiceComponentHostListener.java | 2 +-
.../alerts/AlertServiceStateListener.java | 2 +-
.../alerts/AlertStateChangedListener.java | 2 +-
.../upgrade/HostVersionOutOfSyncListener.java | 2 -
.../CachedRoleCommandOrderProvider.java | 2 +-
.../server/metadata/RoleCommandOrder.java | 7 +-
.../system/impl/AmbariPerformanceMonitor.java | 4 +-
.../system/impl/DatabaseMetricsSource.java | 2 +-
.../metrics/system/impl/JvmMetricsSource.java | 2 +-
.../system/impl/MetricsConfiguration.java | 2 +-
.../metrics/system/impl/MetricsServiceImpl.java | 2 +-
.../dispatchers/AlertScriptDispatcher.java | 45 +-
.../ambari/server/orm/DBAccessorImpl.java | 2 +-
.../server/orm/dao/AlertDefinitionDAO.java | 2 +-
.../ambari/server/orm/dao/HostVersionDAO.java | 6 +-
.../ambari/server/orm/dao/ServiceConfigDAO.java | 1 -
.../orm/entities/RepositoryVersionEntity.java | 2 +-
.../orm/helpers/dbms/GenericDbmsHelper.java | 4 +-
.../server/resources/ResourceManager.java | 11 +-
.../server/resources/api/rest/GetResource.java | 9 +-
.../scheduler/AbstractLinearExecutionJob.java | 6 +-
.../scheduler/ExecutionScheduleManager.java | 12 +-
.../scheduler/ExecutionSchedulerImpl.java | 4 +-
.../server/security/CertificateManager.java | 6 +-
.../ambari/server/security/SecurityFilter.java | 12 +-
.../AmbariLdapBindAuthenticator.java | 2 +-
.../AmbariPamAuthenticationProvider.java | 2 +-
.../jwt/JwtAuthenticationFilter.java | 2 +-
.../encryption/MasterKeyServiceImpl.java | 8 +-
.../unsecured/rest/CertificateDownload.java | 6 +-
.../unsecured/rest/CertificateSign.java | 6 +-
.../security/unsecured/rest/ConnectionInfo.java | 6 +-
.../kerberos/ADKerberosOperationHandler.java | 6 +-
.../kerberos/CreateKeytabFilesServerAction.java | 6 +-
.../kerberos/DestroyPrincipalsServerAction.java | 2 +-
.../kerberos/IPAKerberosOperationHandler.java | 18 +-
.../kerberos/MITKerberosOperationHandler.java | 2 +-
.../serveraction/upgrades/ConfigureAction.java | 2 +-
.../upgrades/FinalizeUpgradeAction.java | 4 +-
.../upgrades/UpdateDesiredStackAction.java | 2 +-
.../ambari/server/stack/ExtensionDirectory.java | 2 +-
.../ambari/server/stack/ExtensionModule.java | 4 +-
.../ambari/server/stack/MasterHostResolver.java | 2 +-
.../ambari/server/stack/ServiceDirectory.java | 2 +-
.../ambari/server/stack/ServiceModule.java | 4 +-
.../ambari/server/stack/StackDirectory.java | 7 +-
.../ambari/server/stack/StackManager.java | 9 +-
.../apache/ambari/server/stack/StackModule.java | 20 +-
.../ambari/server/stageplanner/RoleGraph.java | 51 +-
.../apache/ambari/server/state/CheckHelper.java | 39 +-
.../org/apache/ambari/server/state/Cluster.java | 6 +-
.../ambari/server/state/ConfigFactory.java | 8 -
.../server/state/ServiceComponentImpl.java | 21 +-
.../apache/ambari/server/state/ServiceImpl.java | 21 +-
.../apache/ambari/server/state/StackInfo.java | 2 +-
.../ambari/server/state/UpgradeContext.java | 2 -
.../ambari/server/state/action/ActionImpl.java | 23 +-
.../ambari/server/state/alert/AlertUri.java | 2 +-
.../server/state/cluster/ClusterImpl.java | 45 +-
.../server/state/cluster/ClustersImpl.java | 6 +-
.../ambari/server/state/host/HostImpl.java | 32 +-
.../state/kerberos/KerberosDescriptor.java | 51 ++
.../kerberos/VariableReplacementHelper.java | 23 +-
.../server/state/stack/ConfigUpgradePack.java | 2 +-
.../ambari/server/state/stack/OsFamily.java | 12 +
.../state/stack/StackRoleCommandOrder.java | 2 +-
.../ambari/server/state/stack/UpgradePack.java | 2 +-
.../state/stack/upgrade/ColocatedGrouping.java | 2 +-
.../upgrade/ConfigUpgradeChangeDefinition.java | 2 +-
.../state/stack/upgrade/ConfigureTask.java | 2 +-
.../state/stack/upgrade/HostOrderGrouping.java | 2 +-
.../stack/upgrade/RepositoryVersionHelper.java | 4 +-
.../state/stack/upgrade/RestartGrouping.java | 2 +-
.../stack/upgrade/ServiceCheckGrouping.java | 2 +-
.../state/stack/upgrade/StartGrouping.java | 2 +-
.../state/stack/upgrade/StopGrouping.java | 2 +-
.../state/stack/upgrade/TaskWrapperBuilder.java | 2 +-
.../svccomphost/ServiceComponentHostImpl.java | 23 +-
.../server/topology/BlueprintValidatorImpl.java | 2 +-
.../topology/tasks/ConfigureClusterTask.java | 2 +-
.../server/topology/tasks/TopologyHostTask.java | 4 +-
.../validators/ClusterConfigTypeValidator.java | 2 +-
.../server/upgrade/AbstractUpgradeCatalog.java | 2 +-
.../server/upgrade/SchemaUpgradeHelper.java | 2 +-
.../server/upgrade/UpgradeCatalog222.java | 2 +-
.../server/upgrade/UpgradeCatalog250.java | 39 +-
.../apache/ambari/server/utils/AmbariPath.java | 2 +-
.../ambari/server/utils/CommandUtils.java | 2 +-
.../ambari/server/utils/SecretReference.java | 2 +-
.../ambari/server/utils/ShellCommandUtil.java | 6 +-
.../apache/ambari/server/utils/StageUtils.java | 6 +-
.../server/view/HttpImpersonatorImpl.java | 2 +-
.../server/view/ViewAmbariStreamProvider.java | 2 +-
.../ambari/server/view/ViewContextImpl.java | 6 +-
.../view/ViewDataMigrationContextImpl.java | 6 +-
.../server/view/ViewDataMigrationUtility.java | 4 +-
.../server/view/ViewDirectoryWatcher.java | 6 +-
.../ambari/server/view/ViewExtractor.java | 8 +-
.../apache/ambari/server/view/ViewRegistry.java | 27 +-
.../server/view/ViewURLStreamProvider.java | 14 +-
.../main/python/ambari_server/setupMpacks.py | 4 +-
.../main/resources/Ambari-DDL-Oracle-CREATE.sql | 12 +-
.../0.1.0/configuration/ams-hbase-env.xml | 4 +-
.../package/templates/hbase_master_jaas.conf.j2 | 10 +
.../templates/hbase_regionserver_jaas.conf.j2 | 10 +
.../DRUID/0.9.2/configuration/druid-env.xml | 2 +-
.../DRUID/0.9.2/package/scripts/druid.py | 7 +
.../DRUID/0.9.2/package/scripts/params.py | 1 +
.../package/templates/hbase_master_jaas.conf.j2 | 10 +
.../templates/hbase_regionserver_jaas.conf.j2 | 10 +
.../HBASE/2.0.0.3.0/configuration/hbase-env.xml | 4 +-
.../package/templates/hbase_master_jaas.conf.j2 | 10 +
.../templates/hbase_regionserver_jaas.conf.j2 | 10 +
.../HDFS/2.1.0.2.0/package/scripts/hdfs.py | 17 +
.../package/templates/hdfs_dn_jaas.conf.j2 | 27 +
.../package/templates/hdfs_jn_jaas.conf.j2 | 27 +
.../package/templates/hdfs_nn_jaas.conf.j2 | 27 +
.../HDFS/3.0.0.3.0/package/scripts/hdfs.py | 17 +
.../package/templates/hdfs_dn_jaas.conf.j2 | 27 +
.../package/templates/hdfs_jn_jaas.conf.j2 | 27 +
.../package/templates/hdfs_nn_jaas.conf.j2 | 27 +
.../HIVE/0.12.0.2.0/configuration/hive-site.xml | 2 +-
.../KAFKA/0.8.1/configuration/kafka-env.xml | 4 +
.../0.8.1/configuration/kafka_jaas_conf.xml | 11 +
.../0.8.1/package/templates/kafka_jaas.conf.j2 | 11 +
.../package/templates/krb5JAASLogin.conf.j2 | 9 +-
.../package/templates/krb5JAASLogin.conf.j2 | 9 +-
.../0.9.1/package/scripts/storm_yaml_utils.py | 5 +-
.../0.9.1/package/templates/storm_jaas.conf.j2 | 10 +
.../2.1.0.2.0/package/scripts/params_linux.py | 32 +-
.../package/scripts/resourcemanager.py | 2 +-
.../YARN/2.1.0.2.0/package/scripts/yarn.py | 17 +
.../package/templates/mapred_jaas.conf.j2 | 28 +
.../package/templates/yarn_ats_jaas.conf.j2 | 27 +
.../package/templates/yarn_jaas.conf.j2 | 12 +-
.../package/templates/yarn_nm_jaas.conf.j2 | 27 +
.../configuration-mapred/mapred-env.xml | 4 +-
.../YARN/3.0.0.3.0/configuration/yarn-env.xml | 15 +-
.../YARN/3.0.0.3.0/kerberos.json | 4 +-
.../3.0.0.3.0/package/scripts/params_linux.py | 32 +-
.../package/scripts/resourcemanager.py | 2 +-
.../YARN/3.0.0.3.0/package/scripts/yarn.py | 19 +-
.../package/templates/mapred_jaas.conf.j2 | 28 +
.../package/templates/yarn_ats_jaas.conf.j2 | 27 +
.../package/templates/yarn_jaas.conf.j2 | 12 +-
.../package/templates/yarn_nm_jaas.conf.j2 | 27 +
.../YARN/3.0.0.3.0/service_advisor.py | 4 +-
.../0.6.0.2.5/package/scripts/master.py | 4 +-
.../resources/host_scripts/alert_disk_space.py | 22 +-
.../services/HIVE/configuration/hive-site.xml | 2 +-
.../YARN/configuration-mapred/mapred-env.xml | 4 +-
.../services/HBASE/configuration/hbase-env.xml | 4 +-
.../services/HDFS/configuration/hadoop-env.xml | 7 +
.../services/YARN/configuration/yarn-env.xml | 16 +-
.../services/HDFS/configuration/hadoop-env.xml | 7 +
.../resources/stacks/HDP/2.6/repos/repoinfo.xml | 14 +
.../services/SPARK2/configuration/livy2-env.xml | 4 +-
.../stacks/HDP/2.6/services/YARN/kerberos.json | 4 +-
.../services/HDFS/configuration/hadoop-env.xml | 7 +
.../YARN/configuration-mapred/mapred-env.xml | 4 +-
.../src/main/resources/stacks/stack_advisor.py | 115 +++-
.../ambari/server/agent/AgentResourceTest.java | 6 +-
.../server/agent/LocalAgentSimulator.java | 6 +-
.../ambari/server/agent/TestActionQueue.java | 2 +-
.../server/agent/TestHeartbeatHandler.java | 4 +-
.../server/api/services/AmbariMetaInfoTest.java | 4 +-
.../server/api/services/PersistServiceTest.java | 6 +-
.../server/bootstrap/BootStrapResourceTest.java | 6 +-
.../ambari/server/bootstrap/BootStrapTest.java | 6 +-
.../checks/ServiceCheckValidityCheckTest.java | 42 +-
.../AmbariManagementControllerImplTest.java | 13 +-
.../AmbariManagementControllerTest.java | 17 +-
.../server/controller/KerberosHelperTest.java | 129 ++---
.../AbstractJDBCResourceProviderTest.java | 2 +-
.../BlueprintConfigurationProcessorTest.java | 3 +
.../CredentialResourceProviderTest.java | 10 +-
.../PreUpgradeCheckResourceProviderTest.java | 15 +-
.../StackUpgradeConfigurationMergeTest.java | 3 +-
.../internal/UpgradeResourceProviderTest.java | 2 +-
.../metrics/ganglia/GangliaMetricTest.java | 2 +-
.../dispatchers/AlertScriptDispatcherTest.java | 67 +++
.../apache/ambari/server/orm/OrmTestHelper.java | 4 +-
.../orm/dao/RepositoryVersionDAOTest.java | 2 +-
.../sample/checks/SampleServiceCheck.java | 4 -
.../server/security/CertGenerationTest.java | 6 +-
.../server/security/SslExecutionTest.java | 6 +-
.../encryption/MasterKeyServiceTest.java | 6 +-
.../upgrades/ConfigureActionTest.java | 5 -
.../upgrades/UpgradeActionTest.java | 5 -
.../server/stageplanner/TestStagePlanner.java | 197 ++++++-
.../ambari/server/state/CheckHelperTest.java | 36 +-
.../server/state/cluster/ClusterTest.java | 4 +-
.../ambari/server/state/host/HostTest.java | 6 +-
.../state/kerberos/KerberosDescriptorTest.java | 9 +
.../kerberos/VariableReplacementHelperTest.java | 130 +++--
.../svccomphost/ServiceComponentHostTest.java | 5 +-
.../server/testing/DBInconsistencyTests.java | 2 +-
.../server/upgrade/UpgradeCatalogHelper.java | 7 -
.../ambari/server/upgrade/UpgradeTest.java | 2 +-
.../python/host_scripts/TestAlertDiskSpace.py | 12 +-
.../python/stacks/2.0.6/HDFS/test_datanode.py | 10 +
.../stacks/2.0.6/HDFS/test_journalnode.py | 11 +-
.../python/stacks/2.0.6/HDFS/test_namenode.py | 24 +-
.../python/stacks/2.0.6/HDFS/test_nfsgateway.py | 10 +
.../python/stacks/2.0.6/HDFS/test_snamenode.py | 12 +-
.../test/python/stacks/2.0.6/HDFS/test_zkfc.py | 17 +-
.../stacks/2.0.6/YARN/test_historyserver.py | 10 +
.../stacks/2.0.6/YARN/test_mapreduce2_client.py | 10 +
.../stacks/2.0.6/YARN/test_nodemanager.py | 10 +
.../stacks/2.0.6/YARN/test_resourcemanager.py | 10 +
.../stacks/2.0.6/YARN/test_yarn_client.py | 10 +
.../stacks/2.0.6/common/test_stack_advisor.py | 153 ++++++
.../test/python/stacks/2.6/DRUID/test_druid.py | 23 +-
.../test/python/stacks/2.6/configs/default.json | 3 +-
.../stacks/HDP/2.0.6.1/role_command_order.json | 101 +---
ambari-web/app/config.js | 9 +-
.../progress_popup_controller.js | 2 +-
.../main/admin/stack_and_upgrade_controller.js | 2 +-
.../manage_alert_notifications_controller.js | 35 +-
ambari-web/app/messages.js | 9 +-
ambari-web/app/routes/add_service_routes.js | 2 +-
ambari-web/app/routes/main.js | 2 +-
ambari-web/app/styles/application.less | 11 +
ambari-web/app/styles/bootstrap_overrides.less | 49 ++
ambari-web/app/styles/dashboard.less | 115 ++--
.../templates/common/export_metrics_menu.hbs | 16 +-
ambari-web/app/templates/common/progress.hbs | 4 +
ambari-web/app/templates/main.hbs | 2 +-
.../app/templates/main/admin/kerberos.hbs | 34 +-
.../main/alerts/create_alert_notification.hbs | 14 +
ambari-web/app/templates/main/dashboard.hbs | 2 +-
.../main/dashboard/widgets/cluster_metrics.hbs | 12 +-
.../main/dashboard/widgets/hbase_links.hbs | 15 +-
.../main/dashboard/widgets/hdfs_links.hbs | 17 +-
.../main/dashboard/widgets/pie_chart.hbs | 21 +-
.../main/dashboard/widgets/simple_text.hbs | 21 +-
.../templates/main/dashboard/widgets/uptime.hbs | 16 +-
.../main/dashboard/widgets/yarn_links.hbs | 18 +-
.../main/service/all_services_actions.hbs | 6 +-
ambari-web/app/utils/ajax/ajax.js | 2 +-
ambari-web/app/utils/config.js | 2 +-
ambari-web/app/utils/validator.js | 8 +
ambari-web/app/views/common/chart/pie.js | 10 +-
.../configs/service_config_container_view.js | 2 +-
ambari-web/app/views/loading.js | 2 +-
ambari-web/app/views/main/admin.js | 14 +-
.../views/main/admin/kerberos/disable_view.js | 3 +-
.../main/admin/stack_upgrade/services_view.js | 2 +-
.../main/alerts/definition_details_view.js | 2 +-
.../dashboard/widgets/cluster_metrics_widget.js | 3 -
.../main/dashboard/widgets/pie_chart_widget.js | 23 +-
ambari-web/app/views/main/menu.js | 16 +-
ambari-web/app/views/main/service/item.js | 2 +-
...anage_alert_notifications_controller_test.js | 38 +-
ambari-web/test/utils/config_test.js | 2 +-
.../admin/stack_upgrade/services_view_test.js | 1 +
.../main/alerts/definition_details_view_test.js | 2 +-
.../src/main/assemblies/odpi-ambari-mpack.xml | 2 +-
.../main/resources/ui/app/models/worksheet.js | 1 +
.../resources/ui/app/routes/queries/query.js | 15 +-
.../ui/app/routes/queries/query/results.js | 6 +-
.../templates/components/query-result-table.hbs | 92 ++--
.../ui/app/templates/queries/query.hbs | 10 +-
.../ui/app/templates/queries/query/log.hbs | 12 +-
.../ui/app/templates/queries/query/results.hbs | 9 +-
.../src/main/resources/ui/ember-cli-build.js | 1 +
.../resources/ui/vendor/browser-pollyfills.js | 213 ++++++++
docs/pom.xml | 2 +-
392 files changed, 5474 insertions(+), 2497 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
----------------------------------------------------------------------
diff --cc ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
index bd4c9dd,3a650ef..60df8cf
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
@@@ -26,14 -26,11 +26,14 @@@ import java.util.Set
import org.apache.ambari.annotations.Experimental;
import org.apache.ambari.annotations.ExperimentalFeature;
+import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.RoleCommand;
-import org.apache.ambari.server.state.ServiceInfo;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.utils.StageUtils;
- import org.apache.commons.logging.Log;
- import org.apache.commons.logging.LogFactory;
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
import com.google.gson.annotations.SerializedName;
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/382da979/ambari-web/app/messages.js
----------------------------------------------------------------------
[06/10] ambari git commit: AMBARI-21180. Component command changes
must include version numbers for all services (ncole)
Posted by nc...@apache.org.
AMBARI-21180. Component command changes must include version numbers for all services (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5a1bd715
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5a1bd715
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5a1bd715
Branch: refs/heads/trunk
Commit: 5a1bd715e11b2e3a79b139118a90b66eca32f025
Parents: 12202a2
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Jun 5 17:39:42 2017 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Tue Jun 6 10:33:14 2017 -0400
----------------------------------------------------------------------
.../actionmanager/ExecutionCommandWrapper.java | 65 +++++++++++---------
.../ambari/server/agent/ExecutionCommand.java | 57 ++++++++++++-----
.../AmbariCustomCommandExecutionHelper.java | 4 +-
.../AmbariManagementControllerImpl.java | 2 -
.../STORM/0.9.1/package/scripts/params_linux.py | 2 -
.../1.0.1.3.0/package/scripts/params_linux.py | 2 -
.../AmbariCustomCommandExecutionHelperTest.java | 11 ++--
7 files changed, 84 insertions(+), 59 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java
index 2ec09d9..efd609a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/actionmanager/ExecutionCommandWrapper.java
@@ -35,6 +35,7 @@ import org.apache.ambari.server.state.ConfigHelper;
import org.apache.ambari.server.state.DesiredConfig;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponent;
+import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -143,7 +144,8 @@ public class ExecutionCommandWrapper {
// now that the tags have been updated (if necessary), fetch the
// configurations
Map<String, Map<String, String>> configurationTags = executionCommand.getConfigurationTags();
- if (null != configurationTags && !configurationTags.isEmpty()) {
+
+ if (MapUtils.isNotEmpty(configurationTags)) {
Map<String, Map<String, String>> configProperties = configHelper
.getEffectiveConfigProperties(cluster, configurationTags);
@@ -182,43 +184,46 @@ public class ExecutionCommandWrapper {
executionCommand.getConfigurationAttributes().get(type));
}
}
+ }
- // set the repository version for the component this command is for -
- // always use the current desired version
- try {
- RepositoryVersionEntity repositoryVersion = null;
- String serviceName = executionCommand.getServiceName();
- if (!StringUtils.isEmpty(serviceName)) {
- Service service = cluster.getService(serviceName);
- if (null != service) {
- repositoryVersion = service.getDesiredRepositoryVersion();
- }
+ // set the repository version for the component this command is for -
+ // always use the current desired version
+ try {
+ RepositoryVersionEntity repositoryVersion = null;
+ String serviceName = executionCommand.getServiceName();
+ if (!StringUtils.isEmpty(serviceName)) {
+ Service service = cluster.getService(serviceName);
+ if (null != service) {
+ repositoryVersion = service.getDesiredRepositoryVersion();
+ }
- String componentName = executionCommand.getComponentName();
- if (!StringUtils.isEmpty(componentName)) {
- ServiceComponent serviceComponent = service.getServiceComponent(
- executionCommand.getComponentName());
+ String componentName = executionCommand.getComponentName();
+ if (!StringUtils.isEmpty(componentName)) {
+ ServiceComponent serviceComponent = service.getServiceComponent(
+ executionCommand.getComponentName());
- if (null != serviceComponent) {
- repositoryVersion = serviceComponent.getDesiredRepositoryVersion();
- }
+ if (null != serviceComponent) {
+ repositoryVersion = serviceComponent.getDesiredRepositoryVersion();
}
}
+ }
- if (null != repositoryVersion) {
- executionCommand.getCommandParams().put(KeyNames.VERSION,
- repositoryVersion.getVersion());
- executionCommand.getHostLevelParams().put(KeyNames.CURRENT_VERSION,
- repositoryVersion.getVersion());
- }
- } catch (ServiceNotFoundException serviceNotFoundException) {
- // it's possible that there are commands specified for a service where
- // the service doesn't exist yet
- LOG.warn(
- "The service {} is not installed in the cluster. No repository version will be sent for this command.",
- executionCommand.getServiceName());
+ if (null != repositoryVersion) {
+ executionCommand.getCommandParams().put(KeyNames.VERSION, repositoryVersion.getVersion());
+ executionCommand.getHostLevelParams().put(KeyNames.CURRENT_VERSION, repositoryVersion.getVersion());
}
+ } catch (ServiceNotFoundException serviceNotFoundException) {
+ // it's possible that there are commands specified for a service where
+ // the service doesn't exist yet
+ LOG.warn(
+ "The service {} is not installed in the cluster. No repository version will be sent for this command.",
+ executionCommand.getServiceName());
}
+
+ // set the desired versions of versionable components. This is safe even during an upgrade because
+ // we are "loading-late": components that have not yet upgraded in an EU will have the correct versions.
+ executionCommand.setComponentVersions(cluster);
+
} catch (ClusterNotFoundException cnfe) {
// it's possible that there are commands without clusters; in such cases,
// just return the de-serialized command and don't try to read configs
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
index 17b89b7..bd4c9dd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java
@@ -26,8 +26,11 @@ import java.util.Set;
import org.apache.ambari.annotations.Experimental;
import org.apache.ambari.annotations.ExperimentalFeature;
+import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.RoleCommand;
-import org.apache.ambari.server.state.ServiceInfo;
+import org.apache.ambari.server.state.Cluster;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.utils.StageUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -110,9 +113,6 @@ public class ExecutionCommand extends AgentCommand {
@SerializedName("localComponents")
private Set<String> localComponents = new HashSet<>();
- @SerializedName("availableServices")
- private Map<String, String> availableServices = new HashMap<>();
-
/**
* "true" or "false" indicating whether this
* service is enabled for credential store use.
@@ -153,6 +153,9 @@ public class ExecutionCommand extends AgentCommand {
@SerializedName("repositoryFile")
private CommandRepository commandRepository;
+ @SerializedName("componentVersionMap")
+ private Map<String, Map<String, String>> componentVersionMap = new HashMap<>();
+
public void setConfigurationCredentials(Map<String, Map<String, String>> configurationCredentials) {
this.configurationCredentials = configurationCredentials;
}
@@ -300,18 +303,6 @@ public class ExecutionCommand extends AgentCommand {
this.localComponents = localComponents;
}
- public Map<String, String> getAvailableServices() {
- return availableServices;
- }
-
- public void setAvailableServicesFromServiceInfoMap(Map<String, ServiceInfo> serviceInfoMap) {
- Map<String, String> serviceVersionMap = new HashMap<>();
- for (Map.Entry<String, ServiceInfo> entry : serviceInfoMap.entrySet()) {
- serviceVersionMap.put(entry.getKey(), entry.getValue().getVersion());
- }
- availableServices = serviceVersionMap;
- }
-
public Map<String, Map<String, Map<String, String>>> getConfigurationAttributes() {
return configurationAttributes;
}
@@ -523,4 +514,38 @@ public class ExecutionCommand extends AgentCommand {
comment = "This should be replaced by a map of all service component versions")
String CURRENT_VERSION = "current_version";
}
+
+ /**
+ * @return
+ */
+ public Map<String, Map<String, String>> getComponentVersionMap() {
+ return componentVersionMap;
+ }
+
+ /**
+ * Used to set a map of {service -> { component -> version}}. This is necessary when performing
+ * an upgrade to correct build paths of required binaries.
+ * @param cluster the cluster from which to build the map
+ */
+ public void setComponentVersions(Cluster cluster) throws AmbariException {
+ Map<String, Map<String, String>> componentVersionMap = new HashMap<>();
+
+ for (Service service : cluster.getServices().values()) {
+ Map<String, String> componentMap = new HashMap<>();
+
+ boolean shouldSet = false;
+ for (ServiceComponent component : service.getServiceComponents().values()) {
+ if (component.isVersionAdvertised()) {
+ shouldSet = true;
+ componentMap.put(component.getName(), component.getDesiredVersion());
+ }
+ }
+
+ if (shouldSet) {
+ componentVersionMap.put(service.getName(), componentMap);
+ }
+ }
+
+ this.componentVersionMap = componentVersionMap;
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/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 cabb9d6..1f3b4b0 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
@@ -384,12 +384,12 @@ public class AmbariCustomCommandExecutionHelper {
execCmd.setCommandType(AgentCommandType.BACKGROUND_EXECUTION_COMMAND);
}
+ execCmd.setComponentVersions(cluster);
+
execCmd.setConfigurations(configurations);
execCmd.setConfigurationAttributes(configurationAttributes);
execCmd.setConfigurationTags(configTags);
- execCmd.setAvailableServicesFromServiceInfoMap(ambariMetaInfo.getServices(stackId.getStackName(), stackId.getStackVersion()));
-
// Get the value of credential store enabled from the DB
Service clusterService = cluster.getService(serviceName);
execCmd.setCredentialStoreEnabled(String.valueOf(clusterService.isCredentialStoreEnabled()));
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 186a19e..329998b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -2555,11 +2555,9 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
cluster.addSuspendedUpgradeParameters(commandParams, roleParams);
}
-
execCmd.setRoleParams(roleParams);
execCmd.setCommandParams(commandParams);
- execCmd.setAvailableServicesFromServiceInfoMap(ambariMetaInfo.getServices(stackId.getStackName(), stackId.getStackVersion()));
execCmd.setRepositoryFile(customCommandExecutionHelper.getCommandRepository(cluster, component, host));
hostParams.put(KeyNames.CURRENT_VERSION, repoVersion.getVersion());
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/params_linux.py
index 78ec165..664c582 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/params_linux.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1/package/scripts/params_linux.py
@@ -394,8 +394,6 @@ if enable_ranger_storm:
namenode_hosts = default("/clusterHostInfo/namenode_host", [])
has_namenode = not len(namenode_hosts) == 0
-availableServices = config['availableServices']
-
hdfs_user = config['configurations']['hadoop-env']['hdfs_user'] if has_namenode else None
hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab'] if has_namenode else None
hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name'] if has_namenode else None
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/main/resources/common-services/STORM/1.0.1.3.0/package/scripts/params_linux.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/1.0.1.3.0/package/scripts/params_linux.py b/ambari-server/src/main/resources/common-services/STORM/1.0.1.3.0/package/scripts/params_linux.py
index 78ec165..664c582 100644
--- a/ambari-server/src/main/resources/common-services/STORM/1.0.1.3.0/package/scripts/params_linux.py
+++ b/ambari-server/src/main/resources/common-services/STORM/1.0.1.3.0/package/scripts/params_linux.py
@@ -394,8 +394,6 @@ if enable_ranger_storm:
namenode_hosts = default("/clusterHostInfo/namenode_host", [])
has_namenode = not len(namenode_hosts) == 0
-availableServices = config['availableServices']
-
hdfs_user = config['configurations']['hadoop-env']['hdfs_user'] if has_namenode else None
hdfs_user_keytab = config['configurations']['hadoop-env']['hdfs_user_keytab'] if has_namenode else None
hdfs_principal_name = config['configurations']['hadoop-env']['hdfs_principal_name'] if has_namenode else None
http://git-wip-us.apache.org/repos/asf/ambari/blob/5a1bd715/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
index a6c0c32..240517f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
@@ -70,7 +70,6 @@ import org.apache.ambari.server.state.RepositoryInfo;
import org.apache.ambari.server.state.SecurityType;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponent;
-import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.StackInfo;
import org.apache.ambari.server.state.State;
@@ -79,6 +78,7 @@ import org.apache.ambari.server.state.ValueAttributesInfo;
import org.apache.ambari.server.state.stack.upgrade.RepositoryVersionHelper;
import org.apache.ambari.server.topology.TopologyManager;
import org.apache.ambari.server.utils.StageUtils;
+import org.apache.commons.collections.MapUtils;
import org.easymock.Capture;
import org.easymock.EasyMock;
import org.easymock.EasyMockRule;
@@ -553,14 +553,15 @@ public class AmbariCustomCommandExecutionHelperTest {
ambariManagementController.createAction(actionRequest, requestProperties);
StackId stackId = clusters.getCluster("c1").getDesiredStackVersion();
- Map<String, ServiceInfo> services = ambariManagementController.getAmbariMetaInfo().getServices(stackId.getStackName(), stackId.getStackVersion());
Request request = requestCapture.getValue();
Stage stage = request.getStages().iterator().next();
List<ExecutionCommandWrapper> commands = stage.getExecutionCommands("c1-c6401");
ExecutionCommand command = commands.get(0).getExecutionCommand();
- for (String service : services.keySet()) {
- Assert.assertEquals(command.getAvailableServices().get(service), services.get(service).getVersion());
- }
+
+ // ZK is the only service that is versionable
+ Assert.assertFalse(MapUtils.isEmpty(command.getComponentVersionMap()));
+ Assert.assertEquals(1, command.getComponentVersionMap().size());
+ Assert.assertTrue(command.getComponentVersionMap().containsKey("ZOOKEEPER"));
}
@Test
[03/10] ambari git commit: AMBARI-21179 - Remove
RepositoryVersionState of INIT (jonathanhurley)
Posted by nc...@apache.org.
AMBARI-21179 - Remove RepositoryVersionState of INIT (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/cd3fb859
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/cd3fb859
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/cd3fb859
Branch: refs/heads/trunk
Commit: cd3fb85953c01f8049950f140215de4e2257d139
Parents: 7847e4b
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Mon Jun 5 14:31:43 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Mon Jun 5 14:31:43 2017 -0400
----------------------------------------------------------------------
.../ServiceComponentDesiredStateEntity.java | 2 +-
.../server/state/RepositoryVersionState.java | 31 ++++++++++----------
.../apache/ambari/server/state/ServiceImpl.java | 2 +-
.../server/upgrade/UpgradeCatalog300.java | 13 ++++----
.../main/resources/Ambari-DDL-Derby-CREATE.sql | 2 +-
.../main/resources/Ambari-DDL-MySQL-CREATE.sql | 2 +-
.../main/resources/Ambari-DDL-Oracle-CREATE.sql | 2 +-
.../resources/Ambari-DDL-Postgres-CREATE.sql | 2 +-
.../resources/Ambari-DDL-SQLAnywhere-CREATE.sql | 2 +-
.../resources/Ambari-DDL-SQLServer-CREATE.sql | 2 +-
10 files changed, 30 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
index 84e464e..e0f52c6 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java
@@ -89,7 +89,7 @@ public class ServiceComponentDesiredStateEntity {
@Column(name = "repo_state", nullable = false, insertable = true, updatable = true)
@Enumerated(EnumType.STRING)
- private RepositoryVersionState repoState = RepositoryVersionState.INIT;
+ private RepositoryVersionState repoState = RepositoryVersionState.NOT_REQUIRED;
/**
* Unidirectional one-to-one association to {@link RepositoryVersionEntity}
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryVersionState.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryVersionState.java b/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryVersionState.java
index a2e220e..720f307 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryVersionState.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/RepositoryVersionState.java
@@ -21,10 +21,13 @@ package org.apache.ambari.server.state;
import java.util.List;
/**
- * There must be exactly one repository version that is in a CURRENT state for a particular cluster or host.
- * There may be 0 or more repository versions in an INSTALLED or INSTALLING state.
- * The operation to transition a repository version state from INSTALLED into CURRENT must be atomic and change the existing
- * relation between repository version and cluster or host from CURRENT to INSTALLED.
+ * The {@link RepositoryVersionState} represents the state of a repository on a
+ * particular host. Because hosts can contain a mixture of components from
+ * different repositories, there can be any combination of
+ * {@link RepositoryVersionState#CURRENT}} entries for a single host. A host may
+ * not have multiple entries for the same repository.
+ * <p/>
+ *
*
* <pre>
* Step 1: Initial Configuration
@@ -43,20 +46,23 @@ import java.util.List;
* Version 1: CURRENT
* Version 2: INSTALL_FAILED (a retry can set this back to INSTALLING)
*
- * Step 4: Perform an upgrade from Version 1 to Version 2
+ * Step 4: Perform an upgrade of every component on the host from version 1 to version 2
* Version 1: INSTALLED
* Version 2: CURRENT
*
- * Step 4: May revert to the original version via a downgrade, which is technically still an upgrade to a version
+ * Step 4a: Perform an upgrade of a single component, leaving other components on the prior version
+ * Version 1: CURRENT
+ * Version 2: CURRENT
+ *
+ * Step 4b: May revert to the original version via a downgrade, which is technically still an upgrade to a version
* and eventually becomes
*
* Version 1: CURRENT
* Version 2: INSTALLED
*
* *********************************************
- * Start states: CURRENT, INSTALLING
+ * Start states: NOT_REQUIRED, INSTALLING, CURRENT
* Allowed Transitions:
- * INIT -> CURRENT
* INSTALLED -> CURRENT
* INSTALLING -> INSTALLED | INSTALL_FAILED | OUT_OF_SYNC
* INSTALLED -> INSTALLED | INSTALLING | OUT_OF_SYNC
@@ -67,13 +73,6 @@ import java.util.List;
*/
public enum RepositoryVersionState {
/**
- * Repository version is initialized, and will transition to current. This is used
- * when creating a cluster using a specific version. Transition occurs naturally as
- * hosts report CURRENT.
- */
- INIT(2),
-
- /**
* Repository version is not required
*/
NOT_REQUIRED(0),
@@ -125,7 +124,7 @@ public enum RepositoryVersionState {
*/
public static RepositoryVersionState getAggregateState(List<RepositoryVersionState> states) {
if (null == states || states.isEmpty()) {
- return INIT;
+ return NOT_REQUIRED;
}
RepositoryVersionState heaviestState = states.get(0);
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java
index fe37a93..ecf19d4 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java
@@ -348,7 +348,7 @@ public class ServiceImpl implements Service {
@Override
public RepositoryVersionState getRepositoryState() {
if (components.isEmpty()) {
- return RepositoryVersionState.INIT;
+ return RepositoryVersionState.NOT_REQUIRED;
}
List<RepositoryVersionState> states = new ArrayList<>();
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
index f068798..9b44c53 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
@@ -182,9 +182,10 @@ public class UpgradeCatalog300 extends AbstractUpgradeCatalog {
*/
protected void addServiceComponentColumn() throws SQLException {
dbAccessor.addColumn(UpgradeCatalog250.COMPONENT_TABLE,
- new DBColumnInfo("repo_state", String.class, 255, RepositoryVersionState.INIT.name(), false));
-
+ new DBColumnInfo("repo_state", String.class, 255,
+ RepositoryVersionState.NOT_REQUIRED.name(), false));
}
+
protected void setStatusOfStagesAndRequests() {
executeInTransaction(new Runnable() {
@Override
@@ -336,15 +337,15 @@ public class UpgradeCatalog300 extends AbstractUpgradeCatalog {
removeConfigurationPropertiesFromCluster(cluster, configType, removeProperties);
}
-
+
Config logSearchProperties = cluster.getDesiredConfigByType("logsearch-properties");
Config logFeederProperties = cluster.getDesiredConfigByType("logfeeder-properties");
if (logSearchProperties != null && logFeederProperties != null) {
String defaultLogLevels = logSearchProperties.getProperties().get("logsearch.logfeeder.include.default.level");
-
+
Set<String> removeProperties = Sets.newHashSet("logsearch.logfeeder.include.default.level");
removeConfigurationPropertiesFromCluster(cluster, "logsearch-properties", removeProperties);
-
+
Map<String, String> newProperties = new HashMap<>();
newProperties.put("logfeeder.include.default.level", defaultLogLevels);
updateConfigurationPropertiesForCluster(cluster, "logfeeder-properties", newProperties, true, true);
@@ -358,7 +359,7 @@ public class UpgradeCatalog300 extends AbstractUpgradeCatalog {
updateConfigurationPropertiesForCluster(cluster, "logfeeder-log4j", Collections.singletonMap("content", content), true, true);
}
}
-
+
Config logsearchLog4jProperties = cluster.getDesiredConfigByType("logsearch-log4j");
if (logsearchLog4jProperties != null) {
String content = logsearchLog4jProperties.getProperties().get("content");
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
index c5c83ab..e341405 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
@@ -172,7 +172,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
recovery_enabled SMALLINT NOT NULL DEFAULT 0,
- repo_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
+ repo_state VARCHAR(255) NOT NULL DEFAULT 'NOT_REQUIRED',
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
index 230ae10..ce8736e 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
@@ -192,7 +192,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(100) NOT NULL,
recovery_enabled SMALLINT NOT NULL DEFAULT 0,
- repo_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
+ repo_state VARCHAR(255) NOT NULL DEFAULT 'NOT_REQUIRED',
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
index 903fc9e..0edbb91 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@ -173,7 +173,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR2(255) NOT NULL,
service_name VARCHAR2(255) NOT NULL,
recovery_enabled SMALLINT DEFAULT 0 NOT NULL,
- repo_state VARCHAR2(255) DEFAULT 'INIT' NOT NULL,
+ repo_state VARCHAR2(255) DEFAULT 'NOT_REQUIRED' NOT NULL,
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
index 86fbc04..5899179 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
@@ -171,7 +171,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
recovery_enabled SMALLINT NOT NULL DEFAULT 0,
- repo_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
+ repo_state VARCHAR(255) NOT NULL DEFAULT 'NOT_REQUIRED',
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
index 47ea221..6164b2d 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
@@ -170,7 +170,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
recovery_enabled SMALLINT NOT NULL DEFAULT 0,
- repo_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
+ repo_state VARCHAR(255) NOT NULL DEFAULT 'NOT_REQUIRED',
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
http://git-wip-us.apache.org/repos/asf/ambari/blob/cd3fb859/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
index bbe9068..52d2b87 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
@@ -184,7 +184,7 @@ CREATE TABLE servicecomponentdesiredstate (
desired_state VARCHAR(255) NOT NULL,
service_name VARCHAR(255) NOT NULL,
recovery_enabled SMALLINT NOT NULL DEFAULT 0,
- repo_state VARCHAR(255) NOT NULL DEFAULT 'INIT',
+ repo_state VARCHAR(255) NOT NULL DEFAULT 'NOT_REQUIRED',
CONSTRAINT pk_sc_desiredstate PRIMARY KEY (id),
CONSTRAINT UQ_scdesiredstate_name UNIQUE(component_name, service_name, cluster_id),
CONSTRAINT FK_scds_desired_repo_id FOREIGN KEY (desired_repo_version_id) REFERENCES repo_version (repo_version_id),
[07/10] ambari git commit: AMBARI-21188 - Configuration Symlink Is
Incorrect After Stack Distribution (jonathanhurley)
Posted by nc...@apache.org.
AMBARI-21188 - Configuration Symlink Is Incorrect After Stack Distribution (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7750c9a4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7750c9a4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7750c9a4
Branch: refs/heads/trunk
Commit: 7750c9a4672e692f6389698698335596d8bf4925
Parents: 5a1bd71
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Tue Jun 6 14:42:20 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Tue Jun 6 14:42:20 2017 -0400
----------------------------------------------------------------------
.../libraries/functions/conf_select.py | 1 -
.../custom_actions/scripts/install_packages.py | 17 +++++------------
2 files changed, 5 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7750c9a4/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
index facf186..3e01cf6 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/conf_select.py
@@ -26,7 +26,6 @@ import os
import subprocess
# Local Imports
-import version
import stack_select
from resource_management.core import shell
from resource_management.libraries.functions.format import format
http://git-wip-us.apache.org/repos/asf/ambari/blob/7750c9a4/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
index c12dff1..d6da0fc 100644
--- a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
+++ b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py
@@ -197,18 +197,11 @@ class InstallPackages(Script):
return
for package_name, directories in conf_select.get_package_dirs().iteritems():
- # if already on HDP 2.3, then we should skip making conf.backup folders
- if self.current_stack_version_formatted and check_stack_feature(StackFeature.CONFIG_VERSIONING, self.current_stack_version_formatted):
- conf_selector_name = stack_tools.get_stack_tool_name(stack_tools.CONF_SELECTOR_NAME)
- Logger.info("The current cluster stack of {0} does not require backing up configurations; "
- "only {1} versioned config directories will be created.".format(stack_version, conf_selector_name))
- # only link configs for all known packages
- conf_select.select(self.stack_name, package_name, stack_version, ignore_errors = True)
- else:
- # link configs and create conf.backup folders for all known packages
- # this will also call conf-select select
- conf_select.convert_conf_directories_to_symlinks(package_name, stack_version, directories,
- skip_existing_links = False, link_to = "backup")
+ conf_selector_name = stack_tools.get_stack_tool_name(stack_tools.CONF_SELECTOR_NAME)
+ Logger.info("The current cluster stack of {0} does not require backing up configurations; "
+ "only {1} versioned config directories will be created.".format(stack_version, conf_selector_name))
+ # only link configs for all known packages
+ conf_select.select(self.stack_name, package_name, stack_version, ignore_errors = True)
def compute_actual_version(self):
[02/10] ambari git commit: AMBARI-21175 - Host Versions Remain on
CURRENT During STANDARD (Full) Upgrades (jonathanhurley)
Posted by nc...@apache.org.
AMBARI-21175 - Host Versions Remain on CURRENT During STANDARD (Full) Upgrades (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7847e4b6
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7847e4b6
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7847e4b6
Branch: refs/heads/trunk
Commit: 7847e4b6cf65b777e516a4806cbf5f45cdd207ee
Parents: 4767389
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Fri Jun 2 08:28:51 2017 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Fri Jun 2 10:30:06 2017 -0400
----------------------------------------------------------------------
.../ambari/server/orm/dao/HostVersionDAO.java | 16 +++
.../server/orm/entities/HostVersionEntity.java | 5 +
.../upgrades/FinalizeUpgradeAction.java | 57 ++++++++--
.../upgrades/UpgradeActionTest.java | 109 +++++++++++++++++--
4 files changed, 164 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7847e4b6/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
index ad34ec7..7be7691 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostVersionDAO.java
@@ -130,6 +130,22 @@ public class HostVersionDAO extends CrudDAO<HostVersionEntity, Long> {
}
/**
+ * Retrieve all of the host versions for the given cluster name, and state. <br/>
+ * @param clusterName Cluster name
+ * @param state repository version state
+ * @return Return all of the host versions that match the criteria.
+ */
+ @RequiresSession
+ public List<HostVersionEntity> findByClusterAndState(String clusterName, RepositoryVersionState state) {
+ final TypedQuery<HostVersionEntity> query = entityManagerProvider.get()
+ .createNamedQuery("findByClusterAndState", HostVersionEntity.class);
+ query.setParameter("clusterName", clusterName);
+ query.setParameter("state", state);
+
+ return daoUtils.selectList(query);
+ }
+
+ /**
* Retrieve all of the host versions for the given cluster name, host name, and state. <br/>
* @param clusterName Cluster name
* @param hostName FQDN of host
http://git-wip-us.apache.org/repos/asf/ambari/blob/7847e4b6/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
index dbe4fe0..4a030af 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostVersionEntity.java
@@ -61,6 +61,11 @@ import org.apache.ambari.server.state.RepositoryVersionState;
"SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host " +
"WHERE hostVersion.hostEntity.hostName=:hostName"),
+ @NamedQuery(
+ name = "findByClusterAndState",
+ query = "SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host JOIN host.clusterEntities clusters "
+ + "WHERE clusters.clusterName=:clusterName AND hostVersion.state=:state"),
+
@NamedQuery(name = "hostVersionByClusterHostnameAndState", query =
"SELECT hostVersion FROM HostVersionEntity hostVersion JOIN hostVersion.hostEntity host JOIN host.clusterEntities clusters " +
"WHERE clusters.clusterName=:clusterName AND hostVersion.hostEntity.hostName=:hostName AND hostVersion.state=:state"),
http://git-wip-us.apache.org/repos/asf/ambari/blob/7847e4b6/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
index 475a8c9..8f206bf 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/FinalizeUpgradeAction.java
@@ -140,8 +140,8 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
throw new AmbariException(messageBuff.toString());
}
- // for all hosts participating in this upgrade, update thei repository
- // versions and upgrade state
+ // find every host version for this upgrade and ensure it has transitioned
+ // to CURRENT if required
List<HostVersionEntity> hostVersions = hostVersionDAO.findHostVersionByClusterAndRepository(
cluster.getClusterId(), repositoryVersion);
@@ -165,7 +165,8 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
}
}
- // throw an exception if there are hosts which are not not fully upgraded
+ // throw an exception if there are hosts which did not transition the
+ // repository to CURRENT
if (hostsWithoutCorrectVersionState.size() > 0) {
message = String.format(
"The following %d host(s) have not been upgraded to version %s. "
@@ -178,10 +179,11 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
}
outSB.append(
- String.format("Finalizing the upgrade state of %d host(s).",
+ String.format("Finalizing the upgrade state and repository version for %d host(s).",
hostVersionsAllowed.size())).append(System.lineSeparator());
- // Reset the upgrade state
+ // at this point, all host versions are correct - do some cleanup like
+ // resetting the upgrade state
for (HostVersionEntity hostVersion : hostVersionsAllowed) {
Collection<HostComponentStateEntity> hostComponentStates = hostComponentStateDAO.findByHost(hostVersion.getHostName());
for (HostComponentStateEntity hostComponentStateEntity: hostComponentStates) {
@@ -190,16 +192,16 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
}
}
- // Impacts all hosts that have a version
- outSB.append(
- String.format("Finalizing the version for %d host(s).",
- hostVersionsAllowed.size())).append(System.lineSeparator());
-
- versionEventPublisher.publish(new StackUpgradeFinishEvent(cluster));
+ // move host versions from CURRENT to INSTALLED if their repos are no
+ // longer used
+ finalizeHostRepositoryVersions(cluster);
// Reset upgrade state
cluster.setUpgradeEntity(null);
+ // the upgrade is done!
+ versionEventPublisher.publish(new StackUpgradeFinishEvent(cluster));
+
message = String.format("The upgrade to %s has completed.", version);
outSB.append(message).append(System.lineSeparator());
return createCommandReport(0, HostRoleStatus.COMPLETED, "{}", outSB.toString(), errSB.toString());
@@ -372,6 +374,39 @@ public class FinalizeUpgradeAction extends AbstractUpgradeServerAction {
return errors;
}
+ /**
+ * Moves any {@link HostVersionEntity}s which are
+ * {@link RepositoryVersionState#CURRENT} to either
+ * {@link RepositoryVersionState#INSTALLED} or
+ * {@link RepositoryVersionState#NOT_REQUIRED} if their assocaited
+ * repositories are no longer in use.
+ *
+ * @param cluster
+ * @throws AmbariException
+ */
+ private void finalizeHostRepositoryVersions(Cluster cluster) throws AmbariException {
+ // create a set of all of the repos that the services are on
+ Set<RepositoryVersionEntity> desiredRepoVersions = new HashSet<>();
+ Set<String> serviceNames = cluster.getServices().keySet();
+ for (String serviceName : serviceNames) {
+ Service service = cluster.getService(serviceName);
+ desiredRepoVersions.add(service.getDesiredRepositoryVersion());
+ }
+
+ // if any CURRENT host version is for a repo which is no longer desired by
+ // ANY service, move it to INSTALLED
+ List<HostVersionEntity> currentHostVersions = hostVersionDAO.findByClusterAndState(
+ cluster.getClusterName(), RepositoryVersionState.CURRENT);
+
+ for (HostVersionEntity hostVersion : currentHostVersions) {
+ RepositoryVersionEntity hostRepoVersion = hostVersion.getRepositoryVersion();
+ if (!desiredRepoVersions.contains(hostRepoVersion)) {
+ hostVersion.setState(RepositoryVersionState.INSTALLED);
+ hostVersion = hostVersionDAO.merge(hostVersion);
+ }
+ }
+ }
+
protected static class InfoTuple implements Comparable<InfoTuple> {
protected final String serviceName;
protected final String componentName;
http://git-wip-us.apache.org/repos/asf/ambari/blob/7847e4b6/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
index 35fffda..e3ffae0 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java
@@ -100,7 +100,6 @@ public class UpgradeActionTest {
private static final String HDP_2_1_1_1 = "2.1.1.1-2";
private static final String HDP_2_2_0_1 = "2.2.0.1-3";
- private static final String HDP_2_2_0_2 = "2.2.0.2-4";
private static final StackId HDP_21_STACK = new StackId("HDP-2.1.1");
private static final StackId HDP_22_STACK = new StackId("HDP-2.2.0");
@@ -147,7 +146,6 @@ public class UpgradeActionTest {
private RepositoryVersionEntity repositoryVersion2110;
private RepositoryVersionEntity repositoryVersion2111;
private RepositoryVersionEntity repositoryVersion2201;
- private RepositoryVersionEntity repositoryVersion2202;
@Before
public void setup() throws Exception {
@@ -167,7 +165,6 @@ public class UpgradeActionTest {
repositoryVersion2110 = m_helper.getOrCreateRepositoryVersion(HDP_21_STACK, HDP_2_1_1_0);
repositoryVersion2111 = m_helper.getOrCreateRepositoryVersion(HDP_21_STACK, HDP_2_1_1_1);
repositoryVersion2201 = m_helper.getOrCreateRepositoryVersion(HDP_22_STACK, HDP_2_2_0_1);
- repositoryVersion2202 = m_helper.getOrCreateRepositoryVersion(HDP_22_STACK, HDP_2_2_0_2);
}
@After
@@ -199,11 +196,11 @@ public class UpgradeActionTest {
hostVersionDAO.create(entity);
}
- private void createUpgradeCluster(
+ private Cluster createUpgradeCluster(
RepositoryVersionEntity sourceRepoVersion, String hostName) throws Exception {
clusters.addCluster(clusterName, sourceRepoVersion.getStackId());
- Cluster c = clusters.getCluster(clusterName);
+ Cluster cluster = clusters.getCluster(clusterName);
// add a host component
clusters.addHost(hostName);
@@ -222,6 +219,8 @@ public class UpgradeActionTest {
sourceRepoVersion, RepositoryVersionState.INSTALLED);
hostVersionDAO.create(entity);
+
+ return cluster;
}
private void createHostVersions(RepositoryVersionEntity targetRepoVersion,
@@ -313,13 +312,13 @@ public class UpgradeActionTest {
Cluster cluster = clusters.getCluster(clusterName);
// Install ZK and HDFS with some components
- Service zk = installService(cluster, "ZOOKEEPER");
+ Service zk = installService(cluster, "ZOOKEEPER", repositoryVersion2110);
addServiceComponent(cluster, zk, "ZOOKEEPER_SERVER");
addServiceComponent(cluster, zk, "ZOOKEEPER_CLIENT");
createNewServiceComponentHost(cluster, "ZOOKEEPER", "ZOOKEEPER_SERVER", "h1");
createNewServiceComponentHost(cluster, "ZOOKEEPER", "ZOOKEEPER_CLIENT", "h1");
- Service hdfs = installService(cluster, "HDFS");
+ Service hdfs = installService(cluster, "HDFS", repositoryVersion2110);
addServiceComponent(cluster, hdfs, "NAMENODE");
addServiceComponent(cluster, hdfs, "DATANODE");
createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", "h1");
@@ -393,7 +392,7 @@ public class UpgradeActionTest {
for (HostVersionEntity entity : hostVersionDAO.findByClusterAndHost(clusterName, "h1")) {
if (StringUtils.equals(entity.getRepositoryVersion().getVersion(), repositoryVersion2110.getVersion())) {
assertEquals(RepositoryVersionState.CURRENT, entity.getState());
- } else if (StringUtils.equals(entity.getRepositoryVersion().getVersion(), repositoryVersion2111.getVersion())) {
+ } else {
assertEquals(RepositoryVersionState.INSTALLED, entity.getState());
}
}
@@ -497,10 +496,95 @@ public class UpgradeActionTest {
assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
}
+ /**
+ * Tests that all host versions are correct after upgrade. This test will
+ * ensure that the prior CURRENT versions are moved to INSTALLED while not
+ * touching any others.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void testHostVersionsAfterUpgrade() throws Exception {
+ String hostName = "h1";
+ Cluster cluster = createUpgradeCluster(repositoryVersion2110, hostName);
+ createHostVersions(repositoryVersion2111, hostName);
+ createHostVersions(repositoryVersion2201, hostName);
+
+ // Install ZK with some components
+ Service zk = installService(cluster, "ZOOKEEPER", repositoryVersion2110);
+ addServiceComponent(cluster, zk, "ZOOKEEPER_SERVER");
+ addServiceComponent(cluster, zk, "ZOOKEEPER_CLIENT");
+ createNewServiceComponentHost(cluster, "ZOOKEEPER", "ZOOKEEPER_SERVER", hostName);
+ createNewServiceComponentHost(cluster, "ZOOKEEPER", "ZOOKEEPER_CLIENT", hostName);
+
+ List<HostVersionEntity> hostVersions = hostVersionDAO.findAll();
+ assertEquals(3, hostVersions.size());
+
+ // repo 2110 - CURRENT (upgrading from)
+ // repo 2111 - CURRENT (all hosts reported in during upgrade)
+ // repo 2201 - NOT_REQUIRED (different stack)
+ for (HostVersionEntity hostVersion : hostVersions) {
+ RepositoryVersionEntity hostRepoVersion = hostVersion.getRepositoryVersion();
+ if (repositoryVersion2110.equals(hostRepoVersion)) {
+ hostVersion.setState(RepositoryVersionState.CURRENT);
+ } else if (repositoryVersion2111.equals(hostRepoVersion)) {
+ hostVersion.setState(RepositoryVersionState.CURRENT);
+ } else {
+ hostVersion.setState(RepositoryVersionState.NOT_REQUIRED);
+ }
+
+ hostVersionDAO.merge(hostVersion);
+ }
+
+ // upgrade to 2111
+ createUpgrade(cluster, repositoryVersion2111);
+
+ // push all services to the correct repo version for finalize
+ Map<String, Service> services = cluster.getServices();
+ assertTrue(services.size() > 0);
+ for (Service service : services.values()) {
+ service.setDesiredRepositoryVersion(repositoryVersion2111);
+ }
+
+ // push all components to the correct version
+ List<HostComponentStateEntity> hostComponentStates = hostComponentStateDAO.findByHost(hostName);
+ for (HostComponentStateEntity hostComponentState : hostComponentStates) {
+ hostComponentState.setVersion(repositoryVersion2111.getVersion());
+ hostComponentStateDAO.merge(hostComponentState);
+ }
+
+ Map<String, String> commandParams = new HashMap<>();
+ ExecutionCommand executionCommand = new ExecutionCommand();
+ executionCommand.setCommandParams(commandParams);
+ executionCommand.setClusterName(clusterName);
+
+ HostRoleCommand hostRoleCommand = hostRoleCommandFactory.create(null, null, null, null);
+ hostRoleCommand.setExecutionCommandWrapper(new ExecutionCommandWrapper(executionCommand));
+
+ finalizeUpgradeAction.setExecutionCommand(executionCommand);
+ finalizeUpgradeAction.setHostRoleCommand(hostRoleCommand);
+
+ // finalize
+ CommandReport report = finalizeUpgradeAction.execute(null);
+ assertNotNull(report);
+ assertEquals(HostRoleStatus.COMPLETED.name(), report.getStatus());
+
+ for (HostVersionEntity hostVersion : hostVersions) {
+ RepositoryVersionEntity hostRepoVersion = hostVersion.getRepositoryVersion();
+ if (repositoryVersion2110.equals(hostRepoVersion)) {
+ assertEquals(RepositoryVersionState.INSTALLED, hostVersion.getState());
+ } else if (repositoryVersion2111.equals(hostRepoVersion)) {
+ assertEquals(RepositoryVersionState.CURRENT, hostVersion.getState());
+ } else {
+ assertEquals(RepositoryVersionState.NOT_REQUIRED, hostVersion.getState());
+ }
+ }
+ }
+
private ServiceComponentHost createNewServiceComponentHost(Cluster cluster, String svc,
String svcComponent, String hostName) throws AmbariException {
Assert.assertNotNull(cluster.getConfigGroups());
- Service s = installService(cluster, svc);
+ Service s = installService(cluster, svc, sourceRepositoryVersion);
ServiceComponent sc = addServiceComponent(cluster, s, svcComponent);
ServiceComponentHost sch = serviceComponentHostFactory.createNew(sc, hostName);
@@ -511,13 +595,14 @@ public class UpgradeActionTest {
return sch;
}
- private Service installService(Cluster cluster, String serviceName) throws AmbariException {
+ private Service installService(Cluster cluster, String serviceName,
+ RepositoryVersionEntity repositoryVersionEntity) throws AmbariException {
Service service = null;
try {
service = cluster.getService(serviceName);
} catch (ServiceNotFoundException e) {
- service = serviceFactory.createNew(cluster, serviceName, sourceRepositoryVersion);
+ service = serviceFactory.createNew(cluster, serviceName, repositoryVersionEntity);
cluster.addService(service);
}
@@ -525,7 +610,7 @@ public class UpgradeActionTest {
}
private ServiceComponent addServiceComponent(Cluster cluster, Service service,
- String componentName) throws AmbariException {
+ String componentName) throws AmbariException {
ServiceComponent serviceComponent = null;
try {
serviceComponent = service.getServiceComponent(componentName);