You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2015/05/13 16:34:52 UTC
[2/2] ambari git commit: AMBARI-11086 - Upgrade Pack Configure Task
Must Preserve Additions When Deleting (jonathanhurley)
AMBARI-11086 - Upgrade Pack Configure Task Must Preserve Additions When Deleting (jonathanhurley)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/7e4cba5c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/7e4cba5c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/7e4cba5c
Branch: refs/heads/trunk
Commit: 7e4cba5cfb5b2c853a4472244ea0a5b660dcf7eb
Parents: cd4f302
Author: Jonathan Hurley <jh...@hortonworks.com>
Authored: Tue May 12 16:26:45 2015 -0400
Committer: Jonathan Hurley <jh...@hortonworks.com>
Committed: Wed May 13 10:34:37 2015 -0400
----------------------------------------------------------------------
.../libraries/functions/conf_select.py | 99 +++++++-
.../libraries/functions/format.py | 10 +-
.../libraries/functions/hdp_select.py | 53 ++++
.../server/checks/ClientRetryPropertyCheck.java | 2 +-
.../serveraction/upgrades/ConfigureAction.java | 142 +++++++++--
.../ambari/server/state/ConfigMergeHelper.java | 6 +-
.../0.5.0.2.1/package/scripts/falcon_client.py | 3 +-
.../0.5.0.2.1/package/scripts/falcon_server.py | 3 +-
.../1.4.0.2.0/package/scripts/flume_handler.py | 7 +-
.../0.96.0.2.0/package/scripts/hbase_client.py | 5 +-
.../HBASE/0.96.0.2.0/package/scripts/upgrade.py | 3 +-
.../HDFS/2.1.0.2.0/package/scripts/datanode.py | 3 +-
.../2.1.0.2.0/package/scripts/hdfs_client.py | 3 +-
.../2.1.0.2.0/package/scripts/journalnode.py | 3 +-
.../HDFS/2.1.0.2.0/package/scripts/namenode.py | 3 +-
.../0.12.0.2.0/package/scripts/hive_client.py | 3 +-
.../package/scripts/hive_metastore.py | 3 +-
.../0.12.0.2.0/package/scripts/hive_server.py | 3 +-
.../package/scripts/webhcat_server.py | 3 +-
.../KAFKA/0.8.1.2.2/package/scripts/upgrade.py | 3 +-
.../0.5.0.2.2/package/scripts/knox_gateway.py | 3 +-
.../4.0.0.2.0/package/scripts/oozie_client.py | 3 +-
.../4.0.0.2.0/package/scripts/oozie_server.py | 3 +-
.../0.12.0.2.0/package/scripts/pig_client.py | 3 +-
.../RANGER/0.4.0/package/scripts/upgrade.py | 3 +-
.../0.60.0.2.2/package/scripts/slider_client.py | 9 +-
.../package/scripts/job_history_server.py | 4 +-
.../1.2.0.2.2/package/scripts/spark_client.py | 3 +-
.../1.4.4.2.0/package/scripts/sqoop_client.py | 4 +-
.../0.9.1.2.1/package/scripts/drpc_server.py | 3 +-
.../STORM/0.9.1.2.1/package/scripts/nimbus.py | 3 +-
.../0.9.1.2.1/package/scripts/nimbus_prod.py | 3 +-
.../STORM/0.9.1.2.1/package/scripts/rest_api.py | 3 +-
.../0.9.1.2.1/package/scripts/supervisor.py | 3 +-
.../package/scripts/supervisor_prod.py | 3 +-
.../0.9.1.2.1/package/scripts/ui_server.py | 3 +-
.../TEZ/0.4.0.2.1/package/scripts/tez_client.py | 3 +-
.../scripts/application_timeline_server.py | 3 +-
.../2.1.0.2.0/package/scripts/historyserver.py | 3 +-
.../package/scripts/mapreduce2_client.py | 3 +-
.../2.1.0.2.0/package/scripts/nodemanager.py | 3 +-
.../package/scripts/resourcemanager.py | 3 +-
.../2.1.0.2.0/package/scripts/yarn_client.py | 3 +-
.../3.4.5.2.0/package/scripts/zookeeper.py | 3 +-
.../package/scripts/zookeeper_client.py | 3 +-
.../package/scripts/zookeeper_server.py | 3 +-
.../checks/ClientRetryPropertyCheckTest.java | 2 +-
.../upgrades/ConfigureActionTest.java | 243 ++++++++++++++-----
ambari-server/src/test/python/TestUtils.py | 35 +++
.../python/stacks/2.0.6/HDFS/test_namenode.py | 4 +-
.../stacks/2.0.6/OOZIE/test_oozie_server.py | 2 +-
.../ZOOKEEPER/configuration/zoo.cfg.xml | 62 +++++
52 files changed, 641 insertions(+), 153 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/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 63b474f..7c5c005 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
@@ -23,8 +23,47 @@ __all__ = ["select", "create", "get_hadoop_conf_dir", "get_hadoop_dir"]
import version
from resource_management.core import shell
from resource_management.core.exceptions import Fail
+from resource_management.core.logger import Logger
+from resource_management.libraries.functions.default import default
+from resource_management.libraries.functions.get_hdp_version import get_hdp_version
from resource_management.libraries.script.script import Script
+# a mapping of Ambari server role to hdp-select component name for all
+# non-clients
+SERVER_ROLE_DIRECTORY_MAP = {
+ 'ACCUMULO_MASTER' : 'accumulo-master',
+ 'ACCUMULO_MONITOR' : 'accumulo-monitor',
+ 'ACCUMULO_GC' : 'accumulo-gc',
+ 'ACCUMULO_TRACER' : 'accumulo-tracer',
+ 'ACCUMULO_TSERVER' : 'accumulo-tablet',
+ 'ATLAS_SERVER' : 'atlas-server',
+ 'FLUME_HANDLER' : 'flume-server',
+ 'FALCON_SERVER' : 'falcon-server',
+ 'NAMENODE' : 'hadoop-hdfs-namenode',
+ 'DATANODE' : 'hadoop-hdfs-datanode',
+ 'SECONDARY_NAMENODE' : 'hadoop-hdfs-secondarynamenode',
+ 'NFS_GATEWAY' : 'hadoop-hdfs-nfs3',
+ 'JOURNALNODE' : 'hadoop-hdfs-journalnode',
+ 'HBASE_MASTER' : 'hbase-master',
+ 'HBASE_REGIONSERVER' : 'hbase-regionserver',
+ 'HIVE_METASTORE' : 'hive-metastore',
+ 'HIVE_SERVER' : 'hive-server2',
+ 'WEBHCAT_SERVER' : 'hive-webhcat',
+ 'KAFKA_BROKER' : 'kafka-broker',
+ 'KNOX_GATEWAY' : 'knox-server',
+ 'OOZIE_SERVER' : 'oozie-server',
+ 'RANGER_ADMIN' : 'ranger-admin',
+ 'RANGER_USERSYNC' : 'ranger-usersync',
+ 'SPARK_JOBHISTORYSERVER' : 'spark-historyserver',
+ 'NIMBUS' : 'storm-nimbus',
+ 'SUPERVISOR' : 'storm-supervisor',
+ 'HISTORYSERVER' : 'hadoop-mapreduce-historyserver',
+ 'APP_TIMELINE_SERVER' : 'hadoop-yarn-timelineserver',
+ 'NODEMANAGER' : 'hadoop-yarn-nodemanager',
+ 'RESOURCEMANAGER' : 'hadoop-yarn-resourcemanager',
+ 'ZOOKEEPER_SERVER' : 'zookeeper-server'
+}
+
TEMPLATE = "conf-select {0} --package {1} --stack-version {2} --conf-version 0"
HADOOP_DIR_TEMPLATE = "/usr/hdp/{0}/{1}/{2}"
HADOOP_DIR_DEFAULTS = {
@@ -43,14 +82,19 @@ def _valid(stack_name, package, ver):
return True
-def _is_upgrade():
+def _get_upgrade_stack():
+ """
+ Gets the stack name and stack version if an upgrade is currently in progress.
+ :return: the stack name and stack version as a tuple, or None if an
+ upgrade is not in progress.
+ """
from resource_management.libraries.functions.default import default
direction = default("/commandParams/upgrade_direction", None)
stack_name = default("/hostLevelParams/stack_name", None)
- ver = default("/commandParams/version", None)
+ stack_version = default("/commandParams/version", None)
- if direction and stack_name and ver:
- return (stack_name, ver)
+ if direction and stack_name and stack_version:
+ return (stack_name, stack_version)
return None
@@ -94,17 +138,19 @@ def get_hadoop_conf_dir():
by conf-select. This is in the form /usr/hdp/VERSION/hadoop/conf to make sure
the configs are written in the correct place
"""
-
hadoop_conf_dir = "/etc/hadoop/conf"
if Script.is_hdp_stack_greater_or_equal("2.2"):
hadoop_conf_dir = "/usr/hdp/current/hadoop-client/conf"
- res = _is_upgrade()
+ stack_info = _get_upgrade_stack()
+
+ if stack_info is not None and Script.is_hdp_stack_greater_or_equal("2.3"):
+ stack_name = stack_info[0]
+ stack_version = stack_info[1]
- if res is not None and Script.is_hdp_stack_greater_or_equal("2.3"):
- select(res[0], "hadoop", res[1])
- hadoop_conf_dir = "/usr/hdp/{0}/hadoop/conf".format(res[1])
+ select(stack_name, "hadoop", stack_version)
+ hadoop_conf_dir = "/usr/hdp/{0}/hadoop/conf".format(stack_version)
return hadoop_conf_dir
@@ -113,7 +159,9 @@ def get_hadoop_dir(target):
Return the hadoop shared directory in the following override order
1. Use default for 2.1 and lower
2. If 2.2 and higher, use /usr/hdp/current/hadoop-client/{target}
- 3. If 2.2 and higher AND for an upgrade, use /usr/hdp/<version>/hadoop/{target}
+ 3. If 2.2 and higher AND for an upgrade, use /usr/hdp/<version>/hadoop/{target}.
+ However, if the upgrade has not yet invoked hdp-select, return the current
+ version of the component.
:target: the target directory
"""
@@ -125,10 +173,35 @@ def get_hadoop_dir(target):
if Script.is_hdp_stack_greater_or_equal("2.2"):
hadoop_dir = HADOOP_DIR_TEMPLATE.format("current", "hadoop-client", target)
- res = _is_upgrade()
+ stack_info = _get_upgrade_stack()
+
+ if stack_info is not None:
+ stack_version = stack_info[1]
+
+ # determine if hdp-select has been run and if not, then use the current
+ # hdp version until this component is upgraded
+ current_hdp_version = get_role_component_current_hdp_version()
+ if current_hdp_version is not None and stack_version != current_hdp_version:
+ stack_version = current_hdp_version
- if res is not None:
- hadoop_dir = HADOOP_DIR_TEMPLATE.format(res[1], "hadoop", target)
+ hadoop_dir = HADOOP_DIR_TEMPLATE.format(stack_version, "hadoop", target)
return hadoop_dir
+
+
+def get_role_component_current_hdp_version():
+ """
+ Gets the current HDP version of the component that this role command is for.
+ :return: the current HDP version of the specified component or None
+ """
+ command_role = default("/role", "")
+ if command_role in SERVER_ROLE_DIRECTORY_MAP:
+ hdp_select_component = SERVER_ROLE_DIRECTORY_MAP[command_role]
+ current_hdp_version = get_hdp_version(hdp_select_component)
+
+ Logger.info("{0} is currently at version {1}".format(
+ hdp_select_component, current_hdp_version))
+ return current_hdp_version
+
+ return None
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-common/src/main/python/resource_management/libraries/functions/format.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/format.py b/ambari-common/src/main/python/resource_management/libraries/functions/format.py
index 0dfc45d..6fdecc0 100644
--- a/ambari-common/src/main/python/resource_management/libraries/functions/format.py
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/format.py
@@ -41,8 +41,14 @@ class ConfigurationFormatter(Formatter):
env = Environment.get_instance()
variables = kwargs
params = env.config.params
- all_params = checked_unite(variables, params)
-
+
+ # don't use checked_unite for this as it would interfere with reload(module)
+ # for things like params and status_params; instead, start out copying
+ # the environment parameters and add in any locally declared variables to
+ # override existing env parameters
+ all_params = params.copy()
+ all_params.update(variables)
+
self.convert_field = self.convert_field_protected
result_protected = self.vformat(format_string, args, all_params)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-common/src/main/python/resource_management/libraries/functions/hdp_select.py
----------------------------------------------------------------------
diff --git a/ambari-common/src/main/python/resource_management/libraries/functions/hdp_select.py b/ambari-common/src/main/python/resource_management/libraries/functions/hdp_select.py
new file mode 100644
index 0000000..5f3c848
--- /dev/null
+++ b/ambari-common/src/main/python/resource_management/libraries/functions/hdp_select.py
@@ -0,0 +1,53 @@
+#!/usr/bin/env python
+"""
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements. See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership. The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+"""
+
+import sys
+from resource_management.core.logger import Logger
+from resource_management.core.resources.system import Execute
+
+# hdp-select set oozie-server 2.2.0.0-1234
+TEMPLATE = "hdp-select set {0} {1}"
+
+def select(component, version):
+ """
+ Executes hdp-select on the specific component and version. Some global
+ variables that are imported via params/status_params/params_linux will need
+ to be recalcuated after the hdp-select. However, python does not re-import
+ existing modules. The only way to ensure that the configuration variables are
+ recalculated is to call reload(...) on each module that has global parameters.
+ After invoking hdp-select, this function will also reload params, status_params,
+ and params_linux.
+ :param component: the hdp-select component, such as oozie-server
+ :param version: the version to set the component to, such as 2.2.0.0-1234
+ """
+ command = TEMPLATE.format(component, version)
+ Execute(command)
+
+ # don't trust the ordering of modules:
+ # 1) status_params
+ # 2) params_linux
+ # 3) params
+ modules = sys.modules
+ param_modules = "status_params", "params_linux", "params"
+ for moduleName in param_modules:
+ if moduleName in modules:
+ module = modules.get(moduleName)
+ reload(module)
+ Logger.info("After hdp-select {0}, reloaded module {1}".format(component, moduleName))
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/java/org/apache/ambari/server/checks/ClientRetryPropertyCheck.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/ClientRetryPropertyCheck.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/ClientRetryPropertyCheck.java
index 5fbb5e4..4beba33 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/checks/ClientRetryPropertyCheck.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/ClientRetryPropertyCheck.java
@@ -101,7 +101,7 @@ public class ClientRetryPropertyCheck extends AbstractCheckDescriptor {
}
if (services.containsKey("OOZIE")) {
- String oozieClientRetry = getProperty(request, "oozie-env", "template");
+ String oozieClientRetry = getProperty(request, "oozie-env", "content");
if (null == oozieClientRetry || !oozieClientRetry.contains("-Doozie.connection.retry.count")) {
errorMessages.add(getFailReason(OOZIE_CLIENT_RETRY_MISSING_KEY, prerequisiteCheck, request));
prerequisiteCheck.getFailedOn().add("OOZIE");
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ConfigureAction.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ConfigureAction.java b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ConfigureAction.java
index 5c17408..ce03861 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ConfigureAction.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/serveraction/upgrades/ConfigureAction.java
@@ -21,13 +21,16 @@ import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.actionmanager.HostRoleStatus;
import org.apache.ambari.server.agent.CommandReport;
+import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.ConfigurationRequest;
@@ -40,6 +43,7 @@ import org.apache.ambari.server.state.ConfigHelper;
import org.apache.ambari.server.state.ConfigMergeHelper;
import org.apache.ambari.server.state.ConfigMergeHelper.ThreeWayValue;
import org.apache.ambari.server.state.DesiredConfig;
+import org.apache.ambari.server.state.PropertyInfo;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.stack.upgrade.ConfigureTask;
import org.apache.commons.lang.StringUtils;
@@ -47,6 +51,7 @@ import org.apache.commons.lang.StringUtils;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.inject.Inject;
+import com.google.inject.Provider;
/**
* The {@link ConfigureAction} is used to alter a configuration property during
@@ -80,6 +85,13 @@ public class ConfigureAction extends AbstractServerAction {
@Inject
private Configuration m_configuration;
+ /**
+ * Used to lookup stack properties which are the configuration properties that
+ * are defined on the stack.
+ */
+ @Inject
+ private Provider<AmbariMetaInfo> m_ambariMetaInfo;
+
@Inject
private ConfigMergeHelper m_mergeHelper;
@@ -184,6 +196,7 @@ public class ConfigureAction extends AbstractServerAction {
boolean changedValues = false;
// !!! do transfers first before setting defined values
+ StringBuilder outputBuffer = new StringBuilder(250);
for (ConfigureTask.Transfer transfer : transfers) {
switch (transfer.operation) {
case COPY:
@@ -194,9 +207,16 @@ public class ConfigureAction extends AbstractServerAction {
if (base.containsKey(transfer.fromKey)) {
newValues.put(transfer.toKey, base.get(transfer.fromKey));
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Copied {0}/{1}\n", configType, key));
} else if (StringUtils.isNotBlank(transfer.defaultValue)) {
newValues.put(transfer.toKey, transfer.defaultValue);
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Created {0}/{1} with default value {2}\n",
+ configType, transfer.toKey, transfer.defaultValue));
}
} else {
// !!! copying from another configuration
@@ -208,9 +228,18 @@ public class ConfigureAction extends AbstractServerAction {
if (otherValues.containsKey(transfer.fromKey)) {
newValues.put(transfer.toKey, otherValues.get(transfer.fromKey));
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Copied {0}/{1} to {2}\n",
+ transfer.fromType, transfer.fromKey, configType));
} else if (StringUtils.isNotBlank(transfer.defaultValue)) {
newValues.put(transfer.toKey, transfer.defaultValue);
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format(
+ "Created {0}/{1} with default value {2}\n", configType, transfer.toKey,
+ transfer.defaultValue));
}
}
}
@@ -222,9 +251,17 @@ public class ConfigureAction extends AbstractServerAction {
if (newValues.containsKey(transfer.fromKey)) {
newValues.put(transfer.toKey, newValues.remove(transfer.fromKey));
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Renamed {0}/{1} to {2}/{3}\n", configType,
+ transfer.fromKey, configType, transfer.toKey));
} else if (StringUtils.isNotBlank(transfer.defaultValue)) {
newValues.put(transfer.toKey, transfer.defaultValue);
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Created {0}/{1} with default value {2}\n",
+ configType, transfer.toKey, transfer.defaultValue));
}
break;
@@ -232,22 +269,39 @@ public class ConfigureAction extends AbstractServerAction {
if ("*".equals(transfer.deleteKey)) {
newValues.clear();
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Deleted all keys from {0}\n", configType));
+
for (String keeper : transfer.keepKeys) {
newValues.put(keeper, base.get(keeper));
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Preserved {0}/{1} after delete\n",
+ configType, keeper));
}
- // !!! with preserved edits, find the values that are different
- // from the stack-defined and keep them
+ // !!! with preserved edits, find the values that are different from
+ // the stack-defined and keep them - also keep values that exist in
+ // the config but not on the stack
if (transfer.preserveEdits) {
- List<String> edited = findChangedValues(clusterName, config);
+ List<String> edited = findValuesToPreserve(clusterName, config);
for (String changed : edited) {
newValues.put(changed, base.get(changed));
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Preserved {0}/{1} after delete\n",
+ configType, changed));
}
}
+
changedValues = true;
} else {
newValues.remove(transfer.deleteKey);
changedValues = true;
+
+ // append standard output
+ outputBuffer.append(MessageFormat.format("Deleted {0}/{1}\n", configType,
+ transfer.deleteKey));
}
break;
@@ -274,6 +328,7 @@ public class ConfigureAction extends AbstractServerAction {
// the configure being able to take a list of transfers without a
// key/value to set
newValues.put(key, value);
+ outputBuffer.append(MessageFormat.format("{0}/{1} changed to {2}\n", configType, key, value));
}
// !!! check to see if we're going to a new stack and double check the
@@ -283,8 +338,7 @@ public class ConfigureAction extends AbstractServerAction {
config.setProperties(newValues);
config.persist(false);
- return createCommandReport(0, HostRoleStatus.COMPLETED, "{}",
- MessageFormat.format("Updated configuration ''{0}''", configType), "");
+ return createCommandReport(0, HostRoleStatus.COMPLETED, "{}", outputBuffer.toString(), "");
}
// !!! values are different and within the same stack. create a new
@@ -308,37 +362,85 @@ public class ConfigureAction extends AbstractServerAction {
/**
- * @param clusterName the cluster name
- * @param config the config with the tag to find conflicts
- * @return the list of changed property keys
+ * Finds the values that should be preserved during a delete. This includes:
+ * <ul>
+ * <li>Properties that existed on the stack but were changed to a different
+ * value</li>
+ * <li>Properties that do not exist on the stack</li>
+ * </ul>
+ *
+ * @param clusterName
+ * the cluster name
+ * @param config
+ * the config with the tag to find conflicts
+ * @return the list of changed property keys
* @throws AmbariException
*/
- private List<String> findChangedValues(String clusterName, Config config)
+ private List<String> findValuesToPreserve(String clusterName, Config config)
throws AmbariException {
+ List<String> result = new ArrayList<String>();
Map<String, Map<String, ThreeWayValue>> conflicts =
m_mergeHelper.getConflicts(clusterName, config.getStackId());
Map<String, ThreeWayValue> conflictMap = conflicts.get(config.getType());
- if (null == conflictMap || conflictMap.isEmpty()) {
- return Collections.emptyList();
+ // process the conflicts, if any, and add them to the list
+ if (null != conflictMap && !conflictMap.isEmpty()) {
+ for (Map.Entry<String, ThreeWayValue> entry : conflictMap.entrySet()) {
+ ThreeWayValue twv = entry.getValue();
+ if (null == twv.oldStackValue) {
+ result.add(entry.getKey());
+ } else if (null != twv.savedValue && !twv.oldStackValue.equals(twv.savedValue)) {
+ result.add(entry.getKey());
+ }
+ }
}
- List<String> result = new ArrayList<String>();
- for (Map.Entry<String, ThreeWayValue> entry : conflictMap.entrySet()) {
- ThreeWayValue twv = entry.getValue();
- if (null == twv.oldStackValue) {
- result.add(entry.getKey());
- } else if (null != twv.savedValue && !twv.oldStackValue.equals(twv.savedValue)) {
- result.add(entry.getKey());
+ String configType = config.getType();
+ Cluster cluster = m_clusters.getCluster(clusterName);
+ StackId oldStack = cluster.getCurrentStackVersion();
+
+ // iterate over all properties for every cluster service; if the property
+ // has the correct config type (ie oozie-site or hdfs-site) then add it to
+ // the list of original stack propertiess
+ Set<String> stackPropertiesForType = new HashSet<String>(50);
+ for (String serviceName : cluster.getServices().keySet()) {
+ Set<PropertyInfo> serviceProperties = m_ambariMetaInfo.get().getServiceProperties(
+ oldStack.getStackName(), oldStack.getStackVersion(), serviceName);
+
+ for (PropertyInfo property : serviceProperties) {
+ String type = ConfigHelper.fileNameToConfigType(property.getFilename());
+ if (type.equals(configType)) {
+ stackPropertiesForType.add(property.getName());
+ }
}
}
- return result;
- }
+ // now iterate over all stack properties, adding them to the list if they
+ // match
+ Set<PropertyInfo> stackProperties = m_ambariMetaInfo.get().getStackProperties(
+ oldStack.getStackName(),
+ oldStack.getStackVersion());
+ for (PropertyInfo property : stackProperties) {
+ String type = ConfigHelper.fileNameToConfigType(property.getFilename());
+ if (type.equals(configType)) {
+ stackPropertiesForType.add(property.getName());
+ }
+ }
+ // see if any keys exist in the old config but not the the original stack
+ // for this config type; that means they were added and should be preserved
+ Map<String, String> base = config.getProperties();
+ Set<String> baseKeys = base.keySet();
+ for( String baseKey : baseKeys ){
+ if (!stackPropertiesForType.contains(baseKey)) {
+ result.add(baseKey);
+ }
+ }
+ return result;
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigMergeHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigMergeHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigMergeHelper.java
index c0fc596..ab19dc9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigMergeHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigMergeHelper.java
@@ -27,7 +27,6 @@ import java.util.regex.Pattern;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
-import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -51,9 +50,6 @@ public class ConfigMergeHelper {
@Inject
private Provider<AmbariMetaInfo> m_ambariMetaInfo;
- @Inject
- private Provider<RepositoryVersionDAO> repositoryVersionDaoProvider;
-
@SuppressWarnings("unchecked")
public Map<String, Map<String, ThreeWayValue>> getConflicts(String clusterName, StackId targetStack) throws AmbariException {
Cluster cluster = m_clusters.get().getCluster(clusterName);
@@ -98,7 +94,7 @@ public class ConfigMergeHelper {
if (null != config) {
Set<String> valueKeys = config.getProperties().keySet();
- customValueKeys = (Collection<String>) CollectionUtils.subtract(valueKeys, oldPairs.keySet());
+ customValueKeys = CollectionUtils.subtract(valueKeys, oldPairs.keySet());
}
if (null != customValueKeys) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
index b6ac9b9..dc970c8 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_client.py
@@ -19,6 +19,7 @@ limitations under the License.
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from falcon import falcon
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -52,7 +53,7 @@ class FalconClientLinux(FalconClient):
Logger.info("Executing Falcon Client Rolling Upgrade pre-restart")
conf_select.select(params.stack_name, "falcon", params.version)
- Execute(format("hdp-select set falcon-client {version}"))
+ hdp_select.select("falcon-client", params.version)
def security_status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
index 722f437..2598ec5 100644
--- a/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
+++ b/ambari-server/src/main/resources/common-services/FALCON/0.5.0.2.1/package/scripts/falcon_server.py
@@ -21,6 +21,7 @@ import falcon_server_upgrade
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import *
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
@@ -75,7 +76,7 @@ class FalconServerLinux(FalconServer):
Logger.info("Executing Falcon Server Rolling Upgrade pre-restart")
conf_select.select(params.stack_name, "falcon", params.version)
- Execute(format("hdp-select set falcon-server {version}"))
+ hdp_select.select("falcon-server", params.version)
falcon_server_upgrade.pre_start_restore()
def security_status(self, env):
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume_handler.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume_handler.py b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume_handler.py
index 8845a82..c7df0d8 100644
--- a/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume_handler.py
+++ b/ambari-server/src/main/resources/common-services/FLUME/1.4.0.2.0/package/scripts/flume_handler.py
@@ -23,9 +23,10 @@ from flume import flume
from flume import get_desired_state
from resource_management import *
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.flume_agent_helper import find_expected_agent_names
from resource_management.libraries.functions.flume_agent_helper import get_flume_status
-from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
+
import service_mapping
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -114,11 +115,11 @@ class FlumeHandler(Script):
# this function should not execute if the version can't be determined or
# is not at least HDP 2.2.0.0
- if not params.version or compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') < 0:
+ if not params.version or Script.is_hdp_stack_less_than("2.2"):
return
Logger.info("Executing Flume Rolling Upgrade pre-restart")
- Execute(format("hdp-select set flume-server {version}"))
+ hdp_select.select("flume-server", params.version)
flume_upgrade.pre_start_restore()
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py
index a331755..9036bb3 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/hbase_client.py
@@ -21,6 +21,7 @@ limitations under the License.
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from hbase import hbase
from ambari_commons import OSCheck, OSConst
from ambari_commons.os_family_impl import OsFamilyImpl
@@ -56,13 +57,13 @@ class HbaseClientDefault(HbaseClient):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hbase", params.version)
- Execute(format("hdp-select set hbase-client {version}"))
+ hdp_select.select("hbase-client", params.version)
# set all of the hadoop clients since hbase client is upgraded as part
# of the final "CLIENTS" group and we need to ensure that hadoop-client
# is also set
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/upgrade.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/upgrade.py b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/upgrade.py
index e4d4653..44bf958 100644
--- a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/upgrade.py
+++ b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/package/scripts/upgrade.py
@@ -22,6 +22,7 @@ from resource_management import *
from resource_management.core.resources.system import Execute
from resource_management.core import shell
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.decorator import retry
@@ -30,7 +31,7 @@ def prestart(env, hdp_component):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hbase", params.version)
- Execute("hdp-select set {0} {1}".format(hdp_component, params.version))
+ hdp_select.select(hdp_component, params.version)
def post_regionserver(env):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/datanode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/datanode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/datanode.py
index ad94b3b..fc54f73 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/datanode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/datanode.py
@@ -20,6 +20,7 @@ import datanode_upgrade
from hdfs_datanode import datanode
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, FILE_TYPE_XML
@@ -73,7 +74,7 @@ class DataNodeDefault(DataNode):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-hdfs-datanode {version}"))
+ hdp_select.select("hadoop-hdfs-datanode", params.version)
def post_rolling_restart(self, env):
Logger.info("Executing DataNode Rolling Upgrade post-restart")
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py
index 0a67ef2..961e644 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/hdfs_client.py
@@ -19,6 +19,7 @@ limitations under the License.
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_XML
@@ -61,7 +62,7 @@ class HdfsClientDefault(HdfsClient):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
def security_status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
index 0158644..ada05e1 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/journalnode.py
@@ -19,6 +19,7 @@ limitations under the License.
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, \
format_hdp_stack_version
from resource_management.libraries.functions.format import format
@@ -51,7 +52,7 @@ class JournalNodeDefault(JournalNode):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-hdfs-journalnode {version}"))
+ hdp_select.select("hadoop-hdfs-journalnode", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
index 9e6079a..864961e 100644
--- a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
+++ b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/package/scripts/namenode.py
@@ -23,6 +23,7 @@ import json
import tempfile
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_XML
@@ -111,7 +112,7 @@ class NameNodeDefault(NameNode):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-hdfs-namenode {version}"))
+ hdp_select.select("hadoop-hdfs-namenode", params.version)
def post_rolling_restart(self, env):
Logger.info("Executing Rolling Upgrade post-restart")
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py
index 2514ccf..7ae738a 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_client.py
@@ -20,6 +20,7 @@ limitations under the License.
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from hive import hive
from ambari_commons.os_family_impl import OsFamilyImpl
from ambari_commons import OSConst
@@ -55,7 +56,7 @@ class HiveClientDefault(HiveClient):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
index c1d145c..c5d30a1 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_metastore.py
@@ -21,6 +21,7 @@ limitations under the License.
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_XML
@@ -78,7 +79,7 @@ class HiveMetastoreDefault(HiveMetastore):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hive", params.version)
- Execute(format("hdp-select set hive-metastore {version}"))
+ hdp_select.select("hive-metastore", params.version)
def security_status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server.py
index a33857c..a41632e 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/hive_server.py
@@ -23,6 +23,7 @@ from resource_management import *
from hive import hive
from hive_service import hive_service
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_XML
@@ -98,7 +99,7 @@ class HiveServerDefault(HiveServer):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hive", params.version)
- Execute(format("hdp-select set hive-server2 {version}"))
+ hdp_select.select("hive-server2", params.version)
params.HdfsResource(InlineTemplate(params.mapreduce_tar_destination).get_content(),
type="file",
action="create_on_execute",
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_server.py b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_server.py
index 44df132..735590b 100644
--- a/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_server.py
+++ b/ambari-server/src/main/resources/common-services/HIVE/0.12.0.2.0/package/scripts/webhcat_server.py
@@ -20,6 +20,7 @@ Ambari Agent
"""
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
FILE_TYPE_XML
@@ -77,7 +78,7 @@ class WebHCatServerDefault(WebHCatServer):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
# webhcat has no conf, but uses hadoop home, so verify that regular hadoop conf is set
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hive-webhcat {version}"))
+ hdp_select.select("hive-webhcat", params.version)
def security_status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py
index ecdb798..22036f7 100644
--- a/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py
+++ b/ambari-server/src/main/resources/common-services/KAFKA/0.8.1.2.2/package/scripts/upgrade.py
@@ -21,6 +21,7 @@ limitations under the License.
from resource_management import *
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
def prestart(env, hdp_component):
@@ -28,4 +29,4 @@ def prestart(env, hdp_component):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "kafka", params.version)
- Execute("hdp-select set {0} {1}".format(hdp_component, params.version))
+ hdp_select.select(hdp_component, params.version)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
index 1e2060e..956d09b 100644
--- a/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
+++ b/ambari-server/src/main/resources/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py
@@ -20,6 +20,7 @@ limitations under the License.
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, validate_security_config_properties, get_params_from_filesystem, \
FILE_TYPE_XML
@@ -99,7 +100,7 @@ class KnoxGatewayDefault(KnoxGateway):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
upgrade.backup_data()
conf_select.select(params.stack_name, "knox", params.version)
- Execute(format("hdp-select set knox-server {version}"))
+ hdp_select.select("knox-server", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_client.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_client.py
index b72fc46..31807f5 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_client.py
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_client.py
@@ -21,6 +21,7 @@ limitations under the License.
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from oozie import oozie
from oozie_service import oozie_service
@@ -57,7 +58,7 @@ class OozieClient(Script):
Logger.info("Executing Oozie Client Rolling Upgrade pre-restart")
conf_select.select(params.stack_name, "oozie", params.version)
- Execute(format("hdp-select set oozie-client {version}"))
+ hdp_select.select("oozie-client", params.version)
# We substitute some configs (oozie.authentication.kerberos.principal) before generation (see oozie.py and params.py).
# This function returns changed configs (it's used for config generation before config download)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py
index dddebc9..611046e 100644
--- a/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py
+++ b/ambari-server/src/main/resources/common-services/OOZIE/4.0.0.2.0/package/scripts/oozie_server.py
@@ -26,6 +26,7 @@ from resource_management.libraries.functions import format
from resource_management.libraries.script import Script
from resource_management.libraries.functions import compare_versions
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format_hdp_stack_version
from resource_management.libraries.functions.security_commons import build_expectations
from resource_management.libraries.functions.security_commons import cached_kinit_executor
@@ -161,7 +162,7 @@ class OozieServerDefault(OozieServer):
oozie_server_upgrade.backup_configuration()
conf_select.select(params.stack_name, "oozie", params.version)
- Execute(format("hdp-select set oozie-server {version}"))
+ hdp_select.select("oozie-server", params.version)
oozie_server_upgrade.restore_configuration()
oozie_server_upgrade.prepare_libext_directory()
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
index 4b6cb88..7dc57a4 100644
--- a/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
+++ b/ambari-server/src/main/resources/common-services/PIG/0.12.0.2.0/package/scripts/pig_client.py
@@ -23,6 +23,7 @@ import sys
import os
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from pig import pig
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -47,7 +48,7 @@ class PigClientLinux(PigClient):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
def install(self, env):
self.install_packages(env)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/upgrade.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/upgrade.py b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/upgrade.py
index 43a0787..64549c3 100644
--- a/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/upgrade.py
+++ b/ambari-server/src/main/resources/common-services/RANGER/0.4.0/package/scripts/upgrade.py
@@ -20,6 +20,7 @@ limitations under the License.
"""
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.format import format
def prestart(env, hdp_component):
@@ -27,4 +28,4 @@ def prestart(env, hdp_component):
if params.version and params.stack_is_hdp22_or_further:
conf_select.select(params.stack_name, hdp_component, params.version)
- Execute("hdp-select set {0} {1}".format(hdp_component, params.version))
+ hdp_select.select(hdp_component, params.version)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
index eb83e98..e0ec7d4 100644
--- a/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
+++ b/ambari-server/src/main/resources/common-services/SLIDER/0.60.0.2.2/package/scripts/slider_client.py
@@ -20,6 +20,7 @@ limitations under the License.
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from slider import slider
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -36,14 +37,14 @@ class SliderClient(Script):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
- conf_select.select(params.stack_name, "slider", params.version)
- Execute(format("hdp-select set slider-client {version}"))
+ conf_select.select(params.stack_name, "slider", params.version)
+ hdp_select.select("slider-client", params.version)
# also set all of the hadoop clients since slider client is upgraded as
# part of the final "CLIENTS" group and we need to ensure that
# hadoop-client is also set
- conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ conf_select.select(params.stack_name, "hadoop", params.version)
+ hdp_select.select("hadoop-client", params.version)
@OsFamilyFuncImpl(os_family=OsFamilyImpl.DEFAULT)
def install(self, env):
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/job_history_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/job_history_server.py b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/job_history_server.py
index 8c05a8e..c96be5d 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/job_history_server.py
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/job_history_server.py
@@ -21,6 +21,7 @@ limitations under the License.
import sys
import os
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.format import format
from resource_management.libraries.functions.check_process_status import check_process_status
@@ -75,7 +76,8 @@ class JobHistoryServer(Script):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "spark", params.version)
- Execute(format("hdp-select set spark-historyserver {version}"))
+ hdp_select.select("spark-historyserver", params.version)
+
params.HdfsResource(InlineTemplate(params.tez_tar_destination).get_content(),
type="file",
action="create_on_execute",
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_client.py b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_client.py
index cc977d1..ce4cdcc 100644
--- a/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_client.py
+++ b/ambari-server/src/main/resources/common-services/SPARK/1.2.0.2.2/package/scripts/spark_client.py
@@ -21,6 +21,7 @@ limitations under the License.
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.core.exceptions import ComponentIsNotRunning
from resource_management.core.logger import Logger
@@ -51,7 +52,7 @@ class SparkClient(Script):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "spark", params.version)
- Execute(format("hdp-select set spark-client {version}"))
+ hdp_select.select("spark-client", params.version)
if __name__ == "__main__":
SparkClient().execute()
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop_client.py b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop_client.py
index ca26d10..0f0e90b 100644
--- a/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop_client.py
+++ b/ambari-server/src/main/resources/common-services/SQOOP/1.4.4.2.0/package/scripts/sqoop_client.py
@@ -22,6 +22,7 @@ from resource_management.core.exceptions import ClientComponentHasNoStatus
from resource_management.core.resources.system import Execute
from resource_management.libraries.script.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.format import format
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from sqoop import sqoop
@@ -52,7 +53,8 @@ class SqoopClientDefault(SqoopClient):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "sqoop", params.version)
- Execute(format("hdp-select set sqoop-client {version}"))
+ hdp_select.select("sqoop-client", params.version)
+
@OsFamilyImpl(os_family=OSConst.WINSRV_FAMILY)
class SqoopClientWindows(SqoopClient):
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
index 74cfc59..e1cb5ba 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/drpc_server.py
@@ -22,6 +22,7 @@ import sys
from resource_management.libraries.functions import check_process_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -53,7 +54,7 @@ class DrpcServer(Script):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-client {version}"))
+ hdp_select.select("storm-client", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
index f6af281..66b46c8 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus.py
@@ -23,6 +23,7 @@ from resource_management.libraries.functions import check_process_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import format
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from storm import storm
@@ -56,7 +57,7 @@ class NimbusDefault(Nimbus):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-nimbus {version}"))
+ hdp_select.select("storm-nimbus", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
index 310fec9..313bb17 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/nimbus_prod.py
@@ -23,6 +23,7 @@ from resource_management.libraries.script import Script
from storm import storm
from supervisord_service import supervisord_service, supervisord_check_status
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -48,7 +49,7 @@ class Nimbus(Script):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-nimbus {version}"))
+ hdp_select.select("storm-nimbus", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
index 6768dd4..9c36a78 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/rest_api.py
@@ -22,6 +22,7 @@ import sys
from resource_management.libraries.functions import check_process_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -52,7 +53,7 @@ class StormRestApi(Script):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-client {version}"))
+ hdp_select.select("storm-client", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
index 36e3ca8..bdb03df 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor.py
@@ -22,6 +22,7 @@ import sys
from resource_management.libraries.functions import check_process_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -74,7 +75,7 @@ class SupervisorDefault(Supervisor):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-supervisor {version}"))
+ hdp_select.select("storm-supervisor", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
index 7ce4764..bde533f 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/supervisor_prod.py
@@ -24,6 +24,7 @@ from service import service
from supervisord_service import supervisord_service, supervisord_check_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -49,7 +50,7 @@ class Supervisor(Script):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-supervisor {version}"))
+ hdp_select.select("storm-supervisor", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
index 4ab37c5..7c1fc6f 100644
--- a/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
+++ b/ambari-server/src/main/resources/common-services/STORM/0.9.1.2.1/package/scripts/ui_server.py
@@ -25,6 +25,7 @@ from service_check import ServiceCheck
from resource_management.libraries.functions import check_process_status
from resource_management.libraries.script import Script
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions import format
from resource_management.core.resources.system import Execute
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
@@ -77,7 +78,7 @@ class UiServerDefault(UiServer):
env.set_params(params)
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "storm", params.version)
- Execute(format("hdp-select set storm-client {version}"))
+ hdp_select.select("storm-client", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
index 7394e68..e6c92e1 100644
--- a/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
+++ b/ambari-server/src/main/resources/common-services/TEZ/0.4.0.2.1/package/scripts/tez_client.py
@@ -22,6 +22,7 @@ Ambari Agent
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from tez import tez
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyImpl
@@ -47,7 +48,7 @@ class TezClientLinux(TezClient):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
def install(self, env):
self.install_packages(env)
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py
index 9cd555d..f3b3d11 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/application_timeline_server.py
@@ -21,6 +21,7 @@ Ambari Agent
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties,\
@@ -71,7 +72,7 @@ class ApplicationTimelineServerDefault(ApplicationTimelineServer):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-yarn-timelineserver {version}"))
+ hdp_select.select("hadoop-yarn-timelineserver", params.version)
def status(self, env):
import status_params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py
index e625a0d..6b56511 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/historyserver.py
@@ -21,6 +21,7 @@ Ambari Agent
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.format import format
from resource_management.libraries.functions.security_commons import build_expectations, \
@@ -71,7 +72,7 @@ class HistoryServerDefault(HistoryServer):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-mapreduce-historyserver {version}"))
+ hdp_select.select("hadoop-mapreduce-historyserver", params.version)
params.HdfsResource(InlineTemplate(params.mapreduce_tar_destination).get_content(),
type="file",
action="create_on_execute",
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py
index 38775b6..5263d9f 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/mapreduce2_client.py
@@ -22,6 +22,7 @@ Ambari Agent
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from yarn import yarn
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyImpl
@@ -57,7 +58,7 @@ class MapReduce2ClientDefault(MapReduce2Client):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py
index f756c36..fd25651 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/nodemanager.py
@@ -23,6 +23,7 @@ import nodemanager_upgrade
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.format import format
from resource_management.libraries.functions.security_commons import build_expectations, \
@@ -73,7 +74,7 @@ class NodemanagerDefault(Nodemanager):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-yarn-nodemanager {version}"))
+ hdp_select.select("hadoop-yarn-nodemanager", params.version)
def post_rolling_restart(self, env):
Logger.info("Executing NodeManager Rolling Upgrade post-restart")
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py
index df41938..b0393a0 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/resourcemanager.py
@@ -21,6 +21,7 @@ Ambari Agent
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from resource_management.libraries.functions.version import compare_versions, format_hdp_stack_version
from resource_management.libraries.functions.security_commons import build_expectations, \
cached_kinit_executor, get_params_from_filesystem, validate_security_config_properties, \
@@ -95,7 +96,7 @@ class ResourcemanagerDefault(Resourcemanager):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-yarn-resourcemanager {version}"))
+ hdp_select.select("hadoop-yarn-resourcemanager", params.version)
def start(self, env, rolling_restart=False):
import params
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py
index 89e3a50..e58ea3c 100644
--- a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py
+++ b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/package/scripts/yarn_client.py
@@ -22,6 +22,7 @@ Ambari Agent
import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from yarn import yarn
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyImpl
@@ -57,7 +58,7 @@ class YarnClientDefault(YarnClient):
if params.version and compare_versions(format_hdp_stack_version(params.version), '2.2.0.0') >= 0:
conf_select.select(params.stack_name, "hadoop", params.version)
- Execute(format("hdp-select set hadoop-client {version}"))
+ hdp_select.select("hadoop-client", params.version)
if __name__ == "__main__":
http://git-wip-us.apache.org/repos/asf/ambari/blob/7e4cba5c/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
index f1cd7fd..6a6f2d1 100644
--- a/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
+++ b/ambari-server/src/main/resources/common-services/ZOOKEEPER/3.4.5.2.0/package/scripts/zookeeper.py
@@ -23,6 +23,7 @@ import sys
from resource_management import *
from resource_management.libraries.functions import conf_select
+from resource_management.libraries.functions import hdp_select
from ambari_commons import OSConst
from ambari_commons.os_family_impl import OsFamilyFuncImpl, OsFamilyImpl
@@ -75,7 +76,7 @@ def zookeeper(type = None, rolling_restart = False):
# This path may be missing after Ambari upgrade. We need to create it.
if (not rolling_restart) and (not os.path.exists("/usr/hdp/current/zookeeper-server")) and params.current_version:
conf_select(params.stack_name, "zookeeper", params.current_version)
- Execute(format("hdp-select set zookeeper-server {current_version}"))
+ hdp_select.select("zookeeper-server", params.version)
if (params.log4j_props != None):
File(os.path.join(params.config_dir, "log4j.properties"),