On Nov 26, 2009, at 12:03 AM, David Schmitt wrote:

> Douglas Garstang wrote:
>> The docs at http://reductivelabs.com/trac/puppet/wiki/LanguageTutorial say:
>> 
>> file { "/etc/config":
>>    owner => $operatingsystem ? {
>>        "sunos"   => "adm",
>>        "redhat"  => "bin",
>>        default => undef,
>>    },
>> }
>> 
>> I have this..
>> 
>>    file {
>>        "home_dirs":
>>            name => $domain ? {
>>                "corp.xxx.com" => "/u",
>>                "fr.xxx.com" => "/home",
>>            },
>>            ensure => directory;
>>    }
>> 
>> 
>> As a result of this, on the remove end in the log files I see:
>> 
>> (//Node[corporate_node]/ldap::client/File[home_dirs]/ensure) created
>> 
>> which in my opinion is confusing and hard to read. I want to see:
>> 
>> (//Node[corporate_node]/ldap::client/File[/home]/ensure) created
>> 
>> How can I refactor the manifest to do this? Basically I want to remove
>> the use of the symbolic 'home_dirs" name.
> 
>>    $blah = $domain ? {
>>                "corp.xxx.com" => "/u",
>>                "fr.xxx.com" => "/home",
>>            }
>>    file {
>>        $blah:
>>            ensure => directory;
>>    }
> 
> 
> Regards, DavidS
> 
> 

$blah = $domain ? {
        "corp.xxx.com" => "/u",
        "fr.xxx.com" => "/home",
        }

file {
        $blah:
                ensure => directory;
        }

That would work, however, if there was a ZZZ.xxx.com domain, it would fail.
I suggest wrapping a case statement around the variable definition which would 
allow for a "default" value.

case $domain {
corp.xxxx.com:  {
        $homedir = "/u"
        }
fr.xxx.com:     {
        $homedir = "/home"
        }
default:        {
        $homedir = "/home"
        }

file {
        $homedir:
                ensure => directory;
        }

It is a few more lines typed out but it is easy to read. 

-Jason

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.


Reply via email to