Is this user on the Puppet server/master? Because Puppet functions are
evaluated there and never on the agent.

Regards
Andreas

On 03/09/2018 01:04 PM, Dirk Heinrichs wrote:
> Hi,
> 
>  
> 
> I’m trying to write a custom function to get the primary group of a
> given user. The following works in plain Ruby:
> 
>  
> 
> def primary_group_of(user:)
> 
>   require 'etc'
> 
>   return Etc.getgrgid(Etc.getpwnam(user).gid).name
> 
> end
> 
>  
> 
> puts primary_group_of(user: 'username' )
> 
>  
> 
> Translated into a Puppet function, it looks like:
> 
>  
> 
> Puppet::Functions.create_function(:'mylib::primary_group_of') do
> 
>   dispatch :primary_group_of do
> 
>     param 'String', :user
> 
>   end
> 
>  
> 
>   def primary_group_of(user)
> 
>     require 'etc'
> 
>     return Etc.getgrgid(Etc.getpwnam(user).gid).name
> 
>   end
> 
> end
> 
>  
> 
> But this, when executed from within a simple file resource like this
> 
>  
> 
> class testing {
> 
>   file { '/tmp/test':
> 
>     content => 'foo',
> 
>     owner   => 'username',
> 
>     group   => mylib::primary_group_of('username'),
> 
>   }
> 
> }
> 
>  
> 
> Only yields: “…Error while evaluating a Function Call, undefined method
> `gid' for nil:NilClass…”
> 
>  
> 
> Any hints as to what could be wrong here? Seems it doesn’t do the
> “require”, but I’m not sure. Documentation doesn’t say anything about
> using Ruby library modules.
> 
>  
> 
> Thanks…
> 
>  
> 
>                 Dirk
> 
>  
> 
> *Dirk Heinrichs*
> 
> Senior Systems Engineer, Delivery Pipeline
> 
> OpenText ™ Discovery | Recommind
> 
> *Email*: [email protected] <mailto:[email protected]>
> 
> *Website*: www.recommind.de <http://www.recommind.de/>
> 
> Recommind GmbH, Von-Liebig-Straße 1, 53359 Rheinbach
> 
> Vertretungsberechtigte Geschäftsführer John Marshall Doolittle, Gordon
> Davies, Roger Illing, Registergericht Amtsgericht Bonn, Registernummer
> HRB 10646
> 
> This e-mail may contain confidential and/or privileged information. If
> you are not the intended recipient (or have received this e-mail in
> error) please notify the sender immediately and destroy this e-mail. Any
> unauthorized copying, disclosure or distribution of the material in this
> e-mail is strictly forbidden
> 
> Diese E-Mail enthält vertrauliche und/oder rechtlich geschützte
> Informationen. Wenn Sie nicht der richtige Adressat sind oder diese
> E-Mail irrtümlich erhalten haben, informieren Sie bitte sofort den
> Absender und vernichten Sie diese Mail. Das unerlaubte Kopieren sowie
> die unbefugte Weitergabe dieser Mail sind nicht gestattet.
> 
>  
> 
> -- 
> 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 [email protected]
> <mailto:[email protected]>.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/puppet-users/BYAPR15MB2405BBEF9F2C108F0B2D54D0AADE0%40BYAPR15MB2405.namprd15.prod.outlook.com
> <https://groups.google.com/d/msgid/puppet-users/BYAPR15MB2405BBEF9F2C108F0B2D54D0AADE0%40BYAPR15MB2405.namprd15.prod.outlook.com?utm_medium=email&utm_source=footer>.
> For more options, visit https://groups.google.com/d/optout.

-- 
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 [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/6856a3d5-1673-bca4-3cd5-51207c3f2cfe%40puzzle.ch.
For more options, visit https://groups.google.com/d/optout.

Reply via email to