puppet 0.24.6 → 0.24.7
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- data/CHANGELOG +115 -0
- data/Rakefile +43 -14
- data/bin/puppetca +6 -5
- data/bin/puppetdoc +109 -15
- data/bin/ralsh +3 -1
- data/conf/redhat/puppet.spec +74 -48
- data/examples/mcx_dock_absent.pp +4 -0
- data/examples/mcx_dock_default.pp +118 -0
- data/examples/mcx_dock_full.pp +125 -0
- data/examples/mcx_dock_invalid.pp +9 -0
- data/examples/mcx_nogroup.pp +118 -0
- data/examples/mcx_notexists_absent.pp +4 -0
- data/ext/emacs/puppet-mode.el +1 -1
- data/lib/puppet.rb +1 -1
- data/lib/puppet/external/nagios/base.rb +114 -71
- data/lib/puppet/feature/base.rb +6 -0
- data/lib/puppet/indirector/yaml.rb +12 -3
- data/lib/puppet/module.rb +1 -1
- data/lib/puppet/network/client/master.rb +1 -1
- data/lib/puppet/network/xmlrpc/client.rb +3 -1
- data/lib/puppet/parameter.rb +1 -1
- data/lib/puppet/parser/ast.rb +15 -0
- data/lib/puppet/parser/ast/astarray.rb +1 -2
- data/lib/puppet/parser/ast/casestatement.rb +2 -0
- data/lib/puppet/parser/ast/collection.rb +2 -0
- data/lib/puppet/parser/ast/comparison_operator.rb +4 -0
- data/lib/puppet/parser/ast/definition.rb +2 -0
- data/lib/puppet/parser/ast/else.rb +3 -0
- data/lib/puppet/parser/ast/function.rb +19 -12
- data/lib/puppet/parser/ast/hostclass.rb +9 -1
- data/lib/puppet/parser/ast/ifstatement.rb +3 -0
- data/lib/puppet/parser/ast/node.rb +3 -0
- data/lib/puppet/parser/ast/resource.rb +3 -0
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -0
- data/lib/puppet/parser/ast/resource_override.rb +3 -0
- data/lib/puppet/parser/ast/vardef.rb +3 -0
- data/lib/puppet/parser/functions.rb +14 -0
- data/lib/puppet/parser/functions/inline_template.rb +21 -0
- data/lib/puppet/parser/functions/template.rb +3 -2
- data/lib/puppet/parser/lexer.rb +56 -7
- data/lib/puppet/parser/parser.rb +114 -98
- data/lib/puppet/parser/parser_support.rb +24 -4
- data/lib/puppet/parser/resource/reference.rb +4 -3
- data/lib/puppet/parser/templatewrapper.rb +30 -22
- data/lib/puppet/property.rb +1 -1
- data/lib/puppet/property/list.rb +7 -2
- data/lib/puppet/property/ordered_list.rb +22 -0
- data/lib/puppet/provider/augeas/augeas.rb +189 -0
- data/lib/puppet/provider/computer/computer.rb +22 -0
- data/lib/puppet/provider/confine.rb +4 -1
- data/lib/puppet/provider/confine/variable.rb +13 -2
- data/lib/puppet/provider/confine_collection.rb +4 -1
- data/lib/puppet/provider/confiner.rb +1 -1
- data/lib/puppet/provider/group/directoryservice.rb +6 -3
- data/lib/puppet/provider/group/groupadd.rb +5 -2
- data/lib/puppet/provider/group/ldap.rb +11 -9
- data/lib/puppet/provider/group/netinfo.rb +8 -4
- data/lib/puppet/provider/group/pw.rb +5 -1
- data/lib/puppet/provider/host/netinfo.rb +5 -2
- data/lib/puppet/provider/macauthorization/macauthorization.rb +315 -0
- data/lib/puppet/provider/mcx/mcxcontent.rb +201 -0
- data/lib/puppet/provider/nameservice/directoryservice.rb +210 -107
- data/lib/puppet/provider/nameservice/netinfo.rb +7 -2
- data/lib/puppet/provider/package/appdmg.rb +0 -3
- data/lib/puppet/provider/package/apt.rb +6 -0
- data/lib/puppet/provider/package/rpm.rb +2 -0
- data/lib/puppet/provider/package/yum.rb +5 -1
- data/lib/puppet/provider/package/yumhelper.py +9 -0
- data/lib/puppet/provider/service/base.rb +9 -6
- data/lib/puppet/provider/service/daemontools.rb +25 -15
- data/lib/puppet/provider/service/debian.rb +6 -2
- data/lib/puppet/provider/service/freebsd.rb +5 -2
- data/lib/puppet/provider/service/gentoo.rb +6 -3
- data/lib/puppet/provider/service/init.rb +31 -21
- data/lib/puppet/provider/service/launchd.rb +195 -0
- data/lib/puppet/provider/service/redhat.rb +5 -2
- data/lib/puppet/provider/service/runit.rb +30 -20
- data/lib/puppet/provider/service/smf.rb +7 -4
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +21 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/netinfo.rb +9 -3
- data/lib/puppet/provider/user/user_role_add.rb +43 -6
- data/lib/puppet/provider/zfs/solaris.rb +45 -0
- data/lib/puppet/provider/zone/solaris.rb +8 -4
- data/lib/puppet/provider/zpool/solaris.rb +116 -0
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +9 -0
- data/lib/puppet/rails/database/schema.rb +1 -0
- data/lib/puppet/rails/host.rb +4 -0
- data/lib/puppet/reference/configuration.rb +1 -1
- data/lib/puppet/reports/tagmail.rb +15 -6
- data/lib/puppet/transaction/change.rb +3 -5
- data/lib/puppet/transportable.rb +1 -0
- data/lib/puppet/type/augeas.rb +155 -0
- data/lib/puppet/type/computer.rb +62 -0
- data/lib/puppet/type/exec.rb +2 -1
- data/lib/puppet/type/file.rb +1 -1
- data/lib/puppet/type/file/ensure.rb +8 -5
- data/lib/puppet/type/file/mode.rb +0 -14
- data/lib/puppet/type/file/owner.rb +32 -64
- data/lib/puppet/type/file/selcontext.rb +3 -8
- data/lib/puppet/type/group.rb +27 -45
- data/lib/puppet/type/k5login.rb +1 -1
- data/lib/puppet/type/macauthorization.rb +141 -0
- data/lib/puppet/type/mcx.rb +115 -0
- data/lib/puppet/type/mount.rb +1 -1
- data/lib/puppet/type/nagios_hostdependency.rb +3 -0
- data/lib/puppet/type/ssh_authorized_key.rb +16 -0
- data/lib/puppet/type/tidy.rb +43 -14
- data/lib/puppet/type/user.rb +25 -1
- data/lib/puppet/type/zfs.rb +51 -0
- data/lib/puppet/type/zone.rb +8 -0
- data/lib/puppet/type/zpool.rb +93 -0
- data/lib/puppet/util.rb +17 -38
- data/lib/puppet/util/file_locking.rb +44 -0
- data/lib/puppet/util/filetype.rb +3 -3
- data/lib/puppet/util/log.rb +1 -16
- data/lib/puppet/util/metric.rb +0 -5
- data/lib/puppet/util/rdoc.rb +85 -0
- data/lib/puppet/util/rdoc/code_objects.rb +219 -0
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +829 -0
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +1051 -0
- data/lib/puppet/util/rdoc/parser.rb +437 -0
- data/lib/puppet/util/selinux.rb +135 -63
- data/lib/puppet/util/settings.rb +136 -126
- data/lib/puppet/util/storage.rb +4 -2
- data/spec/Rakefile +91 -0
- data/spec/integration/checksum.rb +47 -0
- data/spec/integration/defaults.rb +47 -0
- data/spec/integration/file_serving/configuration.rb +43 -0
- data/spec/integration/file_serving/content.rb +18 -0
- data/spec/integration/file_serving/metadata.rb +18 -0
- data/spec/integration/indirector/direct_file_server.rb +80 -0
- data/spec/integration/indirector/file_content/file_server.rb +18 -0
- data/spec/integration/indirector/file_metadata/file_server.rb +18 -0
- data/spec/integration/indirector/module_files.rb +57 -0
- data/spec/integration/indirector/node/ldap.rb +15 -0
- data/spec/integration/indirector/rest.rb +464 -0
- data/spec/integration/network/server/mongrel.rb +48 -0
- data/spec/integration/network/server/webrick.rb +48 -0
- data/spec/integration/node.rb +93 -0
- data/spec/integration/node/catalog.rb +54 -0
- data/spec/integration/node/facts.rb +45 -0
- data/spec/integration/provider/package.rb +26 -0
- data/spec/integration/provider/service/init.rb +32 -0
- data/spec/integration/reference/providers.rb +17 -0
- data/spec/integration/reports.rb +14 -0
- data/spec/integration/transaction/report.rb +26 -0
- data/spec/integration/type/package.rb +22 -0
- data/spec/integration/util/file_locking.rb +36 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +46 -0
- data/spec/monkey_patches/alias_should_to_must.rb +5 -0
- data/spec/shared_behaviours/file_server_terminus.rb +42 -0
- data/spec/shared_behaviours/file_serving.rb +64 -0
- data/spec/shared_behaviours/memory_terminus.rb +32 -0
- data/spec/spec.opts +5 -0
- data/spec/spec_helper.rb +36 -0
- data/spec/unit/executables/client/certhandler.rb +122 -0
- data/spec/unit/file_serving/configuration.rb +224 -0
- data/spec/unit/file_serving/configuration/parser.rb +135 -0
- data/spec/unit/file_serving/content.rb +71 -0
- data/spec/unit/file_serving/file_base.rb +124 -0
- data/spec/unit/file_serving/fileset.rb +239 -0
- data/spec/unit/file_serving/indirection_hooks.rb +124 -0
- data/spec/unit/file_serving/metadata.rb +187 -0
- data/spec/unit/file_serving/mount.rb +143 -0
- data/spec/unit/file_serving/terminus_helper.rb +76 -0
- data/spec/unit/indirector.rb +152 -0
- data/spec/unit/indirector/catalog/compiler.rb +156 -0
- data/spec/unit/indirector/catalog/yaml.rb +25 -0
- data/spec/unit/indirector/checksum/file.rb +139 -0
- data/spec/unit/indirector/code.rb +33 -0
- data/spec/unit/indirector/direct_file_server.rb +89 -0
- data/spec/unit/indirector/envelope.rb +47 -0
- data/spec/unit/indirector/exec.rb +51 -0
- data/spec/unit/indirector/facts/facter.rb +76 -0
- data/spec/unit/indirector/facts/yaml.rb +26 -0
- data/spec/unit/indirector/file.rb +154 -0
- data/spec/unit/indirector/file_content/file.rb +18 -0
- data/spec/unit/indirector/file_content/file_server.rb +18 -0
- data/spec/unit/indirector/file_content/modules.rb +18 -0
- data/spec/unit/indirector/file_content/rest.rb +11 -0
- data/spec/unit/indirector/file_metadata/file.rb +52 -0
- data/spec/unit/indirector/file_metadata/file_server.rb +18 -0
- data/spec/unit/indirector/file_metadata/modules.rb +42 -0
- data/spec/unit/indirector/file_metadata/rest.rb +9 -0
- data/spec/unit/indirector/file_server.rb +184 -0
- data/spec/unit/indirector/indirection.rb +731 -0
- data/spec/unit/indirector/ldap.rb +143 -0
- data/spec/unit/indirector/memory.rb +29 -0
- data/spec/unit/indirector/module_files.rb +259 -0
- data/spec/unit/indirector/node/exec.rb +69 -0
- data/spec/unit/indirector/node/ldap.rb +424 -0
- data/spec/unit/indirector/node/memory.rb +19 -0
- data/spec/unit/indirector/node/plain.rb +19 -0
- data/spec/unit/indirector/node/rest.rb +13 -0
- data/spec/unit/indirector/node/yaml.rb +25 -0
- data/spec/unit/indirector/plain.rb +29 -0
- data/spec/unit/indirector/report/processor.rb +81 -0
- data/spec/unit/indirector/request.rb +87 -0
- data/spec/unit/indirector/rest.rb +372 -0
- data/spec/unit/indirector/ssl_rsa/file.rb +116 -0
- data/spec/unit/indirector/terminus.rb +245 -0
- data/spec/unit/indirector/yaml.rb +145 -0
- data/spec/unit/module.rb +247 -0
- data/spec/unit/network/client.rb +45 -0
- data/spec/unit/network/client/master.rb +442 -0
- data/spec/unit/network/handler/fileserver.rb +179 -0
- data/spec/unit/network/http.rb +35 -0
- data/spec/unit/network/http/mongrel.rb +117 -0
- data/spec/unit/network/http/mongrel/rest.rb +377 -0
- data/spec/unit/network/http/mongrel/xmlrpc.rb +0 -0
- data/spec/unit/network/http/webrick.rb +127 -0
- data/spec/unit/network/http/webrick/rest.rb +323 -0
- data/spec/unit/network/http/webrick/xmlrpc.rb +0 -0
- data/spec/unit/network/http_pool.rb +238 -0
- data/spec/unit/network/server.rb +316 -0
- data/spec/unit/network/xmlrpc/client.rb +13 -0
- data/spec/unit/node.rb +167 -0
- data/spec/unit/node/catalog.rb +864 -0
- data/spec/unit/node/environment.rb +37 -0
- data/spec/unit/node/facts.rb +44 -0
- data/spec/unit/other/checksum.rb +92 -0
- data/spec/unit/other/pgraph.rb +210 -0
- data/spec/unit/other/transaction.rb +33 -0
- data/spec/unit/other/transbucket.rb +172 -0
- data/spec/unit/other/transobject.rb +92 -0
- data/spec/unit/parameter.rb +24 -0
- data/spec/unit/parser/ast.rb +37 -0
- data/spec/unit/parser/ast/arithmetic_operator.rb +73 -0
- data/spec/unit/parser/ast/astarray.rb +66 -0
- data/spec/unit/parser/ast/boolean_operator.rb +53 -0
- data/spec/unit/parser/ast/collexpr.rb +92 -0
- data/spec/unit/parser/ast/comparison_operator.rb +92 -0
- data/spec/unit/parser/ast/definition.rb +195 -0
- data/spec/unit/parser/ast/function.rb +77 -0
- data/spec/unit/parser/ast/hostclass.rb +148 -0
- data/spec/unit/parser/ast/minus.rb +36 -0
- data/spec/unit/parser/ast/node.rb +125 -0
- data/spec/unit/parser/ast/nop.rb +20 -0
- data/spec/unit/parser/ast/not.rb +30 -0
- data/spec/unit/parser/ast/resource_override.rb +51 -0
- data/spec/unit/parser/ast/resource_reference.rb +63 -0
- data/spec/unit/parser/ast/vardef.rb +47 -0
- data/spec/unit/parser/collector.rb +426 -0
- data/spec/unit/parser/compiler.rb +561 -0
- data/spec/unit/parser/functions.rb +83 -0
- data/spec/unit/parser/functions/inline_template.rb +59 -0
- data/spec/unit/parser/functions/template.rb +62 -0
- data/spec/unit/parser/interpreter.rb +138 -0
- data/spec/unit/parser/lexer.rb +646 -0
- data/spec/unit/parser/parser.rb +228 -0
- data/spec/unit/parser/resource.rb +336 -0
- data/spec/unit/parser/resource/reference.rb +95 -0
- data/spec/unit/parser/scope.rb +87 -0
- data/spec/unit/parser/templatewrapper.rb +129 -0
- data/spec/unit/property.rb +35 -0
- data/spec/unit/property/keyvalue.rb +168 -0
- data/spec/unit/property/list.rb +156 -0
- data/spec/unit/property/ordered_list.rb +64 -0
- data/spec/unit/provider/augeas/augeas.rb +238 -0
- data/spec/unit/provider/confine.rb +78 -0
- data/spec/unit/provider/confine/exists.rb +81 -0
- data/spec/unit/provider/confine/false.rb +53 -0
- data/spec/unit/provider/confine/feature.rb +60 -0
- data/spec/unit/provider/confine/true.rb +53 -0
- data/spec/unit/provider/confine/variable.rb +107 -0
- data/spec/unit/provider/confine_collection.rb +134 -0
- data/spec/unit/provider/confiner.rb +63 -0
- data/spec/unit/provider/group/groupadd.rb +31 -0
- data/spec/unit/provider/group/ldap.rb +105 -0
- data/spec/unit/provider/ldap.rb +248 -0
- data/spec/unit/provider/macauthorization.rb +147 -0
- data/spec/unit/provider/mcx/mcxcontent.rb +175 -0
- data/spec/unit/provider/mount.rb +130 -0
- data/spec/unit/provider/mount/parsed.rb +185 -0
- data/spec/unit/provider/package/apt.rb +138 -0
- data/spec/unit/provider/package/dpkg.rb +163 -0
- data/spec/unit/provider/package/gem.rb +87 -0
- data/spec/unit/provider/package/hpux.rb +52 -0
- data/spec/unit/provider/selboolean.rb +37 -0
- data/spec/unit/provider/selmodule-example.pp +0 -0
- data/spec/unit/provider/selmodule.rb +66 -0
- data/spec/unit/provider/service/daemontools.rb +124 -0
- data/spec/unit/provider/service/launchd.rb +134 -0
- data/spec/unit/provider/service/runit.rb +117 -0
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +102 -0
- data/spec/unit/provider/user/hpux.rb +25 -0
- data/spec/unit/provider/user/ldap.rb +279 -0
- data/spec/unit/provider/user/user_role_add.rb +249 -0
- data/spec/unit/provider/user/useradd.rb +115 -0
- data/spec/unit/provider/zfs/solaris.rb +87 -0
- data/spec/unit/provider/zone/solaris.rb +42 -0
- data/spec/unit/provider/zpool/solaris.rb +179 -0
- data/spec/unit/rails.rb +125 -0
- data/spec/unit/relationship.rb +149 -0
- data/spec/unit/reports.rb +61 -0
- data/spec/unit/resource_reference.rb +73 -0
- data/spec/unit/simple_graph.rb +280 -0
- data/spec/unit/transaction/change.rb +187 -0
- data/spec/unit/transaction/event.rb +25 -0
- data/spec/unit/transaction/report.rb +40 -0
- data/spec/unit/type.rb +64 -0
- data/spec/unit/type/augeas.rb +113 -0
- data/spec/unit/type/computer.rb +82 -0
- data/spec/unit/type/exec.rb +91 -0
- data/spec/unit/type/file.rb +155 -0
- data/spec/unit/type/file/ensure.rb +21 -0
- data/spec/unit/type/file/group.rb +118 -0
- data/spec/unit/type/file/owner.rb +132 -0
- data/spec/unit/type/file/selinux.rb +82 -0
- data/spec/unit/type/group.rb +40 -0
- data/spec/unit/type/macauthorization.rb +78 -0
- data/spec/unit/type/mcx.rb +108 -0
- data/spec/unit/type/mount.rb +219 -0
- data/spec/unit/type/nagios.rb +63 -0
- data/spec/unit/type/noop_metaparam.rb +38 -0
- data/spec/unit/type/package.rb +246 -0
- data/spec/unit/type/resources.rb +27 -0
- data/spec/unit/type/schedule.rb +339 -0
- data/spec/unit/type/selboolean.rb +47 -0
- data/spec/unit/type/selmodule.rb +18 -0
- data/spec/unit/type/service.rb +254 -0
- data/spec/unit/type/ssh_authorized_key.rb +106 -0
- data/spec/unit/type/tidy.rb +68 -0
- data/spec/unit/type/user.rb +260 -0
- data/spec/unit/type/zfs.rb +45 -0
- data/spec/unit/type/zone.rb +20 -0
- data/spec/unit/type/zpool.rb +110 -0
- data/spec/unit/util/checksums.rb +99 -0
- data/spec/unit/util/constant_inflector.rb +70 -0
- data/spec/unit/util/file_locking.rb +115 -0
- data/spec/unit/util/ldap/connection.rb +169 -0
- data/spec/unit/util/ldap/generator.rb +54 -0
- data/spec/unit/util/ldap/manager.rb +654 -0
- data/spec/unit/util/loadedfile.rb +65 -0
- data/spec/unit/util/log.rb +107 -0
- data/spec/unit/util/metric.rb +95 -0
- data/spec/unit/util/nagios_maker.rb +128 -0
- data/spec/unit/util/posix.rb +256 -0
- data/spec/unit/util/resource_template.rb +58 -0
- data/spec/unit/util/selinux.rb +219 -0
- data/spec/unit/util/settings.rb +847 -0
- data/spec/unit/util/storage.rb +248 -0
- data/spec/unit/util/tagging.rb +92 -0
- data/spec/unit/util/uri_helper.rb +41 -0
- data/spec/unit/util/user_attr.rb +47 -0
- data/spec/unit/util/warnings.rb +35 -0
- data/test/certmgr/support.rb +0 -6
- data/test/data/providers/ssh_authorized_key/parsed/authorized_keys +1 -0
- data/test/data/snippets/multilinecomments.pp +6 -0
- data/test/data/snippets/multipleclass.pp +9 -0
- data/test/language/functions.rb +11 -1
- data/test/language/snippets.rb +16 -0
- data/test/lib/puppettest/runnable_test.rb +1 -1
- data/test/network/handler/fileserver.rb +5 -0
- data/test/other/report.rb +0 -4
- data/test/ral/type/resources.rb +2 -19
- data/test/util/settings.rb +4 -4
- data/test/util/storage.rb +0 -24
- data/test/util/utiltest.rb +0 -33
- metadata +319 -26
- data/conf/debian/README.source +0 -2
- data/conf/debian/TODO.Debian +0 -1
- data/conf/debian/changelog +0 -257
- data/conf/debian/compat +0 -1
- data/conf/debian/control +0 -45
- data/conf/debian/copyright +0 -17
- data/conf/debian/docs +0 -1
- data/conf/debian/fileserver.conf +0 -12
- data/conf/debian/puppet.NEWS +0 -63
- data/conf/debian/puppet.conf +0 -8
- data/conf/debian/puppet.dirs +0 -7
- data/conf/debian/puppet.files +0 -6
- data/conf/debian/puppet.init +0 -64
- data/conf/debian/puppet.logrotate +0 -11
- data/conf/debian/puppet.postinst +0 -9
- data/conf/debian/puppet.postrm +0 -21
- data/conf/debian/puppet.preinst +0 -25
- data/conf/debian/puppetmaster.files +0 -4
- data/conf/debian/puppetmaster.init +0 -58
- data/conf/debian/rules +0 -115
- data/conf/debian/watch +0 -2
- data/lib/puppet/type/nagios_hostgroupescalation.rb +0 -3
@@ -0,0 +1,249 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
provider_class = Puppet::Type.type(:user).provider(:user_role_add)
|
6
|
+
|
7
|
+
describe provider_class do
|
8
|
+
before do
|
9
|
+
@resource = stub("resource", :name => "myuser", :managehome? => nil)
|
10
|
+
@resource.stubs(:should).returns "fakeval"
|
11
|
+
@resource.stubs(:[]).returns "fakeval"
|
12
|
+
@resource.stubs(:allowdupe?).returns false
|
13
|
+
@provider = provider_class.new(@resource)
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "when calling command" do
|
17
|
+
before do
|
18
|
+
klass = stub("provider")
|
19
|
+
klass.stubs(:command).with(:foo).returns("userfoo")
|
20
|
+
klass.stubs(:command).with(:role_foo).returns("rolefoo")
|
21
|
+
@provider.stubs(:class).returns(klass)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should use the command if not a role and ensure!=role" do
|
25
|
+
@provider.stubs(:is_role?).returns(false)
|
26
|
+
@provider.stubs(:exists?).returns(false)
|
27
|
+
@resource.stubs(:[]).with(:ensure).returns(:present)
|
28
|
+
@provider.command(:foo).should == "userfoo"
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should use the role command when a role" do
|
32
|
+
@provider.stubs(:is_role?).returns(true)
|
33
|
+
@provider.command(:foo).should == "rolefoo"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should use the role command when !exists and ensure=role" do
|
37
|
+
@provider.stubs(:is_role?).returns(false)
|
38
|
+
@provider.stubs(:exists?).returns(false)
|
39
|
+
@resource.stubs(:[]).with(:ensure).returns(:role)
|
40
|
+
@provider.command(:foo).should == "rolefoo"
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe "when calling transition" do
|
45
|
+
it "should return the type set to whatever is passed in" do
|
46
|
+
@provider.expects(:command).with(:modify).returns("foomod")
|
47
|
+
@provider.transition("bar").include?("type=bar")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe "when calling create" do
|
52
|
+
before do
|
53
|
+
@provider.stubs(:password=)
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should use the add command when the user is not a role" do
|
57
|
+
@provider.stubs(:is_role?).returns(false)
|
58
|
+
@provider.expects(:addcmd).returns("useradd")
|
59
|
+
@provider.expects(:run)
|
60
|
+
@provider.create
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should use transition(normal) when the user is a role" do
|
64
|
+
@provider.stubs(:is_role?).returns(true)
|
65
|
+
@provider.expects(:transition).with("normal")
|
66
|
+
@provider.expects(:run)
|
67
|
+
@provider.create
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "when calling destroy" do
|
72
|
+
it "should use the delete command if the user exists and is not a role" do
|
73
|
+
@provider.stubs(:exists?).returns(true)
|
74
|
+
@provider.stubs(:is_role?).returns(false)
|
75
|
+
@provider.expects(:deletecmd)
|
76
|
+
@provider.expects(:run)
|
77
|
+
@provider.destroy
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should use the delete command if the user is a role" do
|
81
|
+
@provider.stubs(:exists?).returns(true)
|
82
|
+
@provider.stubs(:is_role?).returns(true)
|
83
|
+
@provider.expects(:deletecmd)
|
84
|
+
@provider.expects(:run)
|
85
|
+
@provider.destroy
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
describe "when calling create_role" do
|
90
|
+
it "should use the transition(role) if the user exists" do
|
91
|
+
@provider.stubs(:exists?).returns(true)
|
92
|
+
@provider.stubs(:is_role?).returns(false)
|
93
|
+
@provider.expects(:transition).with("role")
|
94
|
+
@provider.expects(:run)
|
95
|
+
@provider.create_role
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should use the add command when role doesn't exists" do
|
99
|
+
@provider.stubs(:exists?).returns(false)
|
100
|
+
@provider.expects(:addcmd)
|
101
|
+
@provider.expects(:run)
|
102
|
+
@provider.create_role
|
103
|
+
end
|
104
|
+
end
|
105
|
+
|
106
|
+
describe "when allow duplicate is enabled" do
|
107
|
+
before do
|
108
|
+
@resource.expects(:allowdupe?).returns true
|
109
|
+
@provider.stubs(:is_role?).returns(false)
|
110
|
+
@provider.expects(:execute).with { |args| args.include?("-o") }
|
111
|
+
end
|
112
|
+
|
113
|
+
it "should add -o when the user is being created" do
|
114
|
+
@provider.stubs(:password=)
|
115
|
+
@provider.create
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should add -o when the uid is being modified" do
|
119
|
+
@provider.uid = 150
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
[:roles, :auths, :profiles].each do |val|
|
124
|
+
describe "when getting #{val}" do
|
125
|
+
it "should get the user_attributes" do
|
126
|
+
@provider.expects(:user_attributes)
|
127
|
+
@provider.send(val)
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should get the #{val} attribute" do
|
131
|
+
attributes = mock("attributes")
|
132
|
+
attributes.expects(:[]).with(val)
|
133
|
+
@provider.stubs(:user_attributes).returns(attributes)
|
134
|
+
@provider.send(val)
|
135
|
+
end
|
136
|
+
end
|
137
|
+
end
|
138
|
+
|
139
|
+
describe "when getting the keys" do
|
140
|
+
it "should get the user_attributes" do
|
141
|
+
@provider.expects(:user_attributes)
|
142
|
+
@provider.keys
|
143
|
+
end
|
144
|
+
|
145
|
+
it "should call removed_managed_attributes" do
|
146
|
+
@provider.stubs(:user_attributes).returns({ :type => "normal", :foo => "something" })
|
147
|
+
@provider.expects(:remove_managed_attributes)
|
148
|
+
@provider.keys
|
149
|
+
end
|
150
|
+
|
151
|
+
it "should removed managed attribute (type, auths, roles, etc)" do
|
152
|
+
@provider.stubs(:user_attributes).returns({ :type => "normal", :foo => "something" })
|
153
|
+
@provider.keys.should == { :foo => "something" }
|
154
|
+
end
|
155
|
+
end
|
156
|
+
|
157
|
+
describe "when adding properties" do
|
158
|
+
it "should call build_keys_cmd" do
|
159
|
+
@resource.stubs(:should).returns ""
|
160
|
+
@resource.expects(:should).with(:keys).returns({ :foo => "bar" })
|
161
|
+
@provider.expects(:build_keys_cmd).returns([])
|
162
|
+
@provider.add_properties
|
163
|
+
end
|
164
|
+
|
165
|
+
it "should add the elements of the keys hash to an array" do
|
166
|
+
@resource.stubs(:should).returns ""
|
167
|
+
@resource.expects(:should).with(:keys).returns({ :foo => "bar"})
|
168
|
+
@provider.add_properties.must == ["-K", "foo=bar"]
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
describe "when calling build_keys_cmd" do
|
173
|
+
it "should build cmd array with keypairs seperated by -K ending with user" do
|
174
|
+
@provider.build_keys_cmd({"foo" => "bar", "baz" => "boo"}).should.eql? ["-K", "foo=bar", "-K", "baz=boo"]
|
175
|
+
end
|
176
|
+
end
|
177
|
+
|
178
|
+
describe "when setting the keys" do
|
179
|
+
before do
|
180
|
+
@provider.stubs(:is_role?).returns(false)
|
181
|
+
end
|
182
|
+
|
183
|
+
it "should run a command" do
|
184
|
+
@provider.expects(:run)
|
185
|
+
@provider.keys=({})
|
186
|
+
end
|
187
|
+
|
188
|
+
it "should build the command" do
|
189
|
+
@resource.stubs(:[]).with(:name).returns("someuser")
|
190
|
+
@provider.stubs(:command).returns("usermod")
|
191
|
+
@provider.expects(:build_keys_cmd).returns(["-K", "foo=bar"])
|
192
|
+
@provider.expects(:run).with(["usermod", "-K", "foo=bar", "someuser"], "modify attribute key pairs")
|
193
|
+
@provider.keys=({})
|
194
|
+
end
|
195
|
+
end
|
196
|
+
|
197
|
+
describe "when getting the hashed password" do
|
198
|
+
before do
|
199
|
+
@array = mock "array"
|
200
|
+
end
|
201
|
+
|
202
|
+
it "should readlines of /etc/shadow" do
|
203
|
+
File.expects(:readlines).with("/etc/shadow").returns([])
|
204
|
+
@provider.password
|
205
|
+
end
|
206
|
+
|
207
|
+
it "should reject anything that doesn't start with alpha numerics" do
|
208
|
+
@array.expects(:reject).returns([])
|
209
|
+
File.stubs(:readlines).with("/etc/shadow").returns(@array)
|
210
|
+
@provider.password
|
211
|
+
end
|
212
|
+
|
213
|
+
it "should collect splitting on ':'" do
|
214
|
+
@array.stubs(:reject).returns(@array)
|
215
|
+
@array.expects(:collect).returns([])
|
216
|
+
File.stubs(:readlines).with("/etc/shadow").returns(@array)
|
217
|
+
@provider.password
|
218
|
+
end
|
219
|
+
|
220
|
+
it "should find the matching user" do
|
221
|
+
@resource.stubs(:[]).with(:name).returns("username")
|
222
|
+
@array.stubs(:reject).returns(@array)
|
223
|
+
@array.stubs(:collect).returns([["username", "hashedpassword"], ["someoneelse", "theirpassword"]])
|
224
|
+
File.stubs(:readlines).with("/etc/shadow").returns(@array)
|
225
|
+
@provider.password.must == "hashedpassword"
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should get the right password" do
|
229
|
+
@resource.stubs(:[]).with(:name).returns("username")
|
230
|
+
File.stubs(:readlines).with("/etc/shadow").returns(["#comment", " nonsense", " ", "username:hashedpassword:stuff:foo:bar:::", "other:pword:yay:::"])
|
231
|
+
@provider.password.must == "hashedpassword"
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
235
|
+
describe "when setting the password" do
|
236
|
+
#how can you mock these blocks up?
|
237
|
+
it "should open /etc/shadow for reading and /etc/shadow_tmp for writing" do
|
238
|
+
File.expects(:open).with("/etc/shadow", "r")
|
239
|
+
File.stubs(:rename)
|
240
|
+
@provider.password=("hashedpassword")
|
241
|
+
end
|
242
|
+
|
243
|
+
it "should rename the /etc/shadow_tmp to /etc/shadow" do
|
244
|
+
File.stubs(:open).with("/etc/shadow", "r")
|
245
|
+
File.expects(:rename).with("/etc/shadow_tmp", "/etc/shadow")
|
246
|
+
@provider.password=("hashedpassword")
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
provider_class = Puppet::Type.type(:user).provider(:useradd)
|
6
|
+
|
7
|
+
describe provider_class do
|
8
|
+
before do
|
9
|
+
@resource = stub("resource", :name => "myuser", :managehome? => nil)
|
10
|
+
@resource.stubs(:should).returns "fakeval"
|
11
|
+
@resource.stubs(:[]).returns "fakeval"
|
12
|
+
@provider = provider_class.new(@resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
# #1360
|
16
|
+
it "should add -o when allowdupe is enabled and the user is being created" do
|
17
|
+
@resource.expects(:allowdupe?).returns true
|
18
|
+
@provider.expects(:execute).with { |args| args.include?("-o") }
|
19
|
+
@provider.create
|
20
|
+
end
|
21
|
+
|
22
|
+
it "should add -o when allowdupe is enabled and the uid is being modified" do
|
23
|
+
@resource.expects(:allowdupe?).returns true
|
24
|
+
@provider.expects(:execute).with { |args| args.include?("-o") }
|
25
|
+
|
26
|
+
@provider.uid = 150
|
27
|
+
end
|
28
|
+
|
29
|
+
describe "when checking to add allow dup" do
|
30
|
+
it "should check allow dup" do
|
31
|
+
@resource.expects(:allowdupe?)
|
32
|
+
@provider.check_allow_dup
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should return an array with a flag if dup is allowed" do
|
36
|
+
@resource.stubs(:allowdupe?).returns true
|
37
|
+
@provider.check_allow_dup.must == ["-o"]
|
38
|
+
end
|
39
|
+
|
40
|
+
it "should return an empty array if no dup is allowed" do
|
41
|
+
@resource.stubs(:allowdupe?).returns false
|
42
|
+
@provider.check_allow_dup.must == []
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "when checking manage home" do
|
47
|
+
it "should check manage home" do
|
48
|
+
@resource.expects(:managehome?)
|
49
|
+
@provider.check_manage_home
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should return an array with -m flag if home is managed" do
|
53
|
+
@resource.stubs(:managehome?).returns true
|
54
|
+
@provider.check_manage_home.must == ["-m"]
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should return an array with -M if home is not managed and on Redhat" do
|
58
|
+
Facter.stubs(:value).with("operatingsystem").returns("RedHat")
|
59
|
+
@resource.stubs(:managehome?).returns false
|
60
|
+
@provider.check_manage_home.must == ["-M"]
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should return an empty array if home is not managed and not on Redhat" do
|
64
|
+
Facter.stubs(:value).with("operatingsystem").returns("some OS")
|
65
|
+
@resource.stubs(:managehome?).returns false
|
66
|
+
@provider.check_manage_home.must == []
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
describe "when adding properties" do
|
71
|
+
it "should get the valid properties"
|
72
|
+
it "should not add the ensure property"
|
73
|
+
it "should add the flag and value to an array"
|
74
|
+
it "should return and array of flags and values"
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "when calling addcmd" do
|
78
|
+
before do
|
79
|
+
@resource.stubs(:allowdupe?).returns true
|
80
|
+
@resource.stubs(:managehome?).returns true
|
81
|
+
end
|
82
|
+
|
83
|
+
it "should call command with :add" do
|
84
|
+
@provider.expects(:command).with(:add)
|
85
|
+
@provider.addcmd
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should add properties" do
|
89
|
+
@provider.expects(:add_properties).returns([])
|
90
|
+
@provider.addcmd
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should check and add if dup allowed" do
|
94
|
+
@provider.expects(:check_allow_dup).returns([])
|
95
|
+
@provider.addcmd
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should check and add if home is managed" do
|
99
|
+
@provider.expects(:check_manage_home).returns([])
|
100
|
+
@provider.addcmd
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should add the resource :name" do
|
104
|
+
@resource.expects(:[]).with(:name)
|
105
|
+
@provider.addcmd
|
106
|
+
end
|
107
|
+
|
108
|
+
it "should return an array with full command" do
|
109
|
+
@provider.stubs(:command).with(:add).returns("useradd")
|
110
|
+
@provider.stubs(:add_properties).returns(["-G", "somegroup"])
|
111
|
+
@resource.stubs(:[]).with(:name).returns("someuser")
|
112
|
+
@provider.addcmd.must == ["useradd", "-G", "somegroup", "-o", "-m", "someuser"]
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
provider_class = Puppet::Type.type(:zfs).provider(:solaris)
|
6
|
+
|
7
|
+
describe provider_class do
|
8
|
+
before do
|
9
|
+
@resource = stub("resource", :name => "myzfs")
|
10
|
+
@resource.stubs(:[]).with(:name).returns "myzfs"
|
11
|
+
@resource.stubs(:[]).returns "shouldvalue"
|
12
|
+
@provider = provider_class.new(@resource)
|
13
|
+
end
|
14
|
+
|
15
|
+
describe "when calling add_properties" do
|
16
|
+
it "should add -o and the key=value for each properties with a value" do
|
17
|
+
@resource.stubs(:[]).with(:quota).returns ""
|
18
|
+
@resource.stubs(:[]).with(:mountpoint).returns "/foo"
|
19
|
+
properties = @provider.add_properties
|
20
|
+
properties.include?("-o").should == true
|
21
|
+
properties.include?("mountpoint=/foo").should == true
|
22
|
+
properties.detect { |a| a.include?("quota") }.should == nil
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "when calling create" do
|
27
|
+
it "should call add_properties" do
|
28
|
+
@provider.stubs(:zfs)
|
29
|
+
@provider.expects(:add_properties).returns([])
|
30
|
+
@provider.create
|
31
|
+
end
|
32
|
+
|
33
|
+
it "should call zfs with create, properties and this zfs" do
|
34
|
+
@provider.stubs(:add_properties).returns(%w{a b})
|
35
|
+
@provider.expects(:zfs).with(:create, "a", "b", @resource[:name])
|
36
|
+
@provider.create
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "when calling delete" do
|
41
|
+
it "should call zfs with :destroy and this zfs" do
|
42
|
+
@provider.expects(:zfs).with(:destroy, @resource[:name])
|
43
|
+
@provider.delete
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe "when calling exist?" do
|
48
|
+
it "should call zfs with :list" do
|
49
|
+
#return stuff because we have to slice and dice it
|
50
|
+
@provider.expects(:zfs).with(:list).returns("NAME USED AVAIL REFER MOUNTPOINT\nmyzfs 100K 27.4M /myzfs")
|
51
|
+
@provider.exists?
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should return true if returned values match the name" do
|
55
|
+
@provider.stubs(:zfs).with(:list).returns("NAME USED AVAIL REFER MOUNTPOINT\n#{@resource[:name]} 100K 27.4M /myzfs")
|
56
|
+
@provider.exists?.should == true
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should return false if returned values don't match the name" do
|
60
|
+
@provider.stubs(:zfs).with(:list).returns("no soup for you")
|
61
|
+
@provider.exists?.should == false
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
|
66
|
+
[:mountpoint, :compression, :copies, :quota, :reservation, :sharenfs, :snapdir].each do |prop|
|
67
|
+
describe "when getting the #{prop} value" do
|
68
|
+
it "should call zfs with :get, #{prop} and this zfs" do
|
69
|
+
@provider.expects(:zfs).with(:get, "-H", "-o", "value", prop, @resource[:name]).returns("value\n")
|
70
|
+
@provider.send(prop)
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should get the third value of the second line from the output" do
|
74
|
+
@provider.stubs(:zfs).with(:get, "-H", "-o", "value", prop, @resource[:name]).returns("value\n")
|
75
|
+
@provider.send(prop).should == "value"
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "when setting the #{prop} value" do
|
80
|
+
it "should call zfs with :set, #{prop}=value and this zfs" do
|
81
|
+
@provider.expects(:zfs).with(:set, "#{prop}=value", @resource[:name])
|
82
|
+
@provider.send("#{prop}=".intern, "value")
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|