Thanks John. At least I know there is no way to improve my code.
I prefer to try to keep logic in the .pp files and out of the templates, 
just to make it easier to find.

On Thursday, October 4, 2012 1:02:35 AM UTC+10, jcbollinger wrote:
>
>
>
> On Tuesday, October 2, 2012 10:10:13 AM UTC-5, Guzmán Brasó wrote:
>>
>> I'm in no way a puppet guru.... but rewritting it didnt work? from a 
>> logic point of view this should work:
>>
>>
>> class ....
>>   $baseurl,
>>   $webapp_context_path = ''
>> ) {
>>   if ($webapp_context_path == '') {   
>>     # Try to get value from baseurl
>>     $webapp_context_path = regsubst($baseurl, '^https?://[^/]+(/.*)', 
>> '\1')
>>     if ($webapp_context_path == '') {
>>       #Set default
>>       $webapp_context_path = '/'
>>     }
>>  }  
>>  notify{"rewritted webapp_context_path='${webapp_context_path}' from 
>> url='${baseurl}'": }
>> }
>>
>>
>
> No, that won't work, because Puppet variables, including class and 
> definition parameters, can be assigned a value at most once.  There are 
> good reasons for that, but they're not really relevant to the present 
> question.
>  
> Anyway, for that very reason, constructs involving internal variables such 
> as $int_webapp_context_path are fairly standard practice in Puppet.  
> Among the alternatives could be to redesign your class parameterization 
> or to drop the adaptive behavior.  Or you could write a custom function 
> implementing the logic for context path selection, or you could put it into 
> your template instead of your class.
>
> (Note, by the way, that because you assign a default value of '/' to 
> $webapp_context_path in your parameter list, in the class body that 
> parameter will be observed to have an empty value only if such a value is 
> explicitly set when the class is declared.)
>
>
> John
>
> 

-- 
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/-/Bmju_PjXasEJ.
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