This is an automated email from the ASF dual-hosted git repository.
aonishuk pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new d4467fb AMBARI-22561. Need to address HDP-GPL repo update after user
accepts license in post-install scenario (aonishuk)
d4467fb is described below
commit d4467fb18448d4b10d12692217ba1c57a00b37b0
Author: Andrew Onishuk <[email protected]>
AuthorDate: Sun Jan 28 12:52:31 2018 +0200
AMBARI-22561. Need to address HDP-GPL repo update after user accepts
license in post-install scenario (aonishuk)
---
.../libraries/functions/lzo_utils.py | 9 +-
.../libraries/functions/repository_util.py | 99 ++++++++------
.../resource_management/libraries/script/script.py | 10 +-
.../ambari/server/agent/CommandRepository.java | 8 ++
.../custom_actions/scripts/install_packages.py | 8 +-
.../before-INSTALL/scripts/repo_initialization.py | 9 +-
.../python/stacks/2.0.6/OOZIE/test_oozie_server.py | 152 ++++++++++++++++++++-
.../python/stacks/2.2/configs/oozie-upgrade.json | 39 +++++-
.../src/test/python/stacks/utils/RMFTestCase.py | 2 +
9 files changed, 283 insertions(+), 53 deletions(-)
diff --git
a/ambari-common/src/main/python/resource_management/libraries/functions/lzo_utils.py
b/ambari-common/src/main/python/resource_management/libraries/functions/lzo_utils.py
index 68ee607..c505969 100644
---
a/ambari-common/src/main/python/resource_management/libraries/functions/lzo_utils.py
+++
b/ambari-common/src/main/python/resource_management/libraries/functions/lzo_utils.py
@@ -54,6 +54,9 @@ def get_lzo_packages():
return lzo_packages
+def is_gpl_license_accepted():
+ return default("/hostLevelParams/gpl_license_accepted", False)
+
def should_install_lzo():
"""
Return true if lzo is enabled via core-site.xml and GPL license (required
for lzo) is accepted.
@@ -65,8 +68,7 @@ def should_install_lzo():
if not lzo_enabled:
return False
- is_gpl_license_accepted = default("/hostLevelParams/gpl_license_accepted",
False)
- if not is_gpl_license_accepted:
+ if not is_gpl_license_accepted():
Logger.warning(INSTALLING_LZO_WITHOUT_GPL)
return False
@@ -79,6 +81,9 @@ def install_lzo_if_needed():
if not should_install_lzo():
return
+ # If user has just accepted GPL license. GPL repository can not yet be
present.
+ Script.repository_util.create_repo_files()
+
lzo_packages = get_lzo_packages()
config = Script.get_config()
diff --git
a/ambari-common/src/main/python/resource_management/libraries/functions/repository_util.py
b/ambari-common/src/main/python/resource_management/libraries/functions/repository_util.py
index ef54f40..7faa33f 100644
---
a/ambari-common/src/main/python/resource_management/libraries/functions/repository_util.py
+++
b/ambari-common/src/main/python/resource_management/libraries/functions/repository_util.py
@@ -17,61 +17,83 @@ limitations under the License.
"""
+from ambari_commons.os_check import OSCheck
from resource_management.core.exceptions import Fail
from resource_management.core.logger import Logger
from resource_management.libraries.resources.repository import Repository
+from resource_management.libraries.functions.is_empty import is_empty
import ambari_simplejson as json
-__all__ = ["create_repo_files", "CommandRepository"]
+__all__ = ["RepositoryUtil", "CommandRepository"]
# components_lits = repoName + postfix
UBUNTU_REPO_COMPONENTS_POSTFIX = "main"
+class RepositoryUtil:
+ def __init__(self, config, tags_to_skip):
+ self.tags_to_skip = tags_to_skip
-def create_repo_files(template, command_repository):
- """
- Creates repositories in a consistent manner for all types
- :param command_repository: a CommandRepository instance
- :type command_repository CommandRepository
- :return: a dictionary with repo ID => repo file name mapping
- """
+ # repo templates
+ repo_file = config['repositoryFile']
+ repo_rhel_suse =
config['configurations']['cluster-env']['repo_suse_rhel_template']
+ repo_ubuntu =
config['configurations']['cluster-env']['repo_ubuntu_template']
- if command_repository.version_id is None:
- raise Fail("The command repository was not parsed correctly")
+ if is_empty(repo_file):
+ return
- if 0 == len(command_repository.items):
- Logger.warning(
- "Repository for {0}/{1} has no repositories. Ambari may not be managing
this version.".format(
- command_repository.stack_name, command_repository.version_string))
- return {}
+ self.template = repo_rhel_suse if OSCheck.is_redhat_family() or
OSCheck.is_suse_family() else repo_ubuntu
+ self.command_repository = CommandRepository(repo_file)
- append_to_file = False # initialize to False to create the file anew.
- repo_files = {}
-
- for repository in command_repository.items:
-
- if repository.repo_id is None:
- raise Fail("Repository with url {0} has no
id".format(repository.base_url))
+ def create_repo_files(self):
+ """
+ Creates repositories in a consistent manner for all types
+ :return: a dictionary with repo ID => repo file name mapping
+ """
+ if self.command_repository.version_id is None:
+ raise Fail("The command repository was not parsed correctly")
- if not repository.ambari_managed:
+ if 0 == len(self.command_repository.items):
Logger.warning(
- "Repository for {0}/{1}/{2} is not managed by Ambari".format(
- command_repository.stack_name, command_repository.version_string,
repository.repo_id))
- else:
- Repository(repository.repo_id,
- action="create",
- base_url=repository.base_url,
- mirror_list=repository.mirrors_list,
- repo_file_name=command_repository.repo_filename,
- repo_template=template,
- components=repository.ubuntu_components,
- append_to_file=append_to_file)
- append_to_file = True
- repo_files[repository.repo_id] = command_repository.repo_filename
-
- return repo_files
+ "Repository for {0}/{1} has no repositories. Ambari may not be
managing this version.".format(
+ self.command_repository.stack_name,
self.command_repository.version_string))
+ return {}
+
+ append_to_file = False # initialize to False to create the file anew.
+ repo_files = {}
+ for repository in self.command_repository.items:
+ if repository.repo_id is None:
+ raise Fail("Repository with url {0} has no
id".format(repository.base_url))
+
+ if self.tags_to_skip & repository.tags:
+ Logger.info("Repository with url {0} is not created due to its tags:
{1}".format(repository.base_url, repository.tags))
+ continue
+
+ if not repository.ambari_managed:
+ Logger.warning(
+ "Repository for {0}/{1}/{2} is not managed by Ambari".format(
+ self.command_repository.stack_name,
self.command_repository.version_string, repository.repo_id))
+ else:
+ Repository(repository.repo_id,
+ action="create",
+ base_url=repository.base_url,
+ mirror_list=repository.mirrors_list,
+ repo_file_name=self.command_repository.repo_filename,
+ repo_template=self.template,
+ components=repository.ubuntu_components,
+ append_to_file=append_to_file)
+ append_to_file = True
+ repo_files[repository.repo_id] = self.command_repository.repo_filename
+
+ return repo_files
+def create_repo_files(template, command_repository):
+ """
+ DEPRECATED. Is present for usage by old mpacks.
+ Please use Script.repository_util.create_repo_files() instead.
+ """
+ from resource_management.libraries.script import Script
+ return RepositoryUtil(Script.get_config(), set()).create_repo_files()
def _find_value(dictionary, key, default=None):
"""
@@ -146,6 +168,7 @@ class CommandRepositoryItem(object):
self.components = _find_value(json_dict, 'components')
self.base_url = _find_value(json_dict, 'baseUrl')
self.mirrors_list = _find_value(json_dict, 'mirrorsList')
+ self.tags = set(_find_value(json_dict, 'tags', default=[]))
self.ambari_managed = _find_value(json_dict, 'ambariManaged', default=True)
self.ubuntu_components = [self.distribution if self.distribution else
self.repo_name] + \
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 88e5336..1faaf51 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
@@ -53,7 +53,7 @@ from resource_management.libraries.functions.version import
format_stack_version
from resource_management.libraries.functions import stack_tools
from resource_management.libraries.functions.constants import Direction
from resource_management.libraries.script.config_dictionary import
ConfigDictionary, UnknownConfiguration
-from resource_management.libraries.functions.repository_util import
CommandRepository
+from resource_management.libraries.functions.repository_util import
CommandRepository, RepositoryUtil
from resource_management.core.resources.system import Execute
from contextlib import closing
from resource_management.libraries.functions.stack_features import
check_stack_feature
@@ -356,6 +356,14 @@ class Script(object):
Logger.logger.exception("Can not read json file with command parameters:
")
sys.exit(1)
+ from resource_management.libraries.functions import lzo_utils
+
+ repo_tags_to_skip = set()
+ if not lzo_utils.is_gpl_license_accepted():
+ repo_tags_to_skip.add("GPL")
+
+ Script.repository_util = RepositoryUtil(Script.config, repo_tags_to_skip)
+
# Run class method depending on a command type
try:
method = self.choose_method_to_execute(self.command_name)
diff --git
a/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java
b/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java
index 449d2d5..83914ff 100644
---
a/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java
+++
b/ambari-server/src/main/java/org/apache/ambari/server/agent/CommandRepository.java
@@ -20,11 +20,13 @@ package org.apache.ambari.server.agent;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
+import java.util.Set;
import org.apache.ambari.annotations.Experimental;
import org.apache.ambari.annotations.ExperimentalFeature;
import org.apache.ambari.server.orm.entities.RepositoryEntity;
import org.apache.ambari.server.state.RepositoryInfo;
+import org.apache.ambari.server.state.stack.RepoTag;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.google.gson.annotations.SerializedName;
@@ -255,6 +257,10 @@ public class CommandRepository {
@SerializedName("mirrorsList")
private String m_mirrorsList;
+ @SerializedName("tags")
+ private Set<RepoTag> m_tags;
+
+
private transient String m_osType;
private Repository(RepositoryInfo info) {
@@ -265,6 +271,7 @@ public class CommandRepository {
m_distribution = info.getDistribution();
m_components = info.getComponents();
m_mirrorsList = info.getMirrorsList();
+ m_tags = info.getTags();
}
private Repository(String osType, RepositoryEntity entity) {
@@ -275,6 +282,7 @@ public class CommandRepository {
m_components = entity.getComponents();
m_mirrorsList = entity.getMirrorsList();
m_osType = osType;
+ m_tags = entity.getTags();
}
public void setRepoId(String repoId){
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 11b571b..cd172af 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
@@ -36,7 +36,7 @@ from
resource_management.libraries.functions.repo_version_history \
from resource_management.core.providers import get_provider
from resource_management.core.resources.system import Link
from resource_management.libraries.functions import StackFeature
-from resource_management.libraries.functions.repository_util import
create_repo_files, CommandRepository
+from resource_management.libraries.functions.repository_util import
CommandRepository
from resource_management.libraries.functions.stack_features import
check_stack_feature
from resource_management.libraries.resources.repository import Repository
from resource_management.libraries.script.script import Script
@@ -71,10 +71,6 @@ class InstallPackages(Script):
except KeyError:
raise Fail("The command repository indicated by 'repositoryFile' was not
found")
- repo_rhel_suse =
config['configurations']['cluster-env']['repo_suse_rhel_template']
- repo_ubuntu =
config['configurations']['cluster-env']['repo_ubuntu_template']
- template = repo_rhel_suse if OSCheck.is_redhat_family() or
OSCheck.is_suse_family() else repo_ubuntu
-
# Handle a SIGTERM and SIGINT gracefully
signal.signal(signal.SIGTERM, self.abort_handler)
signal.signal(signal.SIGINT, self.abort_handler)
@@ -109,7 +105,7 @@ class InstallPackages(Script):
else:
Logger.info(
"Will install packages for repository version
{0}".format(self.repository_version))
- new_repo_files = create_repo_files(template, command_repository)
+ new_repo_files = Script.repository_util.create_repo_files()
self.repo_files.update(new_repo_files)
except Exception as err:
Logger.logger.exception("Cannot install repository files. Error:
{0}".format(str(err)))
diff --git
a/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/repo_initialization.py
b/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/repo_initialization.py
index 9f2b344..9a698b4 100644
---
a/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/repo_initialization.py
+++
b/ambari-server/src/main/resources/stack-hooks/before-INSTALL/scripts/repo_initialization.py
@@ -19,7 +19,8 @@ limitations under the License.
from ambari_commons.os_check import OSCheck
from resource_management.libraries.resources.repository import Repository
-from resource_management.libraries.functions.repository_util import
create_repo_files, CommandRepository, UBUNTU_REPO_COMPONENTS_POSTFIX
+from resource_management.libraries.functions.repository_util import
CommandRepository, UBUNTU_REPO_COMPONENTS_POSTFIX
+from resource_management.libraries.script.script import Script
from resource_management.core.logger import Logger
import ambari_simplejson as json
@@ -62,13 +63,13 @@ def install_repos():
if params.host_sys_prepped:
return
- template = params.repo_rhel_suse if OSCheck.is_suse_family() or
OSCheck.is_redhat_family() else params.repo_ubuntu
-
# use this newer way of specifying repositories, if available
if params.repo_file is not None:
- create_repo_files(template, CommandRepository(params.repo_file))
+ Script.repository_util.create_repo_files()
return
+ template = params.repo_rhel_suse if OSCheck.is_suse_family() or
OSCheck.is_redhat_family() else params.repo_ubuntu
+
_alter_repo("create", params.repo_info, template)
if params.service_repo_info:
diff --git
a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
index 10a83d6..09c4227 100644
--- a/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
+++ b/ambari-server/src/test/python/stacks/2.0.6/OOZIE/test_oozie_server.py
@@ -28,6 +28,44 @@ from resource_management.libraries import functions
from resource_management.libraries.providers.hdfs_resource import WebHDFSUtil
import tempfile
+REPOSITORY_FILE_DICT = {
+ "resolved": True,
+ "repoVersion": "2.6.4.0-52",
+ "repositories": [
+ {
+ "tags": [],
+ "ambariManaged": True,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52",
+ "repoName": "HDP",
+ "repoId": "HDP-2.6-repo-1",
+ "applicableServices": []
+ },
+ {
+ "repoName": "HDP-GPL",
+ "tags": [
+ "GPL"
+ ],
+ "ambariManaged": True,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52",
+ "repoId": "HDP-2.6-GPL-repo-1"
+ },
+ {
+ "repoName": "HDP-UTILS",
+ "tags": [],
+ "ambariManaged": True,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6",
+ "repoId": "HDP-UTILS-1.1.0.22-repo-1"
+ }
+ ],
+ "feature": {
+ "preInstalled": False,
+ "scoped": True
+ },
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoFileName": "ambari-hdp-1"
+ }
+
def format_package_name_side_effect(name):
return name.replace("${stack_version}", "1_2_3_4")
@@ -1219,6 +1257,34 @@ class TestOozieServer(RMFTestCase):
sudo = True )
self.assertResourceCalled('Directory',
'/usr/hdp/current/oozie-server/libext', mode = 0777)
+
+ self.assertResourceCalled('Repository', 'HDP-2.6-repo-1',
+ append_to_file = False,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = [u'HDP', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-2.6-GPL-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = [u'HDP-GPL', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.22-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6',
+ action = ['create'],
+ components = [u'HDP-UTILS', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
self.assertResourceCalled('Package', ('lzo'), retry_count=5,
retry_on_repo_unavailability= False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4'), retry_count =
5, retry_on_repo_unavailability = False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4-native'),
retry_count = 5, retry_on_repo_unavailability = False)
@@ -1260,6 +1326,7 @@ class TestOozieServer(RMFTestCase):
version = '2.3.0.0-1234'
json_content['commandParams']['version'] = version
json_content['hostLevelParams']['stack_version'] = "2.3"
+ json_content['repositoryFile'] = REPOSITORY_FILE_DICT
mocks_dict = {}
self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR +
"/scripts/oozie_server.py",
@@ -1283,6 +1350,33 @@ class TestOozieServer(RMFTestCase):
self.assertResourceCalled('Directory',
'/usr/hdp/current/oozie-server/libext', mode = 0777)
+ self.assertResourceCalled('Repository', 'HDP-2.6-repo-1',
+ append_to_file = False,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-2.6-GPL-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP-GPL', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.22-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6',
+ action = ['create'],
+ components = ['HDP-UTILS', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
self.assertResourceCalled('Package', ('lzo'), retry_count=5,
retry_on_repo_unavailability= False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4'), retry_count =
5, retry_on_repo_unavailability = False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4-native'),
retry_count = 5, retry_on_repo_unavailability = False)
@@ -1331,6 +1425,7 @@ class TestOozieServer(RMFTestCase):
'type': 'rolling_upgrade',
'orchestration': 'STANDARD'
}
+ json_content['repositoryFile'] = REPOSITORY_FILE_DICT
mocks_dict = {}
self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR +
"/scripts/oozie_server.py",
@@ -1355,6 +1450,33 @@ class TestOozieServer(RMFTestCase):
self.assertResourceCalled('Directory',
'/usr/hdp/current/oozie-server/libext', mode = 0777)
+ self.assertResourceCalled('Repository', 'HDP-2.6-repo-1',
+ append_to_file = False,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-2.6-GPL-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP-GPL', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.22-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6',
+ action = ['create'],
+ components = ['HDP-UTILS', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
self.assertResourceCalled('Package', ('lzo'), retry_count=5,
retry_on_repo_unavailability= False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4'), retry_count =
5, retry_on_repo_unavailability = False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4-native'),
retry_count = 5, retry_on_repo_unavailability = False)
@@ -1573,7 +1695,8 @@ class TestOozieServer(RMFTestCase):
version = '2.3.0.0-1234'
json_content['commandParams']['version'] = version
json_content['clusterHostInfo']['falcon_server_hosts'] =
['c6401.ambari.apache.org']
-
+ json_content['repositoryFile'] = REPOSITORY_FILE_DICT
+
mocks_dict = {}
self.executeScript(self.COMMON_SERVICES_PACKAGE_DIR +
"/scripts/oozie_server.py",
classname = "OozieServer", command = "pre_upgrade_restart", config_dict =
json_content,
@@ -1595,6 +1718,33 @@ class TestOozieServer(RMFTestCase):
self.assertResourceCalled('Directory',
'/usr/hdp/current/oozie-server/libext', mode = 0777)
+ self.assertResourceCalled('Repository', 'HDP-2.6-repo-1',
+ append_to_file = False,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-2.6-GPL-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52',
+ action = ['create'],
+ components = ['HDP-GPL', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
+ self.assertResourceCalled('Repository', 'HDP-UTILS-1.1.0.22-repo-1',
+ append_to_file = True,
+ base_url =
'http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6',
+ action = ['create'],
+ components = ['HDP-UTILS', 'main'],
+ repo_template = UnknownConfigurationMock(),
+ repo_file_name = 'ambari-hdp-1',
+ mirror_list = None,
+ )
self.assertResourceCalled('Package', ('lzo'), retry_count=5,
retry_on_repo_unavailability= False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4'), retry_count =
5, retry_on_repo_unavailability = False)
self.assertResourceCalled('Package', ('hadooplzo_1_2_3_4-native'),
retry_count = 5, retry_on_repo_unavailability = False)
diff --git
a/ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json
b/ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json
index 29cbddc..4e9a62f 100644
--- a/ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json
+++ b/ambari-server/src/test/python/stacks/2.2/configs/oozie-upgrade.json
@@ -66,7 +66,44 @@
"role": "OOZIE_SERVER",
"forceRefreshConfigTags": [],
"taskId": 305,
- "public_hostname": "c6402.ambari.apache.org",
+ "public_hostname": "c6402.ambari.apache.org",
+ "repositoryFile": {
+ "resolved": true,
+ "repoVersion": "2.6.4.0-52",
+ "repositories": [
+ {
+ "tags": [],
+ "ambariManaged": true,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.6.4.0-52",
+ "repoName": "HDP",
+ "repoId": "HDP-2.6-repo-1",
+ "applicableServices": []
+ },
+ {
+ "repoName": "HDP-GPL",
+ "tags": [
+ "GPL"
+ ],
+ "ambariManaged": true,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-GPL/centos6/2.x/BUILDS/2.6.4.0-52",
+ "repoId": "HDP-2.6-GPL-repo-1"
+ },
+ {
+ "repoName": "HDP-UTILS",
+ "tags": [],
+ "ambariManaged": true,
+ "baseUrl":
"http://s3.amazonaws.com/dev.hortonworks.com/HDP-UTILS-1.1.0.22/repos/centos6",
+ "repoId": "HDP-UTILS-1.1.0.22-repo-1"
+ }
+ ],
+ "feature": {
+ "preInstalled": false,
+ "scoped": true
+ },
+ "stackName": "HDP",
+ "repoVersionId": 1,
+ "repoFileName": "ambari-hdp-1"
+ },
"configurations": {
"oozie-env": {
"oozie_heapsize": "2048m",
diff --git a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
index ae33a2a..00dc738 100644
--- a/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
+++ b/ambari-server/src/test/python/stacks/utils/RMFTestCase.py
@@ -38,6 +38,7 @@ with patch("platform.linux_distribution", return_value =
('Suse','11','Final')):
from resource_management.libraries.script.config_dictionary import
ConfigDictionary
from resource_management.libraries.script.script import Script
from resource_management.libraries.script.config_dictionary import
UnknownConfiguration
+ from resource_management.libraries.functions.repository_util import
RepositoryUtil
PATH_TO_STACKS = "main/resources/stacks/HDP"
PATH_TO_STACK_TESTS = "test/python/stacks/"
@@ -127,6 +128,7 @@ class RMFTestCase(TestCase):
script_class_inst = RMFTestCase._get_attr(script_module, classname)()
script_class_inst.log_out_files = log_out_files
script_class_inst.available_packages_in_repos =
available_packages_in_repos
+ Script.repository_util = RepositoryUtil(self.config_dict, set())
method = RMFTestCase._get_attr(script_class_inst, command)
except IOError, err:
raise RuntimeError("Cannot load class %s from %s: %s" % (classname,
norm_path, err.message))
--
To stop receiving notification emails like this one, please contact
[email protected].