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,63 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
require 'puppet/provider/confiner'
|
6
|
+
|
7
|
+
describe Puppet::Provider::Confiner do
|
8
|
+
before do
|
9
|
+
@object = Object.new
|
10
|
+
@object.extend(Puppet::Provider::Confiner)
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should have a method for defining confines" do
|
14
|
+
@object.should respond_to(:confine)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should have a method for returning its confine collection" do
|
18
|
+
@object.should respond_to(:confine_collection)
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should have a method for testing suitability" do
|
22
|
+
@object.should respond_to(:suitable?)
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should delegate its confine method to its confine collection" do
|
26
|
+
coll = mock 'collection'
|
27
|
+
@object.stubs(:confine_collection).returns coll
|
28
|
+
coll.expects(:confine).with(:foo => :bar, :bee => :baz)
|
29
|
+
@object.confine(:foo => :bar, :bee => :baz)
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should create a new confine collection if one does not exist" do
|
33
|
+
Puppet::Provider::ConfineCollection.expects(:new).with("mylabel").returns "mycoll"
|
34
|
+
@object.expects(:to_s).returns "mylabel"
|
35
|
+
@object.confine_collection.should == "mycoll"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should reuse the confine collection" do
|
39
|
+
@object.confine_collection.should equal(@object.confine_collection)
|
40
|
+
end
|
41
|
+
|
42
|
+
describe "when testing suitability" do
|
43
|
+
before do
|
44
|
+
@coll = mock 'collection'
|
45
|
+
@object.stubs(:confine_collection).returns @coll
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should return true if the confine collection is valid" do
|
49
|
+
@coll.expects(:valid?).returns true
|
50
|
+
@object.should be_suitable
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should return false if the confine collection is invalid" do
|
54
|
+
@coll.expects(:valid?).returns false
|
55
|
+
@object.should_not be_suitable
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should return the summary of the confine collection if a long result is asked for" do
|
59
|
+
@coll.expects(:summary).returns "myresult"
|
60
|
+
@object.suitable?(false).should == "myresult"
|
61
|
+
end
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
|
5
|
+
provider_class = Puppet::Type.type(:group).provider(:groupadd)
|
6
|
+
|
7
|
+
describe provider_class do
|
8
|
+
before do
|
9
|
+
@resource = stub("resource", :name => "mygroup")
|
10
|
+
@provider = provider_class.new(@resource)
|
11
|
+
end
|
12
|
+
|
13
|
+
# #1360
|
14
|
+
it "should add -o when allowdupe is enabled and the group is being created" do
|
15
|
+
@resource.stubs(:should).returns "fakeval"
|
16
|
+
@resource.stubs(:[]).returns "fakeval"
|
17
|
+
@resource.expects(:allowdupe?).returns true
|
18
|
+
@provider.expects(:execute).with { |args| args.include?("-o") }
|
19
|
+
|
20
|
+
@provider.create
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should add -o when allowdupe is enabled and the gid is being modified" do
|
24
|
+
@resource.stubs(:should).returns "fakeval"
|
25
|
+
@resource.stubs(:[]).returns "fakeval"
|
26
|
+
@resource.expects(:allowdupe?).returns true
|
27
|
+
@provider.expects(:execute).with { |args| args.include?("-o") }
|
28
|
+
|
29
|
+
@provider.gid = 150
|
30
|
+
end
|
31
|
+
end
|
@@ -0,0 +1,105 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-3-10.
|
4
|
+
# Copyright (c) 2006. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
7
|
+
|
8
|
+
provider_class = Puppet::Type.type(:group).provider(:ldap)
|
9
|
+
|
10
|
+
describe provider_class do
|
11
|
+
it "should have the Ldap provider class as its baseclass" do
|
12
|
+
provider_class.superclass.should equal(Puppet::Provider::Ldap)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should manage :posixGroup objectclass" do
|
16
|
+
provider_class.manager.objectclasses.should == [:posixGroup]
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should use 'ou=Groups' as its relative base" do
|
20
|
+
provider_class.manager.location.should == "ou=Groups"
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should use :cn as its rdn" do
|
24
|
+
provider_class.manager.rdn.should == :cn
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should map :name to 'cn'" do
|
28
|
+
provider_class.manager.ldap_name(:name).should == 'cn'
|
29
|
+
end
|
30
|
+
|
31
|
+
it "should map :gid to 'gidNumber'" do
|
32
|
+
provider_class.manager.ldap_name(:gid).should == 'gidNumber'
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should map :members to 'memberUid', to be used by the user ldap provider" do
|
36
|
+
provider_class.manager.ldap_name(:members).should == 'memberUid'
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "when being created" do
|
40
|
+
before do
|
41
|
+
# So we don't try to actually talk to ldap
|
42
|
+
@connection = mock 'connection'
|
43
|
+
provider_class.manager.stubs(:connect).yields @connection
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "with no gid specified" do
|
47
|
+
it "should pick the first available GID after the largest existing GID" do
|
48
|
+
low = {:name=>["luke"], :gid=>["600"]}
|
49
|
+
high = {:name=>["testing"], :gid=>["640"]}
|
50
|
+
provider_class.manager.expects(:search).returns([low, high])
|
51
|
+
|
52
|
+
resource = stub 'resource', :should => %w{whatever}
|
53
|
+
resource.stubs(:should).with(:gid).returns nil
|
54
|
+
resource.stubs(:should).with(:ensure).returns :present
|
55
|
+
instance = provider_class.new(:name => "luke", :ensure => :absent)
|
56
|
+
instance.stubs(:resource).returns resource
|
57
|
+
|
58
|
+
@connection.expects(:add).with { |dn, attrs| attrs["gidNumber"] == ["641"] }
|
59
|
+
|
60
|
+
instance.create
|
61
|
+
instance.flush
|
62
|
+
end
|
63
|
+
|
64
|
+
it "should pick '501' as its GID if no groups are found" do
|
65
|
+
provider_class.manager.expects(:search).returns nil
|
66
|
+
|
67
|
+
resource = stub 'resource', :should => %w{whatever}
|
68
|
+
resource.stubs(:should).with(:gid).returns nil
|
69
|
+
resource.stubs(:should).with(:ensure).returns :present
|
70
|
+
instance = provider_class.new(:name => "luke", :ensure => :absent)
|
71
|
+
instance.stubs(:resource).returns resource
|
72
|
+
|
73
|
+
@connection.expects(:add).with { |dn, attrs| attrs["gidNumber"] == ["501"] }
|
74
|
+
|
75
|
+
instance.create
|
76
|
+
instance.flush
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should have a method for converting group names to GIDs" do
|
82
|
+
provider_class.should respond_to(:name2id)
|
83
|
+
end
|
84
|
+
|
85
|
+
describe "when converting from a group name to GID" do
|
86
|
+
it "should use the ldap manager to look up the GID" do
|
87
|
+
provider_class.manager.expects(:search).with("cn=foo")
|
88
|
+
provider_class.name2id("foo")
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should return nil if no group is found" do
|
92
|
+
provider_class.manager.expects(:search).with("cn=foo").returns nil
|
93
|
+
provider_class.name2id("foo").should be_nil
|
94
|
+
provider_class.manager.expects(:search).with("cn=bar").returns []
|
95
|
+
provider_class.name2id("bar").should be_nil
|
96
|
+
end
|
97
|
+
|
98
|
+
# We shouldn't ever actually have more than one gid, but it doesn't hurt
|
99
|
+
# to test for the possibility.
|
100
|
+
it "should return the first gid from the first returned group" do
|
101
|
+
provider_class.manager.expects(:search).with("cn=foo").returns [{:name => "foo", :gid => [10, 11]}, {:name => :bar, :gid => [20, 21]}]
|
102
|
+
provider_class.name2id("foo").should == 10
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
@@ -0,0 +1,248 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-3-21.
|
4
|
+
# Copyright (c) 2006. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/provider/ldap'
|
9
|
+
|
10
|
+
describe Puppet::Provider::Ldap do
|
11
|
+
before do
|
12
|
+
@class = Class.new(Puppet::Provider::Ldap)
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should be able to define its manager" do
|
16
|
+
manager = mock 'manager'
|
17
|
+
Puppet::Util::Ldap::Manager.expects(:new).returns manager
|
18
|
+
@class.stubs :mk_resource_methods
|
19
|
+
manager.expects(:manages).with(:one)
|
20
|
+
@class.manages(:one).should equal(manager)
|
21
|
+
@class.manager.should equal(manager)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should be able to prefetch instances from ldap" do
|
25
|
+
@class.should respond_to(:prefetch)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should create its resource getter/setter methods when the manager is defined" do
|
29
|
+
manager = mock 'manager'
|
30
|
+
Puppet::Util::Ldap::Manager.expects(:new).returns manager
|
31
|
+
@class.expects :mk_resource_methods
|
32
|
+
manager.stubs(:manages)
|
33
|
+
@class.manages(:one).should equal(manager)
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should have an instances method" do
|
37
|
+
@class.should respond_to(:instances)
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "when providing a list of instances" do
|
41
|
+
it "should convert all results returned from the manager's :search method into provider instances" do
|
42
|
+
manager = mock 'manager'
|
43
|
+
@class.stubs(:manager).returns manager
|
44
|
+
|
45
|
+
manager.expects(:search).returns %w{one two three}
|
46
|
+
|
47
|
+
@class.expects(:new).with("one").returns(1)
|
48
|
+
@class.expects(:new).with("two").returns(2)
|
49
|
+
@class.expects(:new).with("three").returns(3)
|
50
|
+
|
51
|
+
@class.instances.should == [1,2,3]
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should have a prefetch method" do
|
56
|
+
@class.should respond_to(:prefetch)
|
57
|
+
end
|
58
|
+
|
59
|
+
describe "when prefetching" do
|
60
|
+
before do
|
61
|
+
@manager = mock 'manager'
|
62
|
+
@class.stubs(:manager).returns @manager
|
63
|
+
|
64
|
+
@resource = mock 'resource'
|
65
|
+
|
66
|
+
@resources = {"one" => @resource}
|
67
|
+
end
|
68
|
+
|
69
|
+
it "should find an entry for each passed resource" do
|
70
|
+
@manager.expects(:find).with("one").returns nil
|
71
|
+
|
72
|
+
@class.stubs(:new)
|
73
|
+
@resource.stubs(:provider=)
|
74
|
+
@class.prefetch(@resources)
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "resources that do not exist" do
|
78
|
+
it "should create a provider with :ensure => :absent" do
|
79
|
+
result = mock 'result'
|
80
|
+
@manager.expects(:find).with("one").returns nil
|
81
|
+
|
82
|
+
@class.expects(:new).with(:ensure => :absent).returns "myprovider"
|
83
|
+
|
84
|
+
@resource.expects(:provider=).with("myprovider")
|
85
|
+
|
86
|
+
@class.prefetch(@resources)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
|
90
|
+
describe "resources that exist" do
|
91
|
+
it "should create a provider with the results of the find" do
|
92
|
+
@manager.expects(:find).with("one").returns("one" => "two")
|
93
|
+
|
94
|
+
@class.expects(:new).with("one" => "two", :ensure => :present).returns "myprovider"
|
95
|
+
|
96
|
+
@resource.expects(:provider=).with("myprovider")
|
97
|
+
|
98
|
+
@class.prefetch(@resources)
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should set :ensure to :present in the returned values" do
|
102
|
+
@manager.expects(:find).with("one").returns("one" => "two")
|
103
|
+
|
104
|
+
@class.expects(:new).with("one" => "two", :ensure => :present).returns "myprovider"
|
105
|
+
|
106
|
+
@resource.expects(:provider=).with("myprovider")
|
107
|
+
|
108
|
+
@class.prefetch(@resources)
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
describe "when being initialized" do
|
114
|
+
it "should fail if no manager has been defined" do
|
115
|
+
lambda { @class.new }.should raise_error(Puppet::DevError)
|
116
|
+
end
|
117
|
+
|
118
|
+
it "should fail if the manager is invalid" do
|
119
|
+
manager = stub "manager", :valid? => false
|
120
|
+
@class.stubs(:manager).returns manager
|
121
|
+
lambda { @class.new }.should raise_error(Puppet::DevError)
|
122
|
+
end
|
123
|
+
|
124
|
+
describe "with a hash" do
|
125
|
+
before do
|
126
|
+
@manager = stub "manager", :valid? => true
|
127
|
+
@class.stubs(:manager).returns @manager
|
128
|
+
|
129
|
+
@resource_class = mock 'resource_class'
|
130
|
+
@class.stubs(:resource_type).returns @resource_class
|
131
|
+
|
132
|
+
@property_class = stub 'property_class', :array_matching => :all, :superclass => Puppet::Property
|
133
|
+
@resource_class.stubs(:attrclass).with(:one).returns(@property_class)
|
134
|
+
@resource_class.stubs(:validattr?).returns true
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should store a copy of the hash as its ldap_properties" do
|
138
|
+
instance = @class.new(:one => :two)
|
139
|
+
instance.ldap_properties.should == {:one => :two}
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should only store the first value of each value array for those attributes that do not match all values" do
|
143
|
+
@property_class.expects(:array_matching).returns :first
|
144
|
+
instance = @class.new(:one => %w{two three})
|
145
|
+
instance.properties.should == {:one => "two"}
|
146
|
+
end
|
147
|
+
|
148
|
+
it "should store the whole value array for those attributes that match all values" do
|
149
|
+
@property_class.expects(:array_matching).returns :all
|
150
|
+
instance = @class.new(:one => %w{two three})
|
151
|
+
instance.properties.should == {:one => %w{two three}}
|
152
|
+
end
|
153
|
+
|
154
|
+
it "should only use the first value for attributes that are not properties" do
|
155
|
+
# Yay. hackish, but easier than mocking everything.
|
156
|
+
@resource_class.expects(:attrclass).with(:a).returns Puppet::Type.type(:user).attrclass(:name)
|
157
|
+
@property_class.stubs(:array_matching).returns :all
|
158
|
+
|
159
|
+
instance = @class.new(:one => %w{two three}, :a => %w{b c})
|
160
|
+
instance.properties.should == {:one => %w{two three}, :a => "b"}
|
161
|
+
end
|
162
|
+
|
163
|
+
it "should discard any properties not valid in the resource class" do
|
164
|
+
@resource_class.expects(:validattr?).with(:a).returns false
|
165
|
+
@property_class.stubs(:array_matching).returns :all
|
166
|
+
|
167
|
+
instance = @class.new(:one => %w{two three}, :a => %w{b})
|
168
|
+
instance.properties.should == {:one => %w{two three}}
|
169
|
+
end
|
170
|
+
end
|
171
|
+
end
|
172
|
+
|
173
|
+
describe "when an instance" do
|
174
|
+
before do
|
175
|
+
@manager = stub "manager", :valid? => true
|
176
|
+
@class.stubs(:manager).returns @manager
|
177
|
+
@instance = @class.new
|
178
|
+
|
179
|
+
@property_class = stub 'property_class', :array_matching => :all, :superclass => Puppet::Property
|
180
|
+
@resource_class = stub 'resource_class', :attrclass => @property_class, :validattr? => true, :validproperties => [:one, :two]
|
181
|
+
@class.stubs(:resource_type).returns @resource_class
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should have a method for creating the ldap entry" do
|
185
|
+
@instance.should respond_to(:create)
|
186
|
+
end
|
187
|
+
|
188
|
+
it "should have a method for removing the ldap entry" do
|
189
|
+
@instance.should respond_to(:delete)
|
190
|
+
end
|
191
|
+
|
192
|
+
it "should have a method for returning the class's manager" do
|
193
|
+
@instance.manager.should equal(@manager)
|
194
|
+
end
|
195
|
+
|
196
|
+
it "should indicate when the ldap entry already exists" do
|
197
|
+
@instance = @class.new(:ensure => :present)
|
198
|
+
@instance.exists?.should be_true
|
199
|
+
end
|
200
|
+
|
201
|
+
it "should indicate when the ldap entry does not exist" do
|
202
|
+
@instance = @class.new(:ensure => :absent)
|
203
|
+
@instance.exists?.should be_false
|
204
|
+
end
|
205
|
+
|
206
|
+
describe "is being flushed" do
|
207
|
+
it "should call the manager's :update method with its name, current attributes, and desired attributes" do
|
208
|
+
@instance.stubs(:name).returns "myname"
|
209
|
+
@instance.stubs(:ldap_properties).returns(:one => :two)
|
210
|
+
@instance.stubs(:properties).returns(:three => :four)
|
211
|
+
@manager.expects(:update).with(@instance.name, {:one => :two}, {:three => :four})
|
212
|
+
@instance.flush
|
213
|
+
end
|
214
|
+
end
|
215
|
+
|
216
|
+
describe "is being created" do
|
217
|
+
before do
|
218
|
+
@rclass = mock 'resource_class'
|
219
|
+
@rclass.stubs(:validproperties).returns([:one, :two])
|
220
|
+
@resource = mock 'resource'
|
221
|
+
@resource.stubs(:class).returns @rclass
|
222
|
+
@resource.stubs(:should).returns nil
|
223
|
+
@instance.stubs(:resource).returns @resource
|
224
|
+
end
|
225
|
+
|
226
|
+
it "should set its :ensure value to :present" do
|
227
|
+
@instance.create
|
228
|
+
@instance.properties[:ensure].should == :present
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should set all of the other attributes from the resource" do
|
232
|
+
@resource.expects(:should).with(:one).returns "oneval"
|
233
|
+
@resource.expects(:should).with(:two).returns "twoval"
|
234
|
+
|
235
|
+
@instance.create
|
236
|
+
@instance.properties[:one].should == "oneval"
|
237
|
+
@instance.properties[:two].should == "twoval"
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
describe "is being deleted" do
|
242
|
+
it "should set its :ensure value to :absent" do
|
243
|
+
@instance.delete
|
244
|
+
@instance.properties[:ensure].should == :absent
|
245
|
+
end
|
246
|
+
end
|
247
|
+
end
|
248
|
+
end
|