Repository: ambari Updated Branches: refs/heads/branch-feature-AMBARI-21348 49d76e1ed -> dc9031404
AMBARI-21372. Allow Dependency Checks to be Skipped During Stack Package Installation Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/dc903140 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/dc903140 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/dc903140 Branch: refs/heads/branch-feature-AMBARI-21348 Commit: dc9031404123b0c8d9e136a8d1f912a70d164209 Parents: 49d76e1 Author: Attila Doroszlai <[email protected]> Authored: Thu Jun 29 13:18:49 2017 +0200 Committer: Attila Doroszlai <[email protected]> Committed: Fri Jun 30 21:14:07 2017 +0200 ---------------------------------------------------------------------- .../java/org/apache/ambari/server/agent/ExecutionCommand.java | 1 + .../internal/ClusterStackVersionResourceProvider.java | 7 ++++++- .../main/resources/custom_actions/scripts/install_packages.py | 6 +++++- 3 files changed, 12 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/dc903140/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java index edf1251..32fb37b 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/ExecutionCommand.java @@ -410,6 +410,7 @@ public class ExecutionCommand extends AgentCommand { String STACK_VERSION = "stack_version"; String SERVICE_REPO_INFO = "service_repo_info"; String PACKAGE_LIST = "package_list"; + String IGNORE_PACKAGE_DEPENDENCIES = "ignore_package_dependencies"; String JDK_LOCATION = "jdk_location"; String JAVA_HOME = "java_home"; String JAVA_VERSION = "java_version"; http://git-wip-us.apache.org/repos/asf/ambari/blob/dc903140/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java index 621d71e..64e0b14 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProvider.java @@ -113,6 +113,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou protected static final String CLUSTER_STACK_VERSION_HOST_STATES_PROPERTY_ID = PropertyHelper.getPropertyId("ClusterStackVersions", "host_states"); protected static final String CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID = PropertyHelper.getPropertyId("ClusterStackVersions", "repository_version"); protected static final String CLUSTER_STACK_VERSION_STAGE_SUCCESS_FACTOR = PropertyHelper.getPropertyId("ClusterStackVersions", "success_factor"); + protected static final String CLUSTER_STACK_VERSION_IGNORE_PACKAGE_DEPENDENCIES = PropertyHelper.getPropertyId("ClusterStackVersions", KeyNames.IGNORE_PACKAGE_DEPENDENCIES); /** * Forces the {@link HostVersionEntity}s to a specific @@ -150,7 +151,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou CLUSTER_STACK_VERSION_CLUSTER_NAME_PROPERTY_ID, CLUSTER_STACK_VERSION_STACK_PROPERTY_ID, CLUSTER_STACK_VERSION_VERSION_PROPERTY_ID, CLUSTER_STACK_VERSION_HOST_STATES_PROPERTY_ID, CLUSTER_STACK_VERSION_STATE_PROPERTY_ID, CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID, - CLUSTER_STACK_VERSION_STAGE_SUCCESS_FACTOR, CLUSTER_STACK_VERSION_FORCE); + CLUSTER_STACK_VERSION_STAGE_SUCCESS_FACTOR, CLUSTER_STACK_VERSION_IGNORE_PACKAGE_DEPENDENCIES, CLUSTER_STACK_VERSION_FORCE); private static Map<Type, String> keyPropertyIds = ImmutableMap.<Type, String> builder() .put(Type.Cluster, CLUSTER_STACK_VERSION_CLUSTER_NAME_PROPERTY_ID) @@ -532,6 +533,9 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou successFactor = Float.valueOf(successFactorProperty); } + Object ignorePackageDependenciesProperty = propertyMap.get(CLUSTER_STACK_VERSION_IGNORE_PACKAGE_DEPENDENCIES); + String ignorePackageDependencies = Boolean.valueOf(String.valueOf(ignorePackageDependenciesProperty)).toString(); + boolean hasStage = false; ArrayList<Stage> stages = new ArrayList<Stage>(batchCount); @@ -574,6 +578,7 @@ public class ClusterStackVersionResourceProvider extends AbstractControllerResou ActionExecutionContext actionContext = getHostVersionInstallCommand(repoVersionEnt, cluster, managementController, ami, stackId, serviceNames, perOsRepos, stage, host); if (null != actionContext) { + actionContext.getParameters().put(KeyNames.IGNORE_PACKAGE_DEPENDENCIES, ignorePackageDependencies); try { actionExecutionHelper.get().addExecutionCommandsToStage(actionContext, stage, null); hasStage = true; http://git-wip-us.apache.org/repos/asf/ambari/blob/dc903140/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py b/ambari-server/src/main/resources/custom_actions/scripts/install_packages.py index 3a93389..a6645be 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 @@ -72,9 +72,11 @@ class InstallPackages(Script): signal.signal(signal.SIGINT, self.abort_handler) self.repository_version_id = None + self.ignore_package_dependencies = False # Select dict that contains parameters try: + self.ignore_package_dependencies = 'ignore_package_dependencies' in config['roleParams'] and config['roleParams']['ignore_package_dependencies'] self.repository_version = config['roleParams']['repository_version'] base_urls = json.loads(config['roleParams']['base_urls']) package_list = json.loads(config['roleParams']['package_list']) @@ -402,7 +404,9 @@ class InstallPackages(Script): if package_version_string and (package_version_string in package): Package(package, action="remove") - if not verifyDependencies(): + if self.ignore_package_dependencies: + Logger.info("Ignoring package dependencies") + elif not verifyDependencies(): ret_code = 1 Logger.logger.error("Failure while verifying dependencies") Logger.logger.error("*******************************************************************************")
