You should set the path based on the value of $myclass::provider:

if $myclass::provider == 'package' {
  test = '/path/a'
} 
else {
  test = '/path/b'
}

On Tuesday, November 27, 2012 3:58:05 PM UTC-7, Yanis Guenane wrote:
>
> *Specification* : my manifest look more like this
>
> class myclass ($provider = 'package') {
>   case $provider {
>     'package' : {
>       package {'mypackage' :
>         ensure => latest,
>       }
>     }
>     'source' : {
>       exec {'install procedure' :
>      }
>    }
> }
>
> define myclass::mydefine() {
>   $test = get_test_path()
>
>   file {'myconf' :
>     content => templates('mod/myconf'),
>   }
> }
>
>
> On Tuesday, November 27, 2012 11:23:50 PM UTC+1, Yanis Guenane wrote:
>>
>> Hi all,
>>
>> I have a manifest that look like this 
>>
>> case $provider {
>>   'package' : {
>>     package {'mypackage' :
>>       ensure => latest,
>>     }
>>   }
>>   'source' : {
>>      exec {'install procedure' :
>>      }
>>    }
>>
>> $test = get_test_path()
>>
>> file {'myconf' :
>>    content => templates('mod/myconf'),
>> }
>>
>> Within mycon template I have a variable 'test' that depending if the 
>> package was installed from source of from the package will have a different 
>> path.
>> Issue is that the function get_test_path() seems to be done at compile 
>> time, so the first time I run it will always result in an erroneous answer. 
>> After a second run it will be fine.
>>
>> Does any one can provide guidance on how I could make it work at the 
>> first run ?
>>
>> Thank you,
>>
>

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