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

Peter Slawski commented on BIGTOP-1689:
---------------------------------------

Great! I'm thinking the following for the program:
- It would be written in Groovy or Java -- I am assuming Groovy is the 
preference here. 
- The source shouldn't actual live under 
{{bigtop-packages/src/common/bigtop-utils/}}. There should be a proper location 
for the tools in bigtop-utils. How about adding a new directory under the root 
of the project called {{bigtop-utils}}?
- The usage of the program: 
{code}
$ configure --file /etc/hadoop/conf/yarn-site.xml --override --options 
'{"yarn.nodemanager.resource.cpu-vcores": 8}'
{code}
-* The user supplied options would be passed as JSON via  --options. Converting 
a hash to shell-escaped JSON can be do in puppet using ruby gems, json and 
shellwords: {{hash.to_json.shellescape}}
-* The --override flag would permit merging of additional options. Without it, 
merging would fail if there is an existing option specified in the file.


> puppet: Allow merging arbitrary site configuration
> --------------------------------------------------
>
>                 Key: BIGTOP-1689
>                 URL: https://issues.apache.org/jira/browse/BIGTOP-1689
>             Project: Bigtop
>          Issue Type: Improvement
>          Components: deployment
>    Affects Versions: 0.8.0
>            Reporter: Peter Slawski
>            Assignee: Peter Slawski
>             Fix For: 1.0.0
>
>         Attachments: BIGTOP-1689.1.patch
>
>
> Puppet should be flexible in allowing arbitrary configuration name value 
> pairs to be merged into a given site.xml file that was generated from a 
> template.
> For example, the following could be included in site.yaml which would add a 
> configuration entry for hadoop.tmp.dir in core-site.xml:
> {code}
> hadoop::common_hdfs::hadoop_core_site_overrides:
>   "hadoop.tmp.dir": "/mnt/var/lib/hadoop/tmp"
> {code}
> This could be implemented as a puppet custom-function taking in the output of 
> template:
> {code}
>     file {
>       "/etc/hadoop/conf/core-site.xml":
>         content => merge_site(template('hadoop/core-site.xml'),  
> $hadoop_core_site_overrides)
>         require => [Package["hadoop"]],
>     }
> {code}
> Perhaps another approach would be to have site.xml templates be created from 
> a single map of name value pairs. The merge would happen before the file 
> content is generated from the template.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to