Re: [Puppet Users] Recent 5.5.x point releases are throwing some warnings for me

2019-06-14 Thread lhu
Hi John,

Would you have any idea why this would fail 
file
#puppet parser validate adhoc.pp
Warning: Unacceptable location. The name 'adhoc' is unacceptable in file 
'/opt/puppetlabs/puppet/modules/adhoc/manifests/adhoc.pp' (file: 
/opt/puppetlabs/puppet/modules/adhoc/manifests/adhoc.pp, line: 1, column: 1)

adhoc.pp file:

class adhoc {


}

I put the file under
/opt/puppetlabs/puppet/modules/adhoc/manifests
this is running puppet 5.5 on a new install

Thanks,
Leo

On Wednesday, August 29, 2018 at 9:58:32 AM UTC-4, Henrik Lindberg wrote:
>
> On 2018-08-29 15:11, jcbollinger wrote: 
> > 
> > 
> > On Tuesday, August 28, 2018 at 12:13:15 PM UTC-5, kris.b...@puppet.com 
> > wrote: 
> > 
> > 
> > Hi Jon, 
> > 
> > As you have read, this is part of our work implementing errors to 
> > enforce the standards set down in PUP-1434.  In particular, your 
> > example '$module_path/seed/manifests/init.pp' looks like it is in 
> > the init file of module 'seed'.  Assuming that is what you meant, 
> > anything starting with 'seed' would be OK in that file, e.g. 'seed', 
> > 'seed::remote_file', 'seed::foo::remote_file' would all work.  Note 
> > that as part of point 4. of PUP-1434 (now being implemented in the 
> > work of PUP-9020), you will also not be allowed to put things like 
> > resources in the top level, but instead should include your 
> > resources in a class, define, function, or type declaration. 
> > 
> > 
> > As a matter of style, the usual recommendation is that furthermore, 
> > every class and defined type definition be located in its own file 
> > , 
> > named as predicted from its fully-qualified name.  Of course, this is 
> > coupled with assigning an appropriate fully-qualified name.  It is 
> > important to understand that class and type names in Puppet are 
> > independent of the pathnames of the files in which the class and type 
> > definitions appear.  The importance of the pathnames is limited to 
> > enabling Puppet to /find/ type and class definitions at runtime. 
> > 
> > 
>
> Not quite - what is now starting to be enforced is that definitions 
> must be made in a file that is on an accepted path for that definition. 
>
> Best, 
> - henrik 
>
> > John 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Puppet Users" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> > an email to puppet...@googlegroups.com  
> > . 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/puppet-users/916271cc-6a49-4374-afe2-d6fe0dff297d%40googlegroups.com
>  
> > <
> https://groups.google.com/d/msgid/puppet-users/916271cc-6a49-4374-afe2-d6fe0dff297d%40googlegroups.com?utm_medium=email_source=footer>.
>  
>
> > For more options, visit https://groups.google.com/d/optout. 
>
>
> -- 
>
> Visit my Blog "Puppet on the Edge" 
> http://puppet-on-the-edge.blogspot.se/ 
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/dc9b55e8-f5c3-4622-a223-0d5df43e36db%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: [Puppet Users] Recent 5.5.x point releases are throwing some warnings for me

2019-06-17 Thread lhu
Thanks Ben.

Would you know why this wouldn't work? I have the module manifest folder 
under adhoc/pakg/dan/manifest/

#puppet parser validate init.pp

Warning: Unacceptable location. The name 'adhoc::pkg::dan::init' is 
unacceptable in file 
'/opt/puppetlabs/puppet/modules/adhoc/pkg/dan/manifests/init.pp' (file: 
/opt/puppetlabs/puppet/modules/adhoc/pkg/dan/manifests/init.pp, line: 1, 
column: 1)


So I assumed with the init.pp file this would work? 
class adhoc::pkg::dan {


}

I also tried just using the module name prior to the manifest folder but 
that didn't work as well. 


