Repository: ambari Updated Branches: refs/heads/branch-feature-AMBARI-21450 804e21183 -> 348f44e7b
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/348f44e7 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/348f44e7 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/348f44e7 Branch: refs/heads/branch-feature-AMBARI-21450 Commit: 348f44e7b4eb7ab5533a8b8dcc865d1bcca6092b Parents: 804e211 Author: Attila Doroszlai <[email protected]> Authored: Thu Jun 29 13:18:49 2017 +0200 Committer: Jonathan Hurley <[email protected]> Committed: Fri Jul 21 10:55:24 2017 -0400 ---------------------------------------------------------------------- .../internal/ClusterStackVersionResourceProvider.java | 8 +++++++- .../resources/custom_actions/scripts/install_packages.py | 7 +++++-- 2 files changed, 12 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/348f44e7/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 d87d7a4..f07ecad 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 @@ -38,6 +38,7 @@ import org.apache.ambari.server.actionmanager.ActionManager; import org.apache.ambari.server.actionmanager.RequestFactory; import org.apache.ambari.server.actionmanager.Stage; import org.apache.ambari.server.actionmanager.StageFactory; +import org.apache.ambari.server.agent.ExecutionCommand.KeyNames; import org.apache.ambari.server.api.services.AmbariMetaInfo; import org.apache.ambari.server.configuration.Configuration; import org.apache.ambari.server.controller.ActionExecutionContext; @@ -103,6 +104,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 @@ -140,7 +142,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) @@ -492,6 +494,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<>(batchCount); @@ -537,6 +542,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/348f44e7/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 9a132df..c0b0e23 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 @@ -69,6 +69,7 @@ class InstallPackages(Script): signal.signal(signal.SIGINT, self.abort_handler) self.repository_version_id = None + self.ignore_package_dependencies = 'ignore_package_dependencies' in config['roleParams'] and config['roleParams']['ignore_package_dependencies'] base_urls = [] # Select dict that contains parameters @@ -393,7 +394,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("*******************************************************************************") @@ -462,4 +465,4 @@ class InstallPackages(Script): if __name__ == "__main__": - InstallPackages().execute() \ No newline at end of file + InstallPackages().execute()
