Issue #3387 has been updated by James Turnbull. Target version changed from 0.25.6 to Rowlf
Marc - it's in 0.25.5 the ticket is still open because it's going into Rowlf too. Don't ask - we need to fix the process. :) ---------------------------------------- Bug #3387: backslashes aren't correctly passed to augeas anymore http://projects.puppetlabs.com/issues/3387 Author: Marc Fournier Status: Available In Testing Branch Priority: Normal Assigned to: Bryan Kearney Category: augeas Target version: Rowlf Affected version: 0.25.4 Keywords: Branch: http://github.com/bkearney/puppet/tree/ticket/0.25.x/3387 The following code snippet used to work on 0.24.8: <pre> augeas { "set rsyncd pidfile": context => "/files/etc/rsyncd.conf/.anon/", changes => "set 'pid\ file' /var/run/rsyncd.pid", } </pre> But I now get the following error (tested on the tip of bkearney/ticket/0.25.x/3379 as well as 0.25.4, on redhat and debian, with augeas 0.7.0): <pre> warning: Unrecognised escape sequence '\ ' in file /home/marc/src/puppet/augbug.pp at line 3 debug: Creating default schedules debug: Failed to load library 'selinux' for feature 'selinux' debug: Puppet::Type::User::ProviderLdap: true value when expecting false debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: Failed to load library 'ldap' for feature 'ldap' debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/lib]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/client_yaml]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/clientbucket]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/state]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet] debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/run]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/log]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/state/graphs]: Autorequiring File[/var/puppet/state] debug: /File[/var/puppet/facts]: Autorequiring File[/var/puppet] debug: Finishing transaction 70143984607080 with 0 changes info: Applying configuration version '1268907221' debug: Augeas[set rsyncd pidfile](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[set rsyncd pidfile](provider=augeas): Augeas version 0.7.0 is installed debug: Augeas[set rsyncd pidfile](provider=augeas): Will attempt to save and only run if files changed debug: Augeas[set rsyncd pidfile](provider=augeas): sending command 'set' with params ["/files/etc/rsyncd.conf/.anon/'pid\\ file'", "/var/run/rsyncd.pid"] debug: Augeas[set rsyncd pidfile](provider=augeas): Files changed, should execute debug: Augeas[set rsyncd pidfile](provider=augeas): Closed the augeas connection debug: //Augeas[set rsyncd pidfile]: Changing returns debug: //Augeas[set rsyncd pidfile]: 1 change(s) debug: Augeas[set rsyncd pidfile](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[set rsyncd pidfile](provider=augeas): Augeas version 0.7.0 is installed debug: Augeas[set rsyncd pidfile](provider=augeas): sending command 'set' with params ["/files/etc/rsyncd.conf/.anon/'pid\\ file'", "/var/run/rsyncd.pid"] debug: Augeas[set rsyncd pidfile](provider=augeas): Closed the augeas connection err: //Augeas[set rsyncd pidfile]/returns: change from need_to_run to 0 failed: Save failed with return code false debug: Finishing transaction 70143984239220 with 1 changes </pre> Removing the backslash: <pre> augeas { "set rsyncd pidfile": context => "/files/etc/rsyncd.conf/.anon/", changes => "set 'pid file' /var/run/rsyncd.pid", } </pre> ... makes the warning disappear but not the error (which is slightly different): <pre> debug: Creating default schedules debug: Failed to load library 'selinux' for feature 'selinux' debug: Puppet::Type::User::ProviderLdap: true value when expecting false debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: Failed to load library 'ldap' for feature 'ldap' debug: /File[/var/puppet/state]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/clientbucket]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl/private_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/ssl/certificate_requests]: Autorequiring File[/etc/puppet/ssl] debug: /File[/etc/puppet/ssl/private]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/state/graphs]: Autorequiring File[/var/puppet/state] debug: /File[/var/puppet/log]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/client_yaml]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/run]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl]: Autorequiring File[/etc/puppet] debug: /File[/etc/puppet/ssl/certs]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/lib]: Autorequiring File[/var/puppet] debug: /File[/etc/puppet/ssl/public_keys]: Autorequiring File[/etc/puppet/ssl] debug: /File[/var/puppet/facts]: Autorequiring File[/var/puppet] debug: Finishing transaction 69911763370840 with 0 changes info: Applying configuration version '1268907443' debug: Augeas[set rsyncd pidfile](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[set rsyncd pidfile](provider=augeas): Augeas version 0.7.0 is installed debug: Augeas[set rsyncd pidfile](provider=augeas): Will attempt to save and only run if files changed debug: Augeas[set rsyncd pidfile](provider=augeas): sending command 'set' with params ["/files/etc/rsyncd.conf/.anon/'pid", "file'"] debug: Augeas[set rsyncd pidfile](provider=augeas): Files changed, should execute debug: Augeas[set rsyncd pidfile](provider=augeas): Closed the augeas connection debug: //Augeas[set rsyncd pidfile]: Changing returns debug: //Augeas[set rsyncd pidfile]: 1 change(s) debug: Augeas[set rsyncd pidfile](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[set rsyncd pidfile](provider=augeas): Augeas version 0.7.0 is installed debug: Augeas[set rsyncd pidfile](provider=augeas): sending command 'set' with params ["/files/etc/rsyncd.conf/.anon/'pid", "file'"] debug: Augeas[set rsyncd pidfile](provider=augeas): Closed the augeas connection err: //Augeas[set rsyncd pidfile]/returns: change from need_to_run to 0 failed: Save failed with return code false debug: Finishing transaction 69911763001060 with 1 changes </pre> Changing the resource like this: <pre> augeas { "set rsyncd pidfile": #context => "/files/etc/rsyncd.conf/.anon/", changes => "set '/files/etc/rsyncd.conf/.anon/pid\ file' /var/run/rsyncd.pid", } </pre> ... removes the error but not the warning, and fails to add/change the line as expected (so I guess this should produce an error and fail instead of the warning): <pre> warning: Unrecognised escape sequence '\ ' in file /tmp/aug.pp at line 3 debug: Creating default schedules debug: Puppet::Type::User::ProviderPw: file pw does not exist debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dscl does not exist debug: Puppet::Type::User::ProviderUser_role_add: file roleadd does not exist debug: Failed to load library 'ldap' for feature 'ldap' debug: Puppet::Type::User::ProviderLdap: feature ldap is missing debug: /File[/var/lib/puppet/ssl/certs/kisvm5.epfl.ch.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/puppet/facts]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/run]: Autorequiring File[/var/puppet] debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/puppet/state/graphs]: Autorequiring File[/var/puppet/state] debug: /File[/var/puppet/state/state.yaml]: Autorequiring File[/var/puppet/state] debug: /File[/var/lib/puppet/ssl/private_keys/kisvm5.epfl.ch.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys] debug: /File[/var/lib/puppet/ssl/public_keys/kisvm5.epfl.ch.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys] debug: /File[/var/puppet/state]: Autorequiring File[/var/puppet] debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs] debug: /File[/var/lib/puppet/ssl/csr_kisvm5.epfl.ch.pem]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/puppet/clientbucket]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/lib]: Autorequiring File[/var/puppet] debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl] debug: /File[/var/puppet/state/classes.txt]: Autorequiring File[/var/puppet/state] debug: /File[/var/puppet/client_yaml]: Autorequiring File[/var/puppet] debug: /File[/var/puppet/log]: Autorequiring File[/var/puppet] debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl] debug: Finishing transaction 23456254014360 with 0 changes info: Applying configuration version '1268908267' debug: Augeas[set rsyncd pidfile](provider=augeas): Opening augeas with root /, lens path , flags 0 debug: Augeas[set rsyncd pidfile](provider=augeas): Augeas version 0.7.0 is installed debug: Augeas[set rsyncd pidfile](provider=augeas): Will attempt to save and only run if files changed debug: Augeas[set rsyncd pidfile](provider=augeas): sending command 'set' with params ["'/files/etc/rsyncd.conf/.anon/pid\\ file'", "/var/run/rsyncd.pid"] debug: Augeas[set rsyncd pidfile](provider=augeas): Skipping becuase no files were changed debug: Augeas[set rsyncd pidfile](provider=augeas): Closed the augeas connection debug: Finishing transaction 23456254927480 with 0 changes </pre> This is the syntax which works, using the cli tool: <pre> # augtool augtool> set "/files/etc/rsyncd.conf/.anon/pid\ file" /var/run/rsyncd.pid augtool> save Saved 1 file(s) </pre> I'm not sure if this is an augeas bug or if it could be something that changed in the way puppet deals with backslashes. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
