The point of the "require" parameter is to define a dependency
relationship. In the example you gave, it doesn't really make sense to have
the exec require a class that does nothing (test2::foo), so you can drop
the require.

On the other hand, if the exec actually needed test2::foo to work correctly
(for example, if test2::foo created a shell script that the exec needed to
run), you would need that require or your catalog would likely fail to
apply.

See here for more info:
http://docs.puppetlabs.com/references/stable/metaparameter.html#require

On Thu, May 17, 2012 at 1:06 PM, LTH <lthar...@vcu.edu> wrote:

> On Thursday, May 17, 2012 11:23:40 AM UTC-4, James Sweeny wrote:
>>
>> You can't require Class['test2::foo'] unless it's already available where
>> you're requiring it. You need to include test2::foo in test2::bar.
>>
>>
> Thanks.
>
> If I include test2:foo in test2::bar, do I still need  require =>
> [Class['test2::foo'] on the exec?  In testing this, it seems that I don't.
>
>
>
>
> On Thu, May 17, 2012 at 10:53 AM, LTH wrote:
>>
>>> Hello,
>>>
>>> I'm having some trouble with subclasses accessing other subclasses
>>> within the same main class.
>>>
>>> I have boiled it down a general case.  I have the following files:
>>>
>>> ## /etc/puppet/modules/test1
>>> class test1 {
>>>
>>>   class {'test2::bar':}
>>>
>>> }
>>>
>>> ## /etc/puppet/modules/test2/**init.pp
>>> class test2 {
>>>   class {test2::foo}
>>>   class {test2::bar}
>>>   class {test2::baz}
>>> }
>>>
>>> ## /etc/puppet/modules/test2/foo.**pp
>>> class test2::foo {
>>>      # do something here in foo
>>>
>>> }
>>>
>>> ## /etc/puppet/modules/test2/bar.**pp
>>> class test2::bar {
>>>      # do something here that requires test2::foo
>>>   exec { 'bar_in_tmp':
>>>     path    => '/usr/bin:/usr/sbin:/bin',
>>>     command => "touch /tmp/bar",
>>>     creates => '/tmp/bar',
>>>     require => [
>>>     Class['test2::foo'],
>>>                 ],
>>>   }
>>>
>>> }
>>>
>>> ## /etc/puppet/modules/test2/baz.**pp
>>>
>>> class test2::baz {
>>>   # do something unwanted here
>>>
>>>
>>> }
>>>
>>> When the agent runs it dies saying "Could not find dependence
>>> Class['Test2::Foo']  for Exec['bar_in_tmp']"
>>>
>>> Now if I change that line in test1 to just class {'test2':} it runs
>>> without error.  However since the main class call test2::baz, it does more
>>> than I wanted.  Am I not understanding something?  How do I just do bar and
>>> foo?
>>>
>>> Thanks in advance,
>>>
>>> -LTH
>>>
>>>
>>>
>>>
>>>  --
>>> 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/-/**QJOSn1NqhEsJ<https://groups.google.com/d/msg/puppet-users/-/QJOSn1NqhEsJ>
>>> .
>>> To post to this group, send email to puppet-users@googlegroups.com.
>>> To unsubscribe from this group, send email to puppet-users+unsubscribe@*
>>> *googlegroups.com <puppet-users%2bunsubscr...@googlegroups.com>.
>>> For more options, visit this group at http://groups.google.com/**
>>> group/puppet-users?hl=en<http://groups.google.com/group/puppet-users?hl=en>
>>> .
>>>
>>
>>
>>
>> --
>>
>> James Sweeny
>> Professional Services
>> http://puppetlabs.com/
>>
>>
>>  --
> 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/-/MqrvCA3LpnYJ.
>
> 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.
>



-- 

James Sweeny
Professional Services
http://puppetlabs.com/

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
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