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()

Reply via email to