Repository: ambari
Updated Branches:
  refs/heads/branch-2.5 2dca96a52 -> ce8e1bd4a


AMBARI-19548 Auto instances cannot be created on cluster install (Ashwin Rajeev 
via gauravn7)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ce8e1bd4
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ce8e1bd4
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ce8e1bd4

Branch: refs/heads/branch-2.5
Commit: ce8e1bd4a37070d51add644e77459cedc000601a
Parents: 2dca96a
Author: Gaurav Nagar <[email protected]>
Authored: Mon Jan 16 18:36:28 2017 +0530
Committer: Gaurav Nagar <[email protected]>
Committed: Mon Jan 16 18:37:17 2017 +0530

----------------------------------------------------------------------
 .../apache/ambari/server/view/ViewRegistry.java | 29 +++++++++++---------
 1 file changed, 16 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/ce8e1bd4/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
index 608435d..a012d1e 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
@@ -117,6 +117,7 @@ import org.apache.ambari.view.events.Event;
 import org.apache.ambari.view.events.Listener;
 import org.apache.ambari.view.migration.ViewDataMigrationException;
 import org.apache.ambari.view.validation.Validator;
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.log4j.PropertyConfigurator;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -969,20 +970,18 @@ public class ViewRegistry {
         String viewName = viewEntity.getName();
         ViewConfig viewConfig = viewEntity.getConfiguration();
         AutoInstanceConfig autoConfig = viewConfig.getAutoInstance();
-        Collection<String> roles = autoConfig.getRoles();
+        Collection<String> roles = 
com.google.common.collect.Lists.newArrayList();
+        if (autoConfig != null && 
!CollectionUtils.isEmpty(autoConfig.getRoles())) {
+          roles.addAll(autoConfig.getRoles());
+        }
 
         try {
           if (checkAutoInstanceConfig(autoConfig, stackId, 
event.getServiceName(), serviceNames)) {
-
-            LOG.info("Auto creating instance of view " + viewName + " for 
cluster " + clusterName + ".");
-            ViewInstanceEntity viewInstanceEntity = 
createViewInstanceEntity(viewEntity, viewConfig, autoConfig);
-            viewInstanceEntity.setClusterHandle(clusterId);
-            installViewInstance(viewInstanceEntity);
-            setViewInstanceRoleAccess(viewInstanceEntity, roles);
+            installAutoInstance(clusterId, clusterName, viewEntity, viewName, 
viewConfig, autoConfig, roles);
           }
         } catch (Exception e) {
           LOG.error("Can't auto create instance of view " + viewName + " for 
cluster " + clusterName +
-              ".  Caught exception :" + e.getMessage(), e);
+            ".  Caught exception :" + e.getMessage(), e);
         }
       }
     } catch (AmbariException e) {
@@ -990,6 +989,14 @@ public class ViewRegistry {
     }
   }
 
+  private void installAutoInstance(Long clusterId, String clusterName, 
ViewEntity viewEntity, String viewName, ViewConfig viewConfig, 
AutoInstanceConfig autoConfig, Collection<String> roles) throws 
SystemException, ValidationException {
+    LOG.info("Auto creating instance of view " + viewName + " for cluster " + 
clusterName + ".");
+    ViewInstanceEntity viewInstanceEntity = 
createViewInstanceEntity(viewEntity, viewConfig, autoConfig);
+    viewInstanceEntity.setClusterHandle(clusterId);
+    installViewInstance(viewInstanceEntity);
+    setViewInstanceRoleAccess(viewInstanceEntity, roles);
+  }
+
   @Subscribe
   public void onClusterConfigFinishedEvent(ClusterConfigFinishedEvent event) {
     if (configuration.extractViewsAfterClusterConfig()) {
@@ -1860,11 +1867,7 @@ public class ViewRegistry {
         try {
 
           if (checkAutoInstanceConfig(autoInstanceConfig, stackId, service, 
serviceNames)) {
-            LOG.info("Auto creating instance of view " + viewName + " for 
cluster " + clusterName + ".");
-            ViewInstanceEntity viewInstanceEntity = 
createViewInstanceEntity(viewEntity, viewConfig, autoInstanceConfig);
-            viewInstanceEntity.setClusterHandle(clusterId);
-            installViewInstance(viewInstanceEntity);
-            setViewInstanceRoleAccess(viewInstanceEntity, roles);
+            installAutoInstance(clusterId, clusterName, viewEntity, viewName, 
viewConfig, autoInstanceConfig, roles);
           }
         } catch (Exception e) {
           LOG.error("Can't auto create instance of view " + viewName + " for 
cluster " + clusterName +

Reply via email to