Issue #4201 has been updated by James Turnbull. Assigned to changed from James Turnbull to Markus Roberts
$ useradd -bash: /usr/sbin/useradd: Permission denied ---------------------------------------- Bug #4201: No default user / group provider for non-root linux users. http://projects.puppetlabs.com/issues/4201 Author: James Turnbull Status: Needs more information Priority: Low Assigned to: Markus Roberts Category: testing Target version: queued Affected version: 2.6alpha1 Keywords: Branch: A large number of spec and unit tests fail when run as a non-root user under Fedora 12 (though they appear to work under, say Ubuntu 10) because puppet can not find a default provider (e.g. useradd) when run as non-root. This may be a provider detection problem or it may be a test confinement problem. ------------------------- The following failed on Fedora 12 when run as a non-root user - they all PASS when run as root. Linux pelin.lovedthanlost.net 2.6.32.12-linode25 #1 SMP Wed Apr 28 19:25:11 UTC 2010 i686 i686 i386 GNU/Linux ruby --version ruby 1.8.6 (2010-02-05 patchlevel 399) [i386-linux] spec --version rspec 1.3.0 <pre> 1) Puppet::DevError in 'Puppet::Type::Resources#generate when the catalog contains a purging resource should not include the skipped users' Could not find a default provider for user ./spec/unit/type/resources_spec.rb:60:in `new' ./spec/unit/type/resources_spec.rb:60: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 2) Puppet::DevError in 'Puppet::Type::User should have a default provider inheriting from Puppet::Provider' Could not find a default provider for user ./spec/unit/type/user_spec.rb:15: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 3) Puppet::DevError in 'Puppet::Type::User should be able to create a instance' Could not find a default provider for user ./spec/unit/type/user_spec.rb:19:in `new' ./spec/unit/type/user_spec.rb:19: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 4) Puppet::DevError in 'Puppet::Type::User instances should have a valid provider' Could not find a default provider for user ./spec/unit/type/user_spec.rb:40:in `new' ./spec/unit/type/user_spec.rb:40: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 5) Puppet::DevError in 'Puppet::Type::User instances should delegate existence questions to its provider' Could not find a default provider for user ./spec/unit/type/user_spec.rb:44:in `new' ./spec/unit/type/user_spec.rb:44: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 6) Puppet::DevError in 'Puppet::Type::User when retrieving all current values should return a hash containing values for all set properties' Could not find a default provider for user ./spec/unit/type/user_spec.rb:80:in `new' ./spec/unit/type/user_spec.rb:80: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 7) Puppet::DevError in 'Puppet::Type::User when retrieving all current values should set all values to :absent if the user is absent' Could not find a default provider for user ./spec/unit/type/user_spec.rb:80:in `new' ./spec/unit/type/user_spec.rb:80: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 8) Puppet::DevError in 'Puppet::Type::User when retrieving all current values should include the result of retrieving each property's current value if the user is present' Could not find a default provider for user ./spec/unit/type/user_spec.rb:80:in `new' ./spec/unit/type/user_spec.rb:80: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 9) Puppet::DevError in 'Puppet::Type::User when user has roles should autorequire roles' Could not find a default provider for user ./spec/unit/type/user_spec.rb:266:in `new' ./spec/unit/type/user_spec.rb:266: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 10) Puppet::DevError in 'Puppet::Type::Group should have a default provider' Could not find a default provider for group ./spec/unit/type/group_spec.rb:12: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 11) Puppet::DevError in 'Puppet::Type::Group should have a default provider inheriting from Puppet::Provider' Could not find a default provider for group ./spec/unit/type/group_spec.rb:16: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 12) Puppet::DevError in 'Puppet::Type::Group should have a boolean method for determining if duplicates are allowed' Could not find a default provider for group ./spec/unit/type/group_spec.rb:43:in `new' ./spec/unit/type/group_spec.rb:43: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 13) Puppet::DevError in 'Puppet::Type::Group should call 'create' to create the group' Could not find a default provider for group ./spec/unit/type/group_spec.rb:47:in `new' ./spec/unit/type/group_spec.rb:47: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 14) Puppet::DevError in 'Puppet::Type::Group should call 'delete' to remove the group' Could not find a default provider for group ./spec/unit/type/group_spec.rb:53:in `new' ./spec/unit/type/group_spec.rb:53: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 15) Puppet::DevError in 'Puppet::Type::Group when validating attributes should convert gids provided as strings into integers' Could not find a default provider for group ./spec/unit/type/group_spec.rb:33:in `new' ./spec/unit/type/group_spec.rb:33: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 16) Puppet::DevError in 'Puppet::Type::Group when validating attributes should accepts gids provided as integers' Could not find a default provider for group ./spec/unit/type/group_spec.rb:37:in `new' ./spec/unit/type/group_spec.rb:37: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' 17) Puppet::DevError in 'Puppet::Resource::Ral find if there is no instance, it should create one' Could not find a default provider for user ./spec/unit/indirector/resource/ral_spec.rb:27: /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:22:in `run' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `each' /home/james/src/puppet/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb:17:in `run' Finished in 190.118989 seconds 8828 examples, 17 failures, 47 pending </pre> And in the "rake unit" tests: <pre> 2) Failure: test_autorequire_owner_and_group(TestFile) [./ral/type/file.rb:714:in `test_autorequire_owner_and_group' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' /home/james/src/puppet/lib/puppet/type.rb:1461:in `default' /home/james/src/puppet/lib/puppet/type.rb:512:in `set_default' /home/james/src/puppet/lib/puppet/type.rb:1722:in `initialize' ./ral/type/file.rb:716:in `new' ./ral/type/file.rb:716:in `test_autorequire_owner_and_group' ./ral/type/file.rb:714:in `test_autorequire_owner_and_group' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' --------------- 3) Failure: test_autogen(TestGroupProvider) [./ral/providers/group.rb:14:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for group"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/group.rb:15:in `setup' ./ral/providers/group.rb:14:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 4) Failure: test_ownprovidergroups(TestGroupProvider) [./ral/providers/group.rb:14:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for group"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/group.rb:15:in `setup' ./ral/providers/group.rb:14:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 5) Failure: test_check(TestResources) [./ral/type/resources.rb:67:in `test_check' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' /home/james/src/puppet/lib/puppet/type.rb:1461:in `default' /home/james/src/puppet/lib/puppet/type.rb:512:in `set_default' /home/james/src/puppet/lib/puppet/type.rb:1722:in `initialize' ./ral/type/resources.rb:70:in `new' ./ral/type/resources.rb:70:in `test_check' ./ral/type/resources.rb:67:in `test_check' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' --------------- 6) Failure: test_ensuredefault(TestType) [./ral/manager/type.rb:89:in `test_ensuredefault' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' /home/james/src/puppet/lib/puppet/type.rb:1461:in `default' /home/james/src/puppet/lib/puppet/type.rb:512:in `set_default' /home/james/src/puppet/lib/puppet/type.rb:1722:in `initialize' ./ral/manager/type.rb:91:in `new' ./ral/manager/type.rb:91:in `test_ensuredefault' ./ral/manager/type.rb:89:in `test_ensuredefault' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' --------------- 7) Failure: test_autorequire(TestUser) [./ral/type/user.rb:91:in `test_autorequire' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for group"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' /home/james/src/puppet/lib/puppet/type.rb:1461:in `default' /home/james/src/puppet/lib/puppet/type.rb:512:in `set_default' /home/james/src/puppet/lib/puppet/type.rb:1722:in `initialize' ./ral/type/user.rb:109:in `new' ./ral/type/user.rb:109:in `test_autorequire' ./ral/type/user.rb:91:in `test_autorequire' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `__send__' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:19:in `run' --------------- 8) Failure: test_autogen(TestUserProvider) [./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/user.rb:18:in `setup' ./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 9) Failure: test_exists(TestUserProvider) [./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/user.rb:18:in `setup' ./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 10) Failure: test_infocollection(TestUserProvider) [./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/user.rb:18:in `setup' ./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 11) Failure: test_list(TestUserProvider) [./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/user.rb:18:in `setup' ./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- 12) Failure: test_useradd_flags(TestUserProvider) [./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run']: Exception raised: Class: <Puppet::DevError> Message: <"Could not find a default provider for user"> ---Backtrace--- /home/james/src/puppet/lib/puppet/type.rb:1351:in `defaultprovider' ./ral/providers/user.rb:18:in `setup' ./ral/providers/user.rb:17:in `setup' /usr/lib/ruby/gems/1.8/gems/mocha-0.9.8/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb:18:in `run' --------------- </pre> -- 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.
