Repository: ambari Updated Branches: refs/heads/branch-2.6 55d0db4af -> f67dd616d
AMBARI-21908. Server returns 500 error for create config group request. (swagle) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f67dd616 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f67dd616 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f67dd616 Branch: refs/heads/branch-2.6 Commit: f67dd616d6d61ce9f7d761cdd06f22abfa65111f Parents: 55d0db4 Author: Siddharth Wagle <[email protected]> Authored: Thu Sep 7 13:30:37 2017 -0700 Committer: Siddharth Wagle <[email protected]> Committed: Thu Sep 7 13:30:37 2017 -0700 ---------------------------------------------------------------------- .../server/controller/ConfigGroupRequest.java | 14 ++++++++++++-- .../internal/ConfigGroupResourceProvider.java | 19 +++++++++++-------- .../ambari/server/topology/AmbariContext.java | 4 ++-- ambari-server/src/main/resources/properties.json | 1 + 4 files changed, 26 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/f67dd616/ambari-server/src/main/java/org/apache/ambari/server/controller/ConfigGroupRequest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ConfigGroupRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ConfigGroupRequest.java index efa1a7e..4ea6aa3 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ConfigGroupRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ConfigGroupRequest.java @@ -28,18 +28,20 @@ public class ConfigGroupRequest { private String clusterName; private String groupName; private String tag; + private String serviceName; private String description; private String serviceConfigVersionNote; private Set<String> hosts; private Map<String, Config> configs; public ConfigGroupRequest(Long id, String clusterName, String groupName, - String tag, String description, Set<String> hosts, - Map<String, Config> configs) { + String tag, String serviceName, String description, + Set<String> hosts, Map<String, Config> configs) { this.id = id; this.clusterName = clusterName; this.groupName = groupName; this.tag = tag; + this.serviceName = serviceName; this.description = description; this.hosts = hosts; this.configs = configs; @@ -69,6 +71,14 @@ public class ConfigGroupRequest { this.tag = tag; } + public String getServiceName() { + return serviceName; + } + + public void setServiceName(String serviceName) { + this.serviceName = serviceName; + } + public String getDescription() { return description; } http://git-wip-us.apache.org/repos/asf/ambari/blob/f67dd616/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java index 0ea54cb..9bd10f1 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ConfigGroupResourceProvider.java @@ -62,6 +62,7 @@ import org.apache.ambari.server.state.ConfigFactory; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.configgroup.ConfigGroup; import org.apache.ambari.server.state.configgroup.ConfigGroupFactory; +import org.apache.commons.collections.MapUtils; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -84,6 +85,8 @@ public class ConfigGroupResourceProvider extends .getPropertyId("ConfigGroup", "group_name"); protected static final String CONFIGGROUP_TAG_PROPERTY_ID = PropertyHelper .getPropertyId("ConfigGroup", "tag"); + protected static final String CONFIGGROUP_SERVICENAME_PROPERTY_ID = PropertyHelper + .getPropertyId("ConfigGroup", "service_name"); protected static final String CONFIGGROUP_DESC_PROPERTY_ID = PropertyHelper .getPropertyId("ConfigGroup", "description"); protected static final String CONFIGGROUP_SCV_NOTE_ID = PropertyHelper @@ -494,20 +497,18 @@ public class ConfigGroupResourceProvider extends } } - private synchronized Set<ConfigGroupResponse> createConfigGroups - (Set<ConfigGroupRequest> requests) throws AmbariException, AuthorizationException { + private synchronized Set<ConfigGroupResponse> createConfigGroups(Set<ConfigGroupRequest> requests) + throws AmbariException, AuthorizationException { if (requests.isEmpty()) { LOG.warn("Received an empty requests set"); return null; } - Set<ConfigGroupResponse> configGroupResponses = new - HashSet<ConfigGroupResponse>(); + Set<ConfigGroupResponse> configGroupResponses = new HashSet<ConfigGroupResponse>(); Clusters clusters = getManagementController().getClusters(); - ConfigGroupFactory configGroupFactory = getManagementController() - .getConfigGroupFactory(); + ConfigGroupFactory configGroupFactory = getManagementController().getConfigGroupFactory(); for (ConfigGroupRequest request : requests) { @@ -550,8 +551,8 @@ public class ConfigGroupResourceProvider extends verifyHostList(cluster, hosts, request); - String serviceName = null; - if (request.getConfigs() != null && !request.getConfigs().isEmpty()) { + String serviceName = request.getServiceName(); + if (serviceName == null && !MapUtils.isEmpty(request.getConfigs())) { try { serviceName = cluster.getServiceForConfigTypes(request.getConfigs().keySet()); } catch (IllegalArgumentException e) { @@ -704,6 +705,7 @@ public class ConfigGroupResourceProvider extends configGroup.setName(request.getGroupName()); configGroup.setDescription(request.getDescription()); configGroup.setTag(request.getTag()); + configGroup.setServiceName(request.getServiceName()); if (serviceName != null) { cluster.createServiceConfigVersion(serviceName, getManagementController().getAuthName(), @@ -730,6 +732,7 @@ public class ConfigGroupResourceProvider extends (String) properties.get(CONFIGGROUP_CLUSTER_NAME_PROPERTY_ID), (String) properties.get(CONFIGGROUP_NAME_PROPERTY_ID), (String) properties.get(CONFIGGROUP_TAG_PROPERTY_ID), + (String) properties.get(CONFIGGROUP_SERVICENAME_PROPERTY_ID), (String) properties.get(CONFIGGROUP_DESC_PROPERTY_ID), null, null); http://git-wip-us.apache.org/repos/asf/ambari/blob/f67dd616/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java index da517f3..6a2d58d 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java @@ -769,8 +769,8 @@ public class AmbariContext { } }); - ConfigGroupRequest request = new ConfigGroupRequest( - null, clusterName, absoluteGroupName, service, "Host Group Configuration", + ConfigGroupRequest request = new ConfigGroupRequest(null, clusterName, + absoluteGroupName, service, service, "Host Group Configuration", Sets.newHashSet(filteredGroupHosts), serviceConfigs); // get the config group provider and create config group resource http://git-wip-us.apache.org/repos/asf/ambari/blob/f67dd616/ambari-server/src/main/resources/properties.json ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/resources/properties.json b/ambari-server/src/main/resources/properties.json index 80a86b8..228318d 100644 --- a/ambari-server/src/main/resources/properties.json +++ b/ambari-server/src/main/resources/properties.json @@ -97,6 +97,7 @@ "ConfigGroup/id", "ConfigGroup/cluster_name", "ConfigGroup/group_name", + "ConfigGroup/service_name", "ConfigGroup/tag", "ConfigGroup/description", "ConfigGroup/hosts",
