|
@@ -26,6 +26,7 @@ from resource_management.core.exceptions import Fail
|
|
from resource_management.core.resources.system import Execute
|
|
from resource_management.core.resources.system import Execute
|
|
from resource_management.libraries.functions.default import default
|
|
from resource_management.libraries.functions.default import default
|
|
from resource_management.libraries.functions.get_hdp_version import get_hdp_version
|
|
from resource_management.libraries.functions.get_hdp_version import get_hdp_version
|
|
|
|
+from resource_management.libraries.functions.format import format
|
|
from resource_management.libraries.script.script import Script
|
|
from resource_management.libraries.script.script import Script
|
|
from resource_management.core.shell import call
|
|
from resource_management.core.shell import call
|
|
from resource_management.libraries.functions.version import format_hdp_stack_version
|
|
from resource_management.libraries.functions.version import format_hdp_stack_version
|
|
@@ -33,6 +34,7 @@ from resource_management.libraries.functions.version_select_util import get_vers
|
|
|
|
|
|
HDP_SELECT = '/usr/bin/hdp-select'
|
|
HDP_SELECT = '/usr/bin/hdp-select'
|
|
HDP_SELECT_PREFIX = ('ambari-python-wrap', HDP_SELECT)
|
|
HDP_SELECT_PREFIX = ('ambari-python-wrap', HDP_SELECT)
|
|
|
|
+
|
|
# hdp-select set oozie-server 2.2.0.0-1234
|
|
# hdp-select set oozie-server 2.2.0.0-1234
|
|
TEMPLATE = HDP_SELECT_PREFIX + ('set',)
|
|
TEMPLATE = HDP_SELECT_PREFIX + ('set',)
|
|
|
|
|
|
@@ -103,6 +105,21 @@ HADOOP_DIR_DEFAULTS = {
|
|
"lib": "/usr/lib/hadoop/lib"
|
|
"lib": "/usr/lib/hadoop/lib"
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+def select_all(stack_version):
|
|
|
|
+ """
|
|
|
|
+ Executes hdp-select on every component for the latest installed version of the specified stack.
|
|
|
|
+ For example, if stack_version is "2.3", then this will find the latest installed version which
|
|
|
|
+ could be "2.3.0.0-9999".
|
|
|
|
+ :param stack_version: the stack version to use when calculating the latest actual version,
|
|
|
|
+ such as "2.3".
|
|
|
|
+ """
|
|
|
|
+ Logger.info("Executing hdp-select set all on the latest calculated version for stack {0}".format(stack_version))
|
|
|
|
+
|
|
|
|
+ command = format('{sudo} /usr/bin/hdp-select set all `ambari-python-wrap /usr/bin/hdp-select versions | grep ^{stack_version} | tail -1`')
|
|
|
|
+ only_if_command = format('ls -d /usr/hdp/{stack_version}*')
|
|
|
|
+ Execute(command, only_if = only_if_command)
|
|
|
|
+
|
|
|
|
+
|
|
def select(component, version):
|
|
def select(component, version):
|
|
"""
|
|
"""
|
|
Executes hdp-select on the specific component and version. Some global
|
|
Executes hdp-select on the specific component and version. Some global
|
|
@@ -112,7 +129,8 @@ def select(component, version):
|
|
recalculated is to call reload(...) on each module that has global parameters.
|
|
recalculated is to call reload(...) on each module that has global parameters.
|
|
After invoking hdp-select, this function will also reload params, status_params,
|
|
After invoking hdp-select, this function will also reload params, status_params,
|
|
and params_linux.
|
|
and params_linux.
|
|
- :param component: the hdp-select component, such as oozie-server
|
|
|
|
|
|
+ :param component: the hdp-select component, such as oozie-server. If "all", then all components
|
|
|
|
+ will be updated.
|
|
:param version: the version to set the component to, such as 2.2.0.0-1234
|
|
:param version: the version to set the component to, such as 2.2.0.0-1234
|
|
"""
|
|
"""
|
|
command = TEMPLATE + (component, version)
|
|
command = TEMPLATE + (component, version)
|
|
@@ -128,7 +146,7 @@ def select(component, version):
|
|
if moduleName in modules:
|
|
if moduleName in modules:
|
|
module = modules.get(moduleName)
|
|
module = modules.get(moduleName)
|
|
reload(module)
|
|
reload(module)
|
|
- Logger.info("After hdp-select {0}, reloaded module {1}".format(component, moduleName))
|
|
|
|
|
|
+ Logger.info("After {0}, reloaded module {1}".format(command, moduleName))
|
|
|
|
|
|
|
|
|
|
def get_role_component_current_hdp_version():
|
|
def get_role_component_current_hdp_version():
|