Jira (PUP-2149) Deprecate implicit creation of symlinks when file ensure parameter is unknown

2 views
Skip to first unread message

Garrett Guillotte (JIRA)

unread,
Sep 18, 2015, 2:44:05 PM9/18/15
to puppe...@googlegroups.com
Garrett Guillotte commented on Bug PUP-2149
 
Re: Deprecate implicit creation of symlinks when file ensure parameter is unknown

Spotted and noted this in Puppet Fundamentals. If you have a syntax issue (say, ensure => director instead of ensure => directory), Puppet creates a symlink.

Removing implicit symlink creation would break manifests that rely on it. As it's not a best practice, a warning would be useful for spotting unintentional syntax issues and alerting people who use it intentionally that it's not a recommended practice.

Add Comment Add Comment
 
This message was sent by Atlassian JIRA (v6.4.11#64026-sha1:78f6ec4)
Atlassian logo

Nicholas Fagerlund (JIRA)

unread,
Sep 18, 2015, 2:47:06 PM9/18/15
to puppe...@googlegroups.com

Nicholas Fagerlund (JIRA)

unread,
Sep 18, 2015, 2:48:02 PM9/18/15
to puppe...@googlegroups.com
Nicholas Fagerlund commented on Bug PUP-2149
 
Re: Deprecate implicit creation of symlinks when file ensure parameter is unknown

Setting proposed version to start deprecation warnings per conversation w/ Kylo Ginsberg; gonna make a docs ticket for that, plus a removal ticket targeted at 5.0.

Kylo Ginsberg (JIRA)

unread,
Sep 18, 2015, 4:27:34 PM9/18/15
to puppe...@googlegroups.com

Steve Barlow (JIRA)

unread,
Sep 23, 2015, 5:29:05 PM9/23/15
to puppe...@googlegroups.com
Steve Barlow updated an issue
Change By: Steve Barlow
Fix Version/s: PUP 4.3.0
Fix Version/s: PUP 4.x

Geoff Nichols (JIRA)

unread,
Apr 6, 2017, 9:45:06 AM4/6/17
to puppe...@googlegroups.com
Geoff Nichols updated an issue
Change By: Geoff Nichols
Fix Version/s: PUP 4.y
Fix Version/s: PUP 5.y
This message was sent by Atlassian JIRA (v6.4.14#64029-sha1:ae256fe)
Atlassian logo

Charlie Sharpsteen (JIRA)

unread,
May 5, 2017, 1:44:03 PM5/5/17
to puppe...@googlegroups.com

Nicholas Fagerlund (JIRA)

unread,
May 16, 2017, 1:50:03 PM5/16/17
to puppe...@googlegroups.com

Nicholas Fagerlund (JIRA)

unread,
May 16, 2017, 1:51:04 PM5/16/17
to puppe...@googlegroups.com

Moses Mendoza (JIRA)

unread,
May 18, 2017, 1:54:33 PM5/18/17
to puppe...@googlegroups.com

Josh Cooper (JIRA)

unread,
Mar 15, 2018, 8:12:03 PM3/15/18
to puppe...@googlegroups.com
Josh Cooper updated an issue
Change By: Josh Cooper
Sub-team: Coremunity
This message was sent by Atlassian JIRA (v7.7.1#77002-sha1:e75ca93)
Atlassian logo

Eric Sorenson (JIRA)

unread,
Mar 19, 2018, 5:23:04 PM3/19/18
to puppe...@googlegroups.com
Eric Sorenson updated an issue
Change By: Eric Sorenson
This manifest creates a bogus symlink. My contention is that it should reject the invalid attribute value and not create a symlink.
{code}
# [eric@cloudline]~% puppet apply -e ' " file { '/tmp/jenny': ensure => symlink, } "
Debug: Failed to load library 'selinux' for feature 'selinux'
Notice: Compiled catalog for breve cloudline . wifi.puppetlabs.net localdomain in environment production in 0. 12 02 seconds
Debug: Creating default schedules
Debug: Using settings: adding file resource 'confdir': 'File[/etc/puppet]{:path=>"/etc/puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Failed to load library 'shadow' for feature 'libshadow'
Debug: Puppet::Type::User::ProviderUseradd: file useradd does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
Debug: Puppet::Type::User::ProviderPw: file pw does not exist
Debug: Puppet::Type::User::ProviderUser_role_add: file useradd does not exist
Debug: /User[puppet]: Provider directoryservice does not support features libuser; not managing attribute forcelocal
Debug: Executing '/usr/bin/dscl . read /Users/puppet'
Debug: Puppet::Type::Group::ProviderGroupadd: file groupadd does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::Group::ProviderLdap: feature ldap is missing
Debug: Puppet::Type::Group::ProviderPw: file pw does not exist
Debug: /Group[puppet]: Provider directoryservice does not support features libuser; not managing attribute forcelocal
Debug: Executing '/usr/bin/dscl -plist . -list /Groups'
Debug: Executing '/usr/bin/dscl -plist . -read /Groups/puppet'
Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:path=>"/var/lib/puppet", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'logdir': 'File[/var/lib/puppet/log]{:path=>"/var/lib/puppet/log", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'statedir': 'File[/var/lib/puppet/state]{:path=>"/var/lib/puppet/state", :mode=>"1755", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'rundir': 'File[/var/lib/puppet/run]{:path=>"/var/lib/puppet/run", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'libdir': 'File[/var/lib/puppet/lib]{:path=>"/var/lib/puppet/lib", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'certdir': 'File[/etc/puppet/ssl/certs]{:path=>"/etc/puppet/ssl/certs", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'ssldir': 'File[/etc/puppet/ssl]{:path=>"/etc/puppet/ssl", :mode=>"771", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'publickeydir': 'File[/etc/puppet/ssl/public_keys]{:path=>"/etc/puppet/ssl/public_keys", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'requestdir': 'File[/etc/puppet/ssl/certificate_requests]{:path=>"/etc/puppet/ssl/certificate_requests", :mode=>"755", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'privatekeydir': 'File[/etc/puppet/ssl/private_keys]{:path=>"/etc/puppet/ssl/private_keys", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'privatedir': 'File[/etc/puppet/ssl/private]{:path=>"/etc/puppet/ssl/private", :mode=>"750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'statefile': 'File[/var/lib/puppet/state/state.yaml]{:path=>"/var/lib/puppet/state/state.yaml", :mode=>"660", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'clientyamldir': 'File[/var/lib/puppet/client_yaml]{:path=>"/var/lib/puppet/client_yaml", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'client_datadir': 'File[/var/lib/puppet/client_data]{:path=>"/var/lib/puppet/client_data", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'clientbucketdir': 'File[/var/lib/puppet/clientbucket]{:path=>"/var/lib/puppet/clientbucket", :mode=>"750", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'lastrunfile': 'File[/var/lib/puppet/state/last_run_summary.yaml]{:path=>"/var/lib/puppet/state/last_run_summary.yaml", :mode=>"644", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'lastrunreport': 'File[/var/lib/puppet/state/last_run_report.yaml]{:path=>"/var/lib/puppet/state/last_run_report.yaml", :mode=>"640", :ensure=>:file, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'graphdir': 'File[/var/lib/puppet/state/graphs]{:path=>"/var/lib/puppet/state/graphs", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: Using settings: adding file resource 'pluginfactdest': 'File[/var/lib/puppet/facts.d]{:path=>"/var/lib/puppet/facts.d", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}'
Debug: /File[/var/lib/puppet/log]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/run]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
Debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl]
Debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet]
Debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl]
Debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring File[/etc/puppet/ssl]
Debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl]
Debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl]
Debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/facts.d]: Autorequiring File[/var/lib/puppet]
Debug: Finishing transaction 70128947774340
Debug: Loaded state in 0.00 seconds
Debug: Loaded state in 0.00 seconds
Info: Applying configuration version '1396554596'
Info: FileBucket got a duplicate file {md5}678c609ab44629bbe0a5ac0fe76d201f
Info: /Stage[main]/Main/File[/etc/hosts]: Filebucketed /etc/hosts to puppet with sum 678c609ab44629bbe0a5ac0fe76d201f
Debug: /Stage[main]/Main/File[/etc/hosts]: Removing existing file for replacement with link
Notice: /Stage[main]/Main/File[/ etc tmp / hosts jenny ]/ensure: ensure changed 'file' to 'link' created
Debug: /Stage[main]/Main/File[/etc/hosts]: The container Class[Main] will propagate my refresh event
Debug: Class[Main]: The container Stage[main] will propagate my refresh event
Debug: Finishing transaction 70128948692840
Debug: Storing state
Debug: Stored state in 0.00 seconds
Notice: Finished Applied catalog run in 0. 05 02 seconds
Debug: Using settings: adding file resource 'rrddir': 'File [ eric@cloudline]~% ls -l / var tmp / lib/puppet/rrd]{ jenny
lrwxrwxrwx. 1 eric eric 7 Mar 19 14
: path=>" 21 / var tmp / lib/puppet/rrd", :mode= jenny - > "750", :owner=>"puppet", :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :backup=>false}' symlink
Debug: Finishing transaction 70128912351080
Debug: Received report to process from breve.wifi.puppetlabs.net
Debug: Processing report from breve.wifi.puppetlabs.net with processor Puppet::Reports::Store
{code}

Josh Cooper (JIRA)

unread,
Jul 15, 2019, 7:44:03 PM7/15/19
to puppe...@googlegroups.com
Reply all
Reply to author
Forward
0 new messages