You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2018/11/27 12:23:43 UTC

[ambari] branch trunk updated: [AMBARI-24914] Block Ozone datanode co-location with HDFS Datanode when added though the API - additional fix (dsen) (#2654)

This is an automated email from the ASF dual-hosted git repository.

dsen pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 02dd59b  [AMBARI-24914] Block Ozone datanode co-location with HDFS Datanode when added though the API - additional fix (dsen) (#2654)
02dd59b is described below

commit 02dd59b6319a8f1ad15ad1c36dfb74aa7f74f3c4
Author: Dmitry Sen <ds...@apache.org>
AuthorDate: Tue Nov 27 14:23:39 2018 +0200

    [AMBARI-24914] Block Ozone datanode co-location with HDFS Datanode when added though the API - additional fix (dsen) (#2654)
---
 .../server/controller/AmbariManagementControllerImpl.java    | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 096fc83..465d1ee 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -757,7 +757,9 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
       throw new DuplicateResourceException(msg + names);
     }
 
-    validateExclusiveDependencies(hostComponentNames);
+    if (!isBlueprintProvisioned) {
+      validateExclusiveDependencies(hostComponentNames);
+    }
 
     // set restartRequired flag for  monitoring services
     setMonitoringServicesRestartRequired(requests);
@@ -788,7 +790,13 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
 
             for (DependencyInfo dependencyInfo : dependencyInfos) {
               if ("host".equals(dependencyInfo.getScope()) && "exclusive".equals(dependencyInfo.getType())) {
-                Service depService = clusters.getCluster(clusterEntry.getKey()).getService(dependencyInfo.getServiceName());
+                Service depService;
+                try {
+                  depService = clusters.getCluster(clusterEntry.getKey()).getService(dependencyInfo.getServiceName());
+                } catch (ServiceNotFoundException e) {
+                  LOG.debug("Skipping dependency " + dependencyInfo + " for " + serviceEntry.getKey() + " since the dependent service is not installed ");
+                  continue;
+                }
                 if (depService != null && depService.getServiceComponents().containsKey(dependencyInfo.getComponentName())) {
                   ServiceComponent dependentSC = depService.getServiceComponent(dependencyInfo.getComponentName());
                   if (dependentSC != null) {