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].