On Friday, June 14, 2019 at 6:34:34 PM UTC-4, Ben Ford wrote:
>
> Yes. A class without a namespace must be named the same as the module 
> containing it, *and be in the init.pp file*.
>
> In other words, your /opt/puppetlabs/puppet/modules/adhoc/manifests/
> *adhoc*.pp file should be /opt/puppetlabs/puppet/modules/adhoc/manifests/
> *init*.pp.
>
> See https://puppet.com/docs/puppet/latest/modules_fundamentals.html for 
> more information.
>
> On Fri, Jun 14, 2019 at 1:06 PM lhu > wrote:
>
>> Hi John,
>>
>> Would you have any idea why this would fail 
>> file
>> #puppet parser validate adhoc.pp
>> Warning: Unacceptable location. The name 'adhoc' is unacceptable in file 
>> '/opt/puppetlabs/puppet/modules/adhoc/manifests/adhoc.pp' (file: 
>> /opt/puppetlabs/puppet/modules/adhoc/manifests/adhoc.pp, line: 1, column: 1)
>>
>> adhoc.pp file:
>>
>> class adhoc {
>>
>>
>> }
>>
>> I put the file under
>> /opt/puppetlabs/puppet/modules/adhoc/manifests
>> this is running puppet 5.5 on a new install
>>
>> Thanks,
>> Leo
>>
>> On Wednesday, August 29, 2018 at 9:58:32 AM UTC-4, Henrik Lindberg wrote:
>>>
>>> On 2018-08-29 15:11, jcbollinger wrote: 
>>> > 
>>> > 
>>> > On Tuesday, August 28, 2018 at 12:13:15 PM UTC-5, kris.b...@puppet.com 
>>> > wrote: 
>>> > 
>>> > 
>>> > Hi Jon, 
>>> > 
>>> > As you have read, this is part of our work implementing errors to 
>>> > enforce the standards set down in PUP-1434.  In particular, your 
>>> > example '$module_path/seed/manifests/init.pp' looks like it is in 
>>> > the init file of module 'seed'.  Assuming that is what you meant, 
>>> > anything starting with 'seed' would be OK in that file, e.g. 
>>> 'seed', 
>>> > 'seed::remote_file', 'seed::foo::remote_file' would all work.  
>>> Note 
>>> > that as part of point 4. of PUP-1434 (now being implemented in the 
>>> > work of PUP-9020), you will also not be allowed to put things like 
>>> > resources in the top level, but instead should include your 
>>> > resources in a class, define, function, or type declaration. 
>>> > 
>>> > 
>>> > As a matter of style, the usual recommendation is that furthermore, 
>>> > every class and defined type definition be located in its own file 
>>> > <https://puppet.com/docs/puppet/5.5/style_guide.html#separate-files>, 
>>> > named as predicted from its fully-qualified name.  Of course, this is 
>>> > coupled with assigning an appropriate fully-qualified name.  It is 
>>> > important to understand that class and type names in Puppet are 
>>> > independent of the pathnames of the files in which the class and type 
>>> > definitions appear.  The importance of the pathnames is limited to 
>>> > enabling Puppet to /find/ type and class definitions at runtime. 
>>> > 
>>> > 
>>>
>>> Not quite - what is now starting to be enforced is that definitions 
>>> must be made in a file that is on an accepted path for that definition. 
>>>
>>> Best, 
>>> - henrik 
>>>
>>> > John 
>>> > 
>>> > -- 
>>> > You received this message because you are subscribed to the Google 
>>> > Groups "Puppet Users" group. 
>>> > To unsubscribe from this group and stop receiving emails from it, send 
>>> > an email to puppet...@googlegroups.com 
>>> > <mailto:puppet-users+unsubscr...@googlegroups.com>. 
>>> > To view this discussion on the web visit 
>>> > 
>>> https://groups.google.com/d/msgid/puppet-users/916271cc-6a49-4374-afe2-d6fe0dff297d%40googlegroups.com
>>>  
>>> > <
>>> https://groups.google.com/d/msgid/puppet-users/916271cc-6a49-4374-afe2-d6fe0dff297d%40googlegro

Re: [Puppet Users] Recent 5.5.x point releases are throwing some warnings for me

2019-06-19 Thread lhu
I think I got it. I was confused because of the manifest path and the 
special init.pp main class. Didn't realize the init.pp requires to be in 
the top main levels and for subdirectories classes it has to be within 
manifest path. 

In our scenario, we used the pkg directory within adhoc to push pkgs 
forward depending on the version. So for instance, we would have 
/opt/puppetlabs/puppet/modules/adhoc/pkg/adhoc-0.1.1/manifests/{init.pp,etc} 
which we would have a script that pushes it into Redhat Satellite depending 
on the package release required. 

I think in our scenario it should be fine since Satellite ends up looking 
at it as 
/opt/puppetlabs/puppet/modules/adhoc/manifests
in the end. I was just testing if all the puppet code was working since 
running "puppet parser validate [file]" would return those warnings. 

Thanks for the explanation! 

On Tuesday, June 18, 2019 at 9:06:42 AM UTC-4, jcbollinger wrote:
>
>
>
> On Monday, June 17, 2019 at 9:09:52 AM UTC-5, lhu wrote:
>>
>> Thanks Ben.
>>
>> Would you know why this wouldn't work? I have the module manifest folder 
>> under adhoc/pkg/dan/manifest/
>>
>> #puppet parser validate init.pp
>>
>> Warning: Unacceptable location. The name 'adhoc::pkg::dan::init' is 
>> unacceptable in file 
>> '/opt/puppetlabs/puppet/modules/adhoc/pkg/dan/manifests/init.pp' (file: 
>> /opt/puppetlabs/puppet/modules/adhoc/pkg/dan/manifests/init.pp, line: 1, 
>> column: 1)
>>
>>
>
> I don't quite follow what you're trying to do there.  Your module's name 
> is "adhoc" (it *cannot* be "adhoc::pkg::dan" because the colon (:) is not 
> among the characters allowed in module or class names).  With that being 
> the case, the subdirectories of the module layout belong under adhoc/, 
> not deeper in the tree.  In particular, a class named 
> adhoc::pkg::dan::init belongs in file adhoc/manifests/pkg/dan/init.pp.  
> I'm not a fan of such a deep naming structure, but that would work.
>
> Note also that class names of the form ::init are reserved, 
> but if you *do* have a deeper tree then you can have classes whose last 
> name segment is "init" at deeper levels.
>
>  
>
>>
>> So I assumed with the init.pp file this would work? 
>> class adhoc::pkg::dan {
>>
>>
>> }
>>
>>
> No. If /opt/puppetlabs/puppet/modules/adhoc/pkg were in your modulepath 
> then you could put the main class of module "dan" in the file you name, i.e.
>
> class dan {
> }
>
> That's the only way it works with your placement of the "manifests" 
> directory, but DON'T DO THAT.  Setting up a modulepath in containing pairs 
> of directories where one is nested inside the other is confusing and 
> unnecessary, not to mention that it triggers bugs in some versions of 
> Puppet.
>
>  
>
>> I also tried just using the module name prior to the manifest folder but 
>> that didn't work as well.
>>
>
> If you want a class named adhoc::pkg::dan then it belongs in a file named 
> adhoc/manifests/pkg/dan.pp, relative to some folder in your modulepath.  
> The init.pp filename is special only for a module main class, and 
> therefore only at the top level of the module.
>
>
> John
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/fb4b739f-8abb-4c8e-8696-984ace4a516b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.