[ 
https://issues.apache.org/jira/browse/AMBARI-3606?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13811267#comment-13811267
 ] 

Nate Cole commented on AMBARI-3606:
-----------------------------------

# When we updated cluster and host overrides a few months back, a requirement 
was to be keep the audit trail, in the DB, of who was making config changes and 
when.  I can see a similar need for ConfigGroups.  This includes a line in the 
"config change log file" too.
# Typically, entities are not exposed directly outside the encompassing impl - 
in this case, {{ConfigGroupResourceProvider.java}} should not have:
{noformat}
+      // Save
+      ConfigGroupEntity configGroupEntity = configGroup.getConfigGroupEntity();
+      configGroupEntity.setGroupName(request.getGroupName());
+      configGroupEntity.setTag(request.getTag());
+      configGroupEntity.setDescription(request.getDescription());
+      configGroup.persist();
{noformat}
a) This negates history if you are only updating the row (see first point) and 
b) even if no history is required, then {{ConfigGroup}} should have an 
{{update(String, String, String)}} instead that updates/saves the entity.  Also 
need cluster and possibly CG read/write locks around it too.
# {{ConfigGroupConfigMappingDAO.removeAllByGroup(Long)}} - the argument is a 
Long, but the entity call specifies Integer.class.  Same in 
{{ConfigGroupHostMappingDAO. removeAllByGroup(Long groupId)}}
# (Minor nit) Javadoc missing for new methods on {{Cluster.java}}, partial 
javadoc in {{ConfigGroup.java}}


> Add ConfigGroup resource provider to support API calls
> ------------------------------------------------------
>
>                 Key: AMBARI-3606
>                 URL: https://issues.apache.org/jira/browse/AMBARI-3606
>             Project: Ambari
>          Issue Type: Task
>          Components: controller
>    Affects Versions: 1.4.2
>            Reporter: Siddharth Wagle
>            Assignee: Siddharth Wagle
>             Fix For: 1.4.3
>
>         Attachments: AMBARI-3606.patch
>
>
> Configuration group or Config group (CG) is type of Ambari resource that 
> supports grouping of configuration resources and host resources for a 
> service, service component or host component. Host is identified using the 
> registered hostname of the host and the configuration resource is identified 
> by the type and tag. The CG will have a unique name and CRUD operations will 
> be supported on a CG using the unique group name.
> *GET*
> Get a collections of Config group resources for a service. Query example does 
> not show the expanded view.
> *POST*
> Create a Config group, list of hosts or configurations is not a required 
> field. If the configuration object contains properties, the Ambari server 
> will create a new configuration resource with the new type and tag or throw 
> appropriate exception. Properties provides only the key value pairs which 
> have been changed. These will be applied on the cluster level configurations.
> *PUT*
> Update a config group definition, this API call would expect the object to be 
> sent in its entirety and will atomically update the resource. PUT call can 
> accept properties as well.
> *DELETE*
> Delete a config group resource, this will not do a cascade delete of any 
> other resource.



--
This message was sent by Atlassian JIRA
(v6.1#6144)

Reply via email to