You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2014/12/10 17:41:01 UTC
ambari git commit: AMBARI-8639. Distribute Repository/Install:
parallel install not working (dlysnichenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 96b7f56fe -> b60f26ee9
AMBARI-8639. Distribute Repository/Install: parallel install not working (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/b60f26ee
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/b60f26ee
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/b60f26ee
Branch: refs/heads/trunk
Commit: b60f26ee9a3ae20a37e49f0158e581862643ef86
Parents: 96b7f56
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Wed Dec 10 10:46:26 2014 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Wed Dec 10 18:39:55 2014 +0200
----------------------------------------------------------------------
.../resource_management/TestPackageResource.py | 12 +++++
.../core/providers/package/__init__.py | 4 +-
.../core/providers/package/apt.py | 6 +--
.../core/providers/package/yumrpm.py | 14 ++++--
.../core/providers/package/zypper.py | 6 +--
.../core/resources/packaging.py | 4 ++
.../ClusterStackVersionResourceProvider.java | 32 +++++++------
.../HostStackVersionResourceProvider.java | 5 +-
.../custom_actions/scripts/install_packages.py | 17 ++++---
.../custom_actions/TestInstallPackages.py | 50 ++++++++++----------
.../configs/install_packages_config.json | 4 +-
11 files changed, 94 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-agent/src/test/python/resource_management/TestPackageResource.py
----------------------------------------------------------------------
diff --git a/ambari-agent/src/test/python/resource_management/TestPackageResource.py b/ambari-agent/src/test/python/resource_management/TestPackageResource.py
index 140dda9..a357d46 100644
--- a/ambari-agent/src/test/python/resource_management/TestPackageResource.py
+++ b/ambari-agent/src/test/python/resource_management/TestPackageResource.py
@@ -90,6 +90,18 @@ class TestPackageResource(TestCase):
@patch.object(shell, "call", new = MagicMock(return_value=(0, None)))
@patch.object(shell, "checked_call")
+ @patch.object(System, "os_family", new = 'redhat')
+ def test_action_install_use_repos_rhel(self, shell_mock):
+ with Environment('/') as env:
+ Package("some_package", use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885']
+ )
+ self.assertEquals(shell_mock.call_args[0][0],
+ ['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'install',
+ '--disablerepo=*',
+ '--enablerepo=HDP-UTILS-2.2.0.1-885,HDP-2.2.0.1-885', 'some_package'])
+
+ @patch.object(shell, "call", new = MagicMock(return_value=(0, None)))
+ @patch.object(shell, "checked_call")
@patch.object(System, "os_family", new = 'suse')
def test_action_install_existent_suse(self, shell_mock):
with Environment('/') as env:
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-common/src/main/python/resource_management/core/providers/package/__init__.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/package/__init__.py b/ambari-common/src/main/python/resource_management/core/providers/package/__init__.py
index 5ab2b27..e1c06bb 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/package/__init__.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/package/__init__.py
@@ -37,11 +37,11 @@ class PackageProvider(Provider):
def action_install(self):
package_name = self.get_package_name_with_version()
- self.install_package(package_name)
+ self.install_package(package_name, self.resource.use_repos)
def action_upgrade(self):
package_name = self.get_package_name_with_version()
- self.upgrade_package(package_name)
+ self.upgrade_package(package_name, self.resource.use_repos)
def action_remove(self):
package_name = self.get_package_name_with_version()
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-common/src/main/python/resource_management/core/providers/package/apt.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/package/apt.py b/ambari-common/src/main/python/resource_management/core/providers/package/apt.py
index c683be5..33814d8 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/package/apt.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/package/apt.py
@@ -40,7 +40,7 @@ def replace_underscores(function_to_decorate):
class AptProvider(PackageProvider):
@replace_underscores
- def install_package(self, name):
+ def install_package(self, name, use_repos=[]):
if not self._check_existence(name):
cmd = INSTALL_CMD + [name]
Logger.info("Installing package %s ('%s')" % (name, string_cmd_from_args_list(cmd)))
@@ -61,8 +61,8 @@ class AptProvider(PackageProvider):
Logger.info("Skipping installing existent package %s" % (name))
@replace_underscores
- def upgrade_package(self, name):
- return self.install_package(name)
+ def upgrade_package(self, name, use_repos=[]):
+ return self.install_package(name, use_repos)
@replace_underscores
def remove_package(self, name):
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py b/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py
index 7d868b0..c447225 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/package/yumrpm.py
@@ -30,16 +30,20 @@ REMOVE_CMD = ['/usr/bin/yum', '-d', '0', '-e', '0', '-y', 'erase']
CHECK_CMD = "installed_pkgs=`rpm -qa %s` ; [ ! -z \"$installed_pkgs\" ]"
class YumProvider(PackageProvider):
- def install_package(self, name):
- if not self._check_existence(name):
- cmd = INSTALL_CMD + [name]
+ def install_package(self, name, use_repos=[]):
+ if not self._check_existence(name) or use_repos:
+ cmd = INSTALL_CMD
+ if use_repos:
+ enable_repo_option = '--enablerepo=' + ",".join(use_repos)
+ cmd = cmd + ['--disablerepo=*', enable_repo_option]
+ cmd = cmd + [name]
Logger.info("Installing package %s ('%s')" % (name, string_cmd_from_args_list(cmd)))
shell.checked_call(cmd, sudo=True)
else:
Logger.info("Skipping installing existent package %s" % (name))
- def upgrade_package(self, name):
- return self.install_package(name)
+ def upgrade_package(self, name, use_repos=[]):
+ return self.install_package(name, use_repos)
def remove_package(self, name):
if self._check_existence(name):
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-common/src/main/python/resource_management/core/providers/package/zypper.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/providers/package/zypper.py b/ambari-common/src/main/python/resource_management/core/providers/package/zypper.py
index 764da73..fb0b862 100644
--- a/ambari-common/src/main/python/resource_management/core/providers/package/zypper.py
+++ b/ambari-common/src/main/python/resource_management/core/providers/package/zypper.py
@@ -30,7 +30,7 @@ REMOVE_CMD = ['/usr/bin/zypper', '--quiet', 'remove', '--no-confirm']
CHECK_CMD = "installed_pkgs=`rpm -qa %s` ; [ ! -z \"$installed_pkgs\" ]"
class ZypperProvider(PackageProvider):
- def install_package(self, name):
+ def install_package(self, name, use_repos=[]):
if not self._check_existence(name):
cmd = INSTALL_CMD + [name]
Logger.info("Installing package %s ('%s')" % (name, string_cmd_from_args_list(cmd)))
@@ -38,8 +38,8 @@ class ZypperProvider(PackageProvider):
else:
Logger.info("Skipping installing existent package %s" % (name))
- def upgrade_package(self, name):
- return self.install_package(name)
+ def upgrade_package(self, name, use_repos=[]):
+ return self.install_package(name, use_repos)
def remove_package(self, name):
if self._check_existence(name):
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-common/src/main/python/resource_management/core/resources/packaging.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/core/resources/packaging.py b/ambari-common/src/main/python/resource_management/core/resources/packaging.py
index c2ff20e..f38482e 100644
--- a/ambari-common/src/main/python/resource_management/core/resources/packaging.py
+++ b/ambari-common/src/main/python/resource_management/core/resources/packaging.py
@@ -29,6 +29,10 @@ class Package(Resource):
action = ForcedListArgument(default="install")
package_name = ResourceArgument(default=lambda obj: obj.name)
location = ResourceArgument(default=lambda obj: obj.package_name)
+
+ # Allow using only specific list of repositories when performing action
+ use_repos = ResourceArgument(default=[])
+
version = ResourceArgument()
actions = ["install", "upgrade", "remove"]
build_vars = ForcedListArgument(default=[])
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
index 1c2297b..9b7c3c9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java
@@ -220,7 +220,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
NoSuchParentResourceException {
Iterator<Map<String, Object>> iterator = request.getProperties().iterator();
String clName;
- String desiredRepoVersion;
+ final String desiredRepoVersion;
String stackName;
String stackVersion;
if (request.getProperties().size() != 1) {
@@ -334,6 +334,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
final String repoList = gson.toJson(repoInfo);
Map<String, String> params = new HashMap<String, String>() {{
+ put("repository_version", desiredRepoVersion);
put("base_urls", repoList);
put("package_list", packageList);
}};
@@ -346,7 +347,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
cluster.getClusterName(), INSTALL_PACKAGES_ACTION,
Collections.singletonList(filter),
params);
- actionContext.setTimeout((short) 60);
+ actionContext.setTimeout((short) 600);
try {
actionExecutionHelper.get().addExecutionCommandsToStage(actionContext, stage);
@@ -356,20 +357,23 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou
}
try {
- req.persist();
-
- try { // Create/persist cluster stack version
- cluster.createClusterVersion(stackId, desiredRepoVersion, managementController.getAuthName(), RepositoryVersionState.INSTALLED);
- ClusterVersionEntity newCSVer = clusterVersionDAO.findByClusterAndStackAndVersion(clName, stackId, desiredRepoVersion);
- cluster.initHostVersions(newCSVer);
- } catch (AmbariException e) {
- throw new SystemException(
- String.format(
- "Can not create cluster stack version %s for cluster %s",
- desiredRepoVersion, clName),
- e);
+ ClusterVersionEntity existingCSVer = clusterVersionDAO.findByClusterAndStackAndVersion(clName, stackId, desiredRepoVersion);
+ if (existingCSVer == null) {
+ try { // Create/persist new cluster stack version
+ cluster.createClusterVersion(stackId, desiredRepoVersion, managementController.getAuthName(), RepositoryVersionState.INSTALLED);
+ ClusterVersionEntity newCSVer = clusterVersionDAO.findByClusterAndStackAndVersion(clName, stackId, desiredRepoVersion);
+ cluster.initHostVersions(newCSVer);
+ } catch (AmbariException e) {
+ throw new SystemException(
+ String.format(
+ "Can not create cluster stack version %s for cluster %s",
+ desiredRepoVersion, clName),
+ e);
+ }
}
+ req.persist();
+
} catch (AmbariException e) {
throw new SystemException("Can not persist request", e);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
index b278177..2886266 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStackVersionResourceProvider.java
@@ -235,7 +235,7 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
NoSuchParentResourceException {
Iterator<Map<String,Object>> iterator = request.getProperties().iterator();
String hostName;
- String desiredRepoVersion;
+ final String desiredRepoVersion;
String stackName;
String stackVersion;
if (request.getProperties().size() != 1) {
@@ -362,6 +362,7 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
final String repoList = gson.toJson(repoInfo);
Map<String, String> params = new HashMap<String, String>(){{
+ put("repository_version", desiredRepoVersion);
put("base_urls", repoList);
put("package_list", packageList);
}};
@@ -374,7 +375,7 @@ public class HostStackVersionResourceProvider extends AbstractControllerResource
cluster.getClusterName(), INSTALL_PACKAGES_ACTION,
Collections.singletonList(filter),
params);
- actionContext.setTimeout((short) 60);
+ actionContext.setTimeout((short) 600);
String caption = String.format(INSTALL_PACKAGES_FULL_NAME + " on host %s", hostName);
RequestStageContainer req = createRequest(caption);
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/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 3e8113a..e6057e4 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
@@ -47,18 +47,22 @@ class InstallPackages(Script):
# Select dict that contains parameters
try:
+ repository_version = config['roleParams']['repository_version']
base_urls = json.loads(config['roleParams']['base_urls'])
package_list = json.loads(config['roleParams']['package_list'])
except KeyError:
# Last try
+ repository_version = config['commandParams']['repository_version']
base_urls = json.loads(config['commandParams']['base_urls'])
package_list = json.loads(config['commandParams']['package_list'])
# Install/update repositories
installed_repositories = []
+ current_repositories = ['base'] # Some our packages are installed from the base repo
try:
for url_info in base_urls:
- self.install_repository(url_info)
+ repo_name = self.install_repository(url_info, repository_version)
+ current_repositories.append(repo_name)
installed_repositories = list_ambari_managed_repos()
except Exception, err:
@@ -70,7 +74,7 @@ class InstallPackages(Script):
if not delayed_fail:
try:
for package in package_list:
- Package(package['name'])
+ Package(package['name'], use_repos=current_repositories)
package_install_result = True
except Exception, err:
print "Can not install packages."
@@ -81,6 +85,7 @@ class InstallPackages(Script):
# Build structured output
structured_output = {
'ambari_repositories': installed_repositories,
+ 'installed_repository_version': repository_version,
'package_installation_result': 'SUCCESS' if package_install_result else 'FAIL'
}
self.put_structured_out(structured_output)
@@ -90,11 +95,11 @@ class InstallPackages(Script):
raise Fail("Failed to distribute repositories/install packages")
- def install_repository(self, url_info):
+ def install_repository(self, url_info, repository_version):
template = "repo_suse_rhel.j2" if OSCheck.is_redhat_family() or OSCheck.is_suse_family() else "repo_ubuntu.j2"
repo = {
- 'repoName': url_info['repositoryId']
+ 'repoName': "{0}-{1}".format(url_info['name'], repository_version)
}
if not 'baseUrl' in url_info:
@@ -107,7 +112,7 @@ class InstallPackages(Script):
else:
repo['mirrorsList'] = url_info['mirrorsList']
- ubuntu_components = [repo['repoName']] + self.UBUNTU_REPO_COMPONENTS_POSTFIX
+ ubuntu_components = [url_info['repositoryId']] + self.UBUNTU_REPO_COMPONENTS_POSTFIX
Repository(repo['repoName'],
action = "create",
@@ -117,7 +122,7 @@ class InstallPackages(Script):
repo_template = template,
components = ubuntu_components, # ubuntu specific
)
-
+ return repo['repoName']
if __name__ == "__main__":
InstallPackages().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/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 bbb96e7..b87569a 100644
--- a/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
+++ b/ambari-server/src/test/python/custom_actions/TestInstallPackages.py
@@ -42,35 +42,36 @@ class TestInstallPackages(RMFTestCase):
self.assertTrue(put_structured_out.called)
self.assertEquals(put_structured_out.call_args[0][0],
{'package_installation_result': 'SUCCESS',
+ 'installed_repository_version': u'2.2.0.1-885',
'ambari_repositories': []})
- self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
+ self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
base_url='http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS-1.1.0.20', 'main'],
repo_template='repo_suse_rhel.j2',
- repo_file_name='HDP-UTILS-1.1.0.20',
+ repo_file_name='HDP-UTILS-2.2.0.1-885',
mirror_list=None,
)
- self.assertResourceCalled('Repository', 'HDP-2.2',
+ self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
base_url='http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-2.2', 'main'],
repo_template='repo_suse_rhel.j2',
- repo_file_name='HDP-2.2',
+ repo_file_name='HDP-2.2.0.1-885',
mirror_list=None,
)
- self.assertResourceCalled('Package', 'hadoop_2_2_*',)
- self.assertResourceCalled('Package', 'snappy',)
- self.assertResourceCalled('Package', 'snappy-devel',)
- self.assertResourceCalled('Package', 'lzo',)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_*',)
- self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs',)
- self.assertResourceCalled('Package', 'ambari-log4j',)
+ self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'snappy', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'snappy-devel', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'lzo', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'hadooplzo_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
self.assertNoMoreResources()
@patch("resource_management.libraries.functions.list_ambari_managed_repos.list_ambari_managed_repos",
- new=MagicMock(return_value=["HDP-UTILS-1.0.0.20"]))
+ new=MagicMock(return_value=["HDP-UTILS-2.2.0.1-885"]))
@patch("resource_management.libraries.script.Script.put_structured_out")
def test_exclude_existing_repo(self, put_structured_out):
self.executeScript("scripts/install_packages.py",
@@ -83,30 +84,31 @@ class TestInstallPackages(RMFTestCase):
self.assertTrue(put_structured_out.called)
self.assertEquals(put_structured_out.call_args[0][0],
{'package_installation_result': 'SUCCESS',
- 'ambari_repositories': ["HDP-UTILS-1.0.0.20"]})
- self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.20',
+ 'installed_repository_version': u'2.2.0.1-885',
+ 'ambari_repositories': ["HDP-UTILS-2.2.0.1-885"]})
+ self.assertResourceCalled('Repository', 'HDP-UTILS-2.2.0.1-885',
base_url='http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-UTILS-1.1.0.20', 'main'],
repo_template='repo_suse_rhel.j2',
- repo_file_name='HDP-UTILS-1.1.0.20',
+ repo_file_name='HDP-UTILS-2.2.0.1-885',
mirror_list=None,
)
- self.assertResourceCalled('Repository', 'HDP-2.2',
+ self.assertResourceCalled('Repository', 'HDP-2.2.0.1-885',
base_url='http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0',
action=['create'],
components=[u'HDP-2.2', 'main'],
repo_template='repo_suse_rhel.j2',
- repo_file_name='HDP-2.2',
+ repo_file_name='HDP-2.2.0.1-885',
mirror_list=None,
)
- self.assertResourceCalled('Package', 'hadoop_2_2_*',)
- self.assertResourceCalled('Package', 'snappy',)
- self.assertResourceCalled('Package', 'snappy-devel',)
- self.assertResourceCalled('Package', 'lzo',)
- self.assertResourceCalled('Package', 'hadooplzo_2_2_*',)
- self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs',)
- self.assertResourceCalled('Package', 'ambari-log4j',)
+ self.assertResourceCalled('Package', 'hadoop_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'snappy', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'snappy-devel', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'lzo', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'hadooplzo_2_2_*', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'hadoop_2_2_*-libhdfs', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
+ self.assertResourceCalled('Package', 'ambari-log4j', use_repos=['HDP-UTILS-2.2.0.1-885', 'HDP-2.2.0.1-885'])
self.assertNoMoreResources()
http://git-wip-us.apache.org/repos/asf/ambari/blob/b60f26ee/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 9ea9f47..bf0086b 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
@@ -22,6 +22,7 @@
},
"commandType": "EXECUTION_COMMAND",
"roleParams": {
+ "repository_version": "2.2.0.1-885",
"base_urls": "[{\"name\":\"HDP-UTILS\",\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0\",\"repositoryId\":\"HDP-UTILS-1.1.0.20\"},{\"name\":\"HDP\",\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0\",\"repositoryId\":\"HDP-2.2\"}]",
"package_list": "[{\"name\":\"hadoop_2_2_*\"},{\"name\":\"snappy\"},{\"name\":\"snappy-devel\"},{\"name\":\"lzo\"},{\"name\":\"hadooplzo_2_2_*\"},{\"name\":\"hadoop_2_2_*-libhdfs\"},{\"name\":\"ambari-log4j\"}]"
},
@@ -33,7 +34,8 @@
"configurations": {},
"commandParams": {
"command_timeout": "60",
- "script_type": "PYTHON",
+ "script_type": "PYTHON",
+ "repository_version": "2.2.0.1-885",
"base_urls": "[{\"name\":\"HDP-UTILS\",\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0\",\"repositoryId\":\"HDP-UTILS-1.1.0.20\"},{\"name\":\"HDP\",\"baseUrl\":\"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos5/2.x/updates/2.2.0.0\",\"repositoryId\":\"HDP-2.2\"}]",
"package_list": "[{\"name\":\"hadoop_2_2_*\"},{\"name\":\"snappy\"},{\"name\":\"snappy-devel\"},{\"name\":\"lzo\"},{\"name\":\"hadooplzo_2_2_*\"},{\"name\":\"hadoop_2_2_*-libhdfs\"},{\"name\":\"ambari-log4j\"}]",
"script": "install_packages.py"