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

jluniya pushed a commit to branch branch-feature-AMBARI-14714
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714 by 
this push:
     new e5a1f08  [AMBARI-23394] Group_list should also look for properties in 
cluster … (#820)
e5a1f08 is described below

commit e5a1f087c0327e36040e0b5d6ba736c71b88f034
Author: mradha25 <[email protected]>
AuthorDate: Wed Mar 28 17:45:49 2018 -0700

    [AMBARI-23394] Group_list should also look for properties in cluster … 
(#820)
    
    * [AMBARI-23394] Group_list should also look for properties in cluster 
settings besides desired configs
    
    * [AMBARI-23394] Group_list should also look for properties in cluster 
settings besides desired configs - Review comments
    
    * [AMBARI-23394] Group_list should also look for properties in cluster 
settings besides desired configs - Fix cluster_settings.xml
---
 .../controller/AmbariManagementControllerImpl.java | 22 +++++++------
 .../apache/ambari/server/state/ConfigHelper.java   | 36 ++++++++++++++++------
 .../ambari/server/state/cluster/ClusterImpl.java   |  1 -
 .../src/main/resources/cluster-settings.xml        | 10 ++++++
 4 files changed, 49 insertions(+), 20 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 529c078..d4e40cc 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
@@ -2762,34 +2762,38 @@ public class AmbariManagementControllerImpl implements 
AmbariManagementControlle
 
     Map<String, String> hostParams = new TreeMap<>();
 
-    List<OsSpecific.Package> packages =
-        getPackagesForStackServiceHost(ambariMetaInfo.getStack(stackId), 
serviceInfo, hostParams, osFamily);
-    String packageList = gson.toJson(packages);
-    hostParams.put(PACKAGE_LIST, packageList);
-
+    if (roleCommand.equals(RoleCommand.INSTALL)) {
+      List<OsSpecific.Package> packages =
+              getPackagesForStackServiceHost(ambariMetaInfo.getStack(stackId), 
serviceInfo, hostParams, osFamily);
+      String packageList = gson.toJson(packages);
+      commandParams.put(PACKAGE_LIST, packageList);
+    }
     Set<PropertyInfo> stackProperties = 
ambariMetaInfo.getStackProperties(stackInfo.getName(), stackInfo.getVersion());
 
-    Set<String> userSet = 
configHelper.getPropertyValuesWithPropertyType(PropertyType.USER, cluster, 
clusterDesiredConfigs, servicesMap, stackProperties);
+    Set<PropertyInfo> clusterProperties = 
ambariMetaInfo.getClusterProperties();
+
+    Set<String> userSet = 
configHelper.getPropertyValuesWithPropertyType(PropertyType.USER, cluster, 
clusterDesiredConfigs, servicesMap, stackProperties, clusterProperties);
     String userList = gson.toJson(userSet);
     hostParams.put(USER_LIST, userList);
 
     //Create a user_group mapping and send it as part of the hostLevelParams
     Map<String, Set<String>> userGroupsMap = configHelper.createUserGroupsMap(
-      cluster, clusterDesiredConfigs, servicesMap, stackProperties);
+      cluster, clusterDesiredConfigs, servicesMap, stackProperties, 
clusterProperties);
     String userGroups = gson.toJson(userGroupsMap);
     hostParams.put(USER_GROUPS, userGroups);
 
+
     // Set exec command with 'ClusterSettings' map
     execCmd.setClusterSettings(cluster.getClusterSettingsNameValueMap());
 
     // Set exec command with 'StackSettings' map
     
execCmd.setStackSettings(ambariMetaInfo.getStackSettingsNameValueMap(stackId));
 
-    Set<String> groupSet = 
configHelper.getPropertyValuesWithPropertyType(PropertyType.GROUP, cluster, 
clusterDesiredConfigs, servicesMap, stackProperties);
+    Set<String> groupSet = 
configHelper.getPropertyValuesWithPropertyType(PropertyType.GROUP, cluster, 
clusterDesiredConfigs, servicesMap, stackProperties, clusterProperties);
     String groupList = gson.toJson(groupSet);
     hostParams.put(GROUP_LIST, groupList);
 
-    Map<PropertyInfo, String> notManagedHdfsPathMap = 
configHelper.getPropertiesWithPropertyType(PropertyType.NOT_MANAGED_HDFS_PATH, 
cluster, clusterDesiredConfigs, servicesMap, stackProperties);
+    Map<PropertyInfo, String> notManagedHdfsPathMap = 
configHelper.getPropertiesWithPropertyType(PropertyType.NOT_MANAGED_HDFS_PATH, 
cluster, clusterDesiredConfigs, servicesMap, stackProperties, 
clusterProperties);
     Set<String> notManagedHdfsPathSet = 
configHelper.filterInvalidPropertyValues(notManagedHdfsPathMap, 
NOT_MANAGED_HDFS_PATH_LIST);
     String notManagedHdfsPathList = gson.toJson(notManagedHdfsPathSet);
     hostParams.put(NOT_MANAGED_HDFS_PATH_LIST, notManagedHdfsPathList);
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java 
b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
index 3f962dc..3cd15ae 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
@@ -692,7 +692,8 @@ public class ConfigHelper {
     StackInfo stack = ambariMetaInfo.getStack(stackId.getStackName(), 
stackId.getStackVersion());
     Map<String, ServiceInfo> servicesMap = 
ambariMetaInfo.getServices(stack.getName(), stack.getVersion());
     Set<PropertyInfo> stackProperties = 
ambariMetaInfo.getStackProperties(stack.getName(), stack.getVersion());
-    return createUserGroupsMap(cluster, desiredConfigs, servicesMap, 
stackProperties);
+    Set<PropertyInfo> clusterProperties = 
ambariMetaInfo.getClusterProperties();
+    return createUserGroupsMap(cluster, desiredConfigs, servicesMap, 
stackProperties, clusterProperties);
   }
 
   /***
@@ -706,18 +707,18 @@ public class ConfigHelper {
    */
   public Map<String, Set<String>> createUserGroupsMap(
     Cluster cluster, Map<String, DesiredConfig> desiredConfigs,
-    Map<String, ServiceInfo> servicesMap, Set<PropertyInfo> stackProperties) 
throws AmbariException {
+    Map<String, ServiceInfo> servicesMap, Set<PropertyInfo> stackProperties, 
Set<PropertyInfo> clusterProperties) throws AmbariException {
 
     Map<String, Set<String>> userGroupsMap = new HashMap<>();
     Map<PropertyInfo, String> userProperties = getPropertiesWithPropertyType(
-      PropertyType.USER, cluster, desiredConfigs, servicesMap, 
stackProperties);
+      PropertyType.USER, cluster, desiredConfigs, servicesMap, 
stackProperties, clusterProperties);
     Map<PropertyInfo, String> groupProperties = getPropertiesWithPropertyType(
-      PropertyType.GROUP, cluster, desiredConfigs, servicesMap, 
stackProperties);
+      PropertyType.GROUP, cluster, desiredConfigs, servicesMap, 
stackProperties, clusterProperties);
 
     if(userProperties != null && groupProperties != null) {
       for(Map.Entry<PropertyInfo, String> userProperty : 
userProperties.entrySet()) {
         PropertyInfo userPropertyInfo = userProperty.getKey();
-        String userPropertyValue = userProperty.getValue();
+         String userPropertyValue = userProperty.getValue();
         if(userPropertyInfo.getPropertyValueAttributes() != null
           && 
userPropertyInfo.getPropertyValueAttributes().getUserGroupEntries() != null) {
           Set<String> groupPropertyValues = new HashSet<>();
@@ -761,8 +762,8 @@ public class ConfigHelper {
     StackInfo stack = ambariMetaInfo.getStack(stackId.getStackName(), 
stackId.getStackVersion());
     Map<String, ServiceInfo> servicesMap = 
ambariMetaInfo.getServices(stack.getName(), stack.getVersion());
     Set<PropertyInfo> stackProperties = 
ambariMetaInfo.getStackProperties(stack.getName(), stack.getVersion());
-
-    return getPropertiesWithPropertyType(propertyType, cluster, 
desiredConfigs, servicesMap, stackProperties);
+    Set<PropertyInfo> clusterProperties = 
ambariMetaInfo.getClusterProperties();
+    return getPropertiesWithPropertyType(propertyType, cluster, 
desiredConfigs, servicesMap, stackProperties, clusterProperties);
   }
 
   /***
@@ -776,7 +777,7 @@ public class ConfigHelper {
    */
   public Map<PropertyInfo, String> getPropertiesWithPropertyType(PropertyType 
propertyType, Cluster cluster,
                                                                  Map<String, 
DesiredConfig> desiredConfigs, Map<String, ServiceInfo> servicesMap,
-                                                                 
Set<PropertyInfo> stackProperties) throws AmbariException {
+                                                                 
Set<PropertyInfo> stackProperties, Set<PropertyInfo> clusterProperties) throws 
AmbariException {
     Map<String, Config> actualConfigs = new HashMap<>();
     Map<PropertyInfo, String> result = new HashMap<>();
 
@@ -822,6 +823,13 @@ public class ConfigHelper {
       }
     }
 
+    //Fetch properties from clustersettings
+    for (PropertyInfo clusterProperty : clusterProperties) {
+      if (clusterProperty.getPropertyTypes().contains(propertyType)) {
+        result.put(clusterProperty, 
cluster.getClusterSetting(clusterProperty.getName()).getClusterSettingValue());
+        }
+      }
+
     return result;
   }
 
@@ -840,8 +848,9 @@ public class ConfigHelper {
     StackInfo stack = ambariMetaInfo.getStack(stackId.getStackName(), 
stackId.getStackVersion());
     Map<String, ServiceInfo> servicesMap = 
ambariMetaInfo.getServices(stack.getName(), stack.getVersion());
     Set<PropertyInfo> stackProperties = 
ambariMetaInfo.getStackProperties(stack.getName(), stack.getVersion());
+    Set<PropertyInfo> clusterProperties = 
ambariMetaInfo.getClusterProperties();
 
-    return getPropertyValuesWithPropertyType(propertyType, cluster, 
desiredConfigs, servicesMap, stackProperties);
+    return getPropertyValuesWithPropertyType(propertyType, cluster, 
desiredConfigs, servicesMap, stackProperties, clusterProperties);
   }
 
   /***
@@ -857,7 +866,7 @@ public class ConfigHelper {
   public Set<String> getPropertyValuesWithPropertyType(PropertyType 
propertyType,
                                                        Cluster cluster, 
Map<String, DesiredConfig> desiredConfigs,
                                                        Map<String, 
ServiceInfo> servicesMap,
-                                                       Set<PropertyInfo> 
stackProperties) throws AmbariException {
+                                                       Set<PropertyInfo> 
stackProperties, Set<PropertyInfo> clusterProperties) throws AmbariException {
     Map<String, Config> actualConfigs = new HashMap<>();
     Set<String> result = new HashSet<>();
 
@@ -903,6 +912,13 @@ public class ConfigHelper {
       }
     }
 
+    //Fetch all properties from clusterSettings which have given property type
+    for(PropertyInfo clusterProperty : clusterProperties){
+      if(clusterProperty.getPropertyTypes().contains(propertyType)){
+        
result.add(cluster.getClusterSetting(clusterProperty.getName()).getClusterSettingValue());
+      }
+    }
+
     return result;
   }
 
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
index bf7701f..8d75747 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java
@@ -1286,7 +1286,6 @@ public class ClusterImpl implements Cluster {
     return clusterSetting;
   }
 
-
   @Override
   public ClusterSetting getClusterSetting(Long clusterSettingId) throws 
ClusterSettingNotFoundException {
     ClusterSetting clusterSetting = clusterSettingsById.get(clusterSettingId);
diff --git a/ambari-server/src/main/resources/cluster-settings.xml 
b/ambari-server/src/main/resources/cluster-settings.xml
index 817a31c..6eb81dd 100644
--- a/ambari-server/src/main/resources/cluster-settings.xml
+++ b/ambari-server/src/main/resources/cluster-settings.xml
@@ -157,6 +157,16 @@
         <value-attributes>
             <type>user</type>
             <overridable>false</overridable>
+            <user-groups>
+                <property>
+                    <type>hadoop-env</type>
+                    <name>proxyuser_group</name>
+                </property>
+                <property>
+                    <type>cluster-settings</type>
+                    <name>user_group</name>
+                </property>
+            </user-groups>
         </value-attributes>
         <on-ambari-upgrade add="true"/>
     </property>

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to