Apparently a template adds return on the end of the return string.  
Guessing this is to support the template concatenation for file content.  
Switched to inline_template and all works well.  Lesson learned.  
Appreciate your comments on this John.  It's nice to have second pair of 
eyes.

On Thursday, November 29, 2012 7:34:08 PM UTC-5, Schofield wrote:
>
>
>
> On Thursday, November 29, 2012 5:17:43 PM UTC-5, jcbollinger wrote:
>
>> Alternatively, if your approach is going to be to fiddle with the 
>> 'source' parameter then you might consider how to avoid subclassing at all.
>>
>
> Agreed. This is what I am focusing on. But have hit a snag I don't know 
> how to resolve.  My end goal is to have a patching mechanism for a JEE 
> container that does not have an installer.  Just a directory of files that 
> gets copied to the node.  I have verified that passing an array with source 
> directories of the patches before the JEE container files works perfectly.  
> I can add patches and roll them back easily.  This all works great when I 
> hard code the patch directories in an array before the jee container source 
> directory.  However I don't know when a patch will be released and I need 
> the flexibility to apply the patch to only certain nodes.  This means the 
> array set for the source has to be created dynamically.  I am using a 
> template to create the array from the patches passed in as parameters.
>
> class jee ($patches = []){
>   ...
>   file {$install_dir:
>     ensure          => directory,
>     source          => split(template('jee/source.erb'),','),
>     sourceselect => 'all'
>     recurse         => true,
>     ...
>   }
> }
>
> Everything in mind tells me this should work.  However when I try to run 
> the above code I get the following error.
> "Error: /Stage[main]/jee/File[/usr/local/jee]: Failed to generate 
> additional resources using 'eval_generate: wrong header line format"
> I have seen the "wrong header line format" before and it is usually an 
> incorrect quotation someplace.  However in this case I am relying on the 
> split function to transform the string returned from the template into an 
> array. I am not sure where to begin debugging this. Any ideas?
>
>  
>
>>   One way would be to load your source(s) via hiera.  Another might 
>> leverage File's behavior of skipping sources that don't exist: for example, 
>> if one or more of your sources are declared in terms of the $hostname fact, 
>> then you can create hostname-based overrides entirely within your source 
>> data for only the nodes you want
>>
>  
> I'm not too keen on the $hostname solution. I feel that is what nodes are 
> for so don't want to obfuscate how files get applied by creating another 
> means to do the same thing.  Plus this would become a management nightmare 
> given the use case I described earlier.
>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/8Fip-9fPFmYJ.
To post to this group, send email to puppet-users@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to