Re: [Puppet Users] using 'define': modelling a file-like construction.

2009-12-24 Thread Peter Meier
> Wouldn't this possibly have unintended consequences, or would the scope
> of the overrides be restricted to the define in this case?

afair it's restricted to the scope.

cheers pete


--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.




Re: [Puppet Users] using 'define': modelling a file-like construction.

2009-12-24 Thread Trevor Vaughan
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Wouldn't this possibly have unintended consequences, or would the scope
of the overrides be restricted to the define in this case?

Trevor

On 12/22/2009 08:14 AM, R.I.Pienaar wrote:
> hello,
> 
> You can use the ability to set defaults for resources:
> 
> define mfile($content = undef, $source = undef) {
> if $content {
> File[$name] {
> content => $content
> }
> } else {
> File[$name] {
> source => $source
> }
> }
> 
> file{$name: }
> }
> 
> 
> 
> - "Daniel Pittman"  wrote:
> 
>> G'day.
>>
>> I sometimes want to write a 'define' that wraps some higher level
>> behaviour
>> around a low level 'file' statement, akin to this:
>>
>>   define example ($source = false, $content = false) {
>> file { "/path/to/whatever/${name}":
>>   ensure => file, source => $source, content => $content,
>>   notify => Service["some-service"],
>>   etc, etc, etc
>> }
>>   }
>>
>> This is great, except it doesn't work.  It returns an error that
>> source is
>> nil, if I specify content, and that is that.
>>
>> Instead, I get to write out the same file stanza twice, once with
>> content and
>> once with source, as well as a third stanza that fails when neither is
>> set.
>>
>>
>> Wouldn't it be wonderful if there was a standard way to express this
>> idiom?
>>
>> Daniel
>>
>> ...now someone is gonna tell me that I missed something obvious, but
>> that is
>> fine with me: saving the time I waste on these is worth enough for me.
>> :)
>>
>> -- 
>> ✣ Daniel Pittman✉ dan...@rimspace.net☎ +61 401
>> 155 707
>>♽ made with 100 percent post-consumer electrons
>>
>> --
>>
>> You received this message because you are subscribed to the Google
>> Groups "Puppet Users" group.
>> To post to this group, send email to puppet-us...@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.
> 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAkszQy0ACgkQyjMdFR1108B18gCdFlXjDTAkiM7+6itiTS5DXab6
gAYAoKaRhcCPk9v0lc1ZxLb4hcNcUXNo
=t2F3
-END PGP SIGNATURE-

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.




Re: [Puppet Users] using 'define': modelling a file-like construction.

2009-12-22 Thread Trevor Vaughan
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

I'm not sure if this will work as I haven't tested it, but try setting
source and content to 'undef' (no quotes) instead of false.

Trevor

On 12/22/2009 08:00 AM, Daniel Pittman wrote:
> G'day.
> 
> I sometimes want to write a 'define' that wraps some higher level behaviour
> around a low level 'file' statement, akin to this:
> 
>   define example ($source = false, $content = false) {
> file { "/path/to/whatever/${name}":
>   ensure => file, source => $source, content => $content,
>   notify => Service["some-service"],
>   etc, etc, etc
> }
>   }
> 
> This is great, except it doesn't work.  It returns an error that source is
> nil, if I specify content, and that is that.
> 
> Instead, I get to write out the same file stanza twice, once with content and
> once with source, as well as a third stanza that fails when neither is set.
> 
> 
> Wouldn't it be wonderful if there was a standard way to express this idiom?
> 
> Daniel
> 
> ...now someone is gonna tell me that I missed something obvious, but that is
> fine with me: saving the time I waste on these is worth enough for me. :)
> 
-BEGIN PGP SIGNATURE-
Version: GnuPG v1.4.9 (GNU/Linux)

iEYEARECAAYFAksxdz8ACgkQyjMdFR1108DeswCeMoBu3E3/LeXuGzXqn9rUzVAF
u9AAoKwvA7MxlfhNAl9PD6pnFrQSB176
=q/Dw
-END PGP SIGNATURE-

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.




Re: [Puppet Users] using 'define': modelling a file-like construction.

2009-12-22 Thread R.I.Pienaar
hello,

You can use the ability to set defaults for resources:

define mfile($content = undef, $source = undef) {
if $content {
File[$name] {
content => $content
}
} else {
File[$name] {
source => $source
}
}

file{$name: }
}



- "Daniel Pittman"  wrote:

> G'day.
> 
> I sometimes want to write a 'define' that wraps some higher level
> behaviour
> around a low level 'file' statement, akin to this:
> 
>   define example ($source = false, $content = false) {
> file { "/path/to/whatever/${name}":
>   ensure => file, source => $source, content => $content,
>   notify => Service["some-service"],
>   etc, etc, etc
> }
>   }
> 
> This is great, except it doesn't work.  It returns an error that
> source is
> nil, if I specify content, and that is that.
> 
> Instead, I get to write out the same file stanza twice, once with
> content and
> once with source, as well as a third stanza that fails when neither is
> set.
> 
> 
> Wouldn't it be wonderful if there was a standard way to express this
> idiom?
> 
> Daniel
> 
> ...now someone is gonna tell me that I missed something obvious, but
> that is
> fine with me: saving the time I waste on these is worth enough for me.
> :)
> 
> -- 
> ✣ Daniel Pittman✉ dan...@rimspace.net☎ +61 401
> 155 707
>♽ made with 100 percent post-consumer electrons
> 
> --
> 
> You received this message because you are subscribed to the Google
> Groups "Puppet Users" group.
> To post to this group, send email to puppet-us...@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.

-- 
R.I.Pienaar

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.




[Puppet Users] using 'define': modelling a file-like construction.

2009-12-22 Thread Daniel Pittman
G'day.

I sometimes want to write a 'define' that wraps some higher level behaviour
around a low level 'file' statement, akin to this:

  define example ($source = false, $content = false) {
file { "/path/to/whatever/${name}":
  ensure => file, source => $source, content => $content,
  notify => Service["some-service"],
  etc, etc, etc
}
  }

This is great, except it doesn't work.  It returns an error that source is
nil, if I specify content, and that is that.

Instead, I get to write out the same file stanza twice, once with content and
once with source, as well as a third stanza that fails when neither is set.


Wouldn't it be wonderful if there was a standard way to express this idiom?

Daniel

...now someone is gonna tell me that I missed something obvious, but that is
fine with me: saving the time I waste on these is worth enough for me. :)

-- 
✣ Daniel Pittman✉ dan...@rimspace.net☎ +61 401 155 707
   ♽ made with 100 percent post-consumer electrons

--

You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@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.