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,20 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
zone = Puppet::Type.type(:zone)
|
6
|
+
|
7
|
+
describe zone do
|
8
|
+
before do
|
9
|
+
@provider = stub 'provider'
|
10
|
+
@resource = stub 'resource', :resource => nil, :provider => @provider, :line => nil, :file => nil
|
11
|
+
end
|
12
|
+
|
13
|
+
parameters = [:create_args, :install_args]
|
14
|
+
|
15
|
+
parameters.each do |parameter|
|
16
|
+
it "should have a %s parameter" % parameter do
|
17
|
+
zone.attrclass(parameter).ancestors.should be_include(Puppet::Parameter)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
zpool = Puppet::Type.type(:zpool)
|
6
|
+
|
7
|
+
describe zpool do
|
8
|
+
before do
|
9
|
+
@provider = stub 'provider'
|
10
|
+
@resource = stub 'resource', :resource => nil, :provider => @provider, :line => nil, :file => nil
|
11
|
+
end
|
12
|
+
|
13
|
+
properties = [:ensure, :disk, :mirror, :raidz, :spare, :log]
|
14
|
+
|
15
|
+
properties.each do |property|
|
16
|
+
it "should have a %s property" % property do
|
17
|
+
zpool.attrclass(property).ancestors.should be_include(Puppet::Property)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
parameters = [:pool, :raid_parity]
|
22
|
+
|
23
|
+
parameters.each do |parameter|
|
24
|
+
it "should have a %s parameter" % parameter do
|
25
|
+
zpool.attrclass(parameter).ancestors.should be_include(Puppet::Parameter)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
vdev_property = Puppet::Property::VDev
|
31
|
+
|
32
|
+
describe vdev_property do
|
33
|
+
before do
|
34
|
+
vdev_property.initvars
|
35
|
+
@resource = stub 'resource', :[]= => nil, :property => nil
|
36
|
+
@property = vdev_property.new(:resource => @resource)
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should be insync if the devices are the same" do
|
40
|
+
@property.should = ["dev1 dev2"]
|
41
|
+
@property.insync?(["dev2 dev1"]).must be_true
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should be out of sync if the devices are not the same" do
|
45
|
+
@property.should = ["dev1 dev3"]
|
46
|
+
@property.insync?(["dev2 dev1"]).must be_false
|
47
|
+
end
|
48
|
+
|
49
|
+
it "should be insync if the devices are the same and the should values are comma seperated" do
|
50
|
+
@property.should = ["dev1", "dev2"]
|
51
|
+
@property.insync?(["dev2 dev1"]).must be_true
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should be out of sync if the device is absent and should has a value" do
|
55
|
+
@property.should = ["dev1", "dev2"]
|
56
|
+
@property.insync?(:absent).must be_false
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should be insync if the device is absent and should is absent" do
|
60
|
+
@property.should = [:absent]
|
61
|
+
@property.insync?(:absent).must be_true
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
multi_vdev_property = Puppet::Property::MultiVDev
|
66
|
+
|
67
|
+
describe multi_vdev_property do
|
68
|
+
before do
|
69
|
+
multi_vdev_property.initvars
|
70
|
+
@resource = stub 'resource', :[]= => nil, :property => nil
|
71
|
+
@property = multi_vdev_property.new(:resource => @resource)
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should be insync if the devices are the same" do
|
75
|
+
@property.should = ["dev1 dev2"]
|
76
|
+
@property.insync?(["dev2 dev1"]).must be_true
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should be out of sync if the devices are not the same" do
|
80
|
+
@property.should = ["dev1 dev3"]
|
81
|
+
@property.insync?(["dev2 dev1"]).must be_false
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should be out of sync if the device is absent and should has a value" do
|
85
|
+
@property.should = ["dev1", "dev2"]
|
86
|
+
@property.insync?(:absent).must be_false
|
87
|
+
end
|
88
|
+
|
89
|
+
it "should be insync if the device is absent and should is absent" do
|
90
|
+
@property.should = [:absent]
|
91
|
+
@property.insync?(:absent).must be_true
|
92
|
+
end
|
93
|
+
|
94
|
+
describe "when there are multiple lists of devices" do
|
95
|
+
it "should be in sync if each group has the same devices" do
|
96
|
+
@property.should = ["dev1 dev2", "dev3 dev4"]
|
97
|
+
@property.insync?(["dev2 dev1", "dev3 dev4"]).must be_true
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should be out of sync if any group has the different devices" do
|
101
|
+
@property.should = ["dev1 devX", "dev3 dev4"]
|
102
|
+
@property.insync?(["dev2 dev1", "dev3 dev4"]).must be_false
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should be out of sync if devices are in the wrong group" do
|
106
|
+
@property.should = ["dev1 dev2", "dev3 dev4"]
|
107
|
+
@property.insync?(["dev2 dev3", "dev1 dev4"]).must be_false
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
@@ -0,0 +1,99 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-9-22.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/util/checksums'
|
9
|
+
|
10
|
+
describe Puppet::Util::Checksums do
|
11
|
+
before do
|
12
|
+
@summer = Object.new
|
13
|
+
@summer.extend(Puppet::Util::Checksums)
|
14
|
+
end
|
15
|
+
|
16
|
+
content_sums = [:md5, :md5lite, :sha1, :sha1lite]
|
17
|
+
file_only = [:ctime, :mtime]
|
18
|
+
|
19
|
+
content_sums.each do |sumtype|
|
20
|
+
it "should be able to calculate %s sums from strings" % sumtype do
|
21
|
+
@summer.should be_respond_to(sumtype)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
[content_sums, file_only].flatten.each do |sumtype|
|
26
|
+
it "should be able to calculate %s sums from files" % sumtype do
|
27
|
+
@summer.should be_respond_to(sumtype.to_s + "_file")
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
{:md5 => Digest::MD5, :sha1 => Digest::SHA1}.each do |sum, klass|
|
32
|
+
describe("when using %s" % sum) do
|
33
|
+
it "should use #{klass} to calculate string checksums" do
|
34
|
+
klass.expects(:hexdigest).with("mycontent").returns "whatever"
|
35
|
+
@summer.send(sum, "mycontent").should == "whatever"
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should use incremental #{klass} sums to calculate file checksums" do
|
39
|
+
digest = mock 'digest'
|
40
|
+
klass.expects(:new).returns digest
|
41
|
+
|
42
|
+
file = "/path/to/my/file"
|
43
|
+
|
44
|
+
fh = mock 'filehandle'
|
45
|
+
fh.expects(:read).with(512).times(3).returns("firstline").then.returns("secondline").then.returns(nil)
|
46
|
+
#fh.expects(:read).with(512).returns("secondline")
|
47
|
+
#fh.expects(:read).with(512).returns(nil)
|
48
|
+
|
49
|
+
File.expects(:open).with(file, "r").yields(fh)
|
50
|
+
|
51
|
+
digest.expects(:<<).with "firstline"
|
52
|
+
digest.expects(:<<).with "secondline"
|
53
|
+
digest.expects(:hexdigest).returns :mydigest
|
54
|
+
|
55
|
+
@summer.send(sum.to_s + "_file", file).should == :mydigest
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
{:md5lite => Digest::MD5, :sha1lite => Digest::SHA1}.each do |sum, klass|
|
61
|
+
describe("when using %s" % sum) do
|
62
|
+
it "should use #{klass} to calculate string checksums from the first 512 characters of the string" do
|
63
|
+
content = "this is a test" * 100
|
64
|
+
klass.expects(:hexdigest).with(content[0..511]).returns "whatever"
|
65
|
+
@summer.send(sum, content).should == "whatever"
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should use #{klass} to calculate a sum from the first 512 characters in the file" do
|
69
|
+
digest = mock 'digest'
|
70
|
+
klass.expects(:new).returns digest
|
71
|
+
|
72
|
+
file = "/path/to/my/file"
|
73
|
+
|
74
|
+
fh = mock 'filehandle'
|
75
|
+
fh.expects(:read).with(512).returns('my content')
|
76
|
+
|
77
|
+
File.expects(:open).with(file, "r").yields(fh)
|
78
|
+
|
79
|
+
digest.expects(:<<).with "my content"
|
80
|
+
digest.expects(:hexdigest).returns :mydigest
|
81
|
+
|
82
|
+
@summer.send(sum.to_s + "_file", file).should == :mydigest
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
[:ctime, :mtime].each do |sum|
|
88
|
+
describe("when using %s" % sum) do
|
89
|
+
it "should use the '#{sum}' on the file to determine the ctime" do
|
90
|
+
file = "/my/file"
|
91
|
+
stat = mock 'stat', sum => "mysum"
|
92
|
+
|
93
|
+
File.expects(:stat).with(file).returns(stat)
|
94
|
+
|
95
|
+
@summer.send(sum.to_s + "_file", file).should == "mysum"
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-02-12.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/util/constant_inflector'
|
9
|
+
|
10
|
+
describe Puppet::Util::ConstantInflector, "when converting file names to constants" do
|
11
|
+
before do
|
12
|
+
@inflector = Object.new
|
13
|
+
@inflector.extend(Puppet::Util::ConstantInflector)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should capitalize terms" do
|
17
|
+
@inflector.file2constant("file").should == "File"
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should switch all '/' characters to double colons" do
|
21
|
+
@inflector.file2constant("file/other").should == "File::Other"
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should remove underscores and capitalize the proceeding letter" do
|
25
|
+
@inflector.file2constant("file_other").should == "FileOther"
|
26
|
+
end
|
27
|
+
|
28
|
+
it "should correctly replace as many underscores as exist in the file name" do
|
29
|
+
@inflector.file2constant("two_under_scores/with_some_more_underscores").should == "TwoUnderScores::WithSomeMoreUnderscores"
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should collapse multiple underscores" do
|
33
|
+
@inflector.file2constant("many___scores").should == "ManyScores"
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should correctly handle file names deeper than two directories" do
|
37
|
+
@inflector.file2constant("one_two/three_four/five_six").should == "OneTwo::ThreeFour::FiveSix"
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
describe Puppet::Util::ConstantInflector, "when converting constnats to file names" do
|
42
|
+
before do
|
43
|
+
@inflector = Object.new
|
44
|
+
@inflector.extend(Puppet::Util::ConstantInflector)
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should convert them to a string if necessary" do
|
48
|
+
@inflector.constant2file(Puppet::Util::ConstantInflector).should be_instance_of(String)
|
49
|
+
end
|
50
|
+
|
51
|
+
it "should accept string inputs" do
|
52
|
+
@inflector.constant2file("Puppet::Util::ConstantInflector").should be_instance_of(String)
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should downcase all terms" do
|
56
|
+
@inflector.constant2file("Puppet").should == "puppet"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should convert '::' to '/'" do
|
60
|
+
@inflector.constant2file("Puppet::Util::Constant").should == "puppet/util/constant"
|
61
|
+
end
|
62
|
+
|
63
|
+
it "should convert mid-word capitalization to an underscore" do
|
64
|
+
@inflector.constant2file("OneTwo::ThreeFour").should == "one_two/three_four"
|
65
|
+
end
|
66
|
+
|
67
|
+
it "should correctly handle constants with more than two parts" do
|
68
|
+
@inflector.constant2file("OneTwoThree::FourFiveSixSeven").should == "one_two_three/four_five_six_seven"
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,115 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
4
|
+
|
5
|
+
require 'puppet/util/file_locking'
|
6
|
+
|
7
|
+
class FileLocker
|
8
|
+
include Puppet::Util::FileLocking
|
9
|
+
end
|
10
|
+
|
11
|
+
describe Puppet::Util::FileLocking do
|
12
|
+
it "should have a module method for getting a read lock on files" do
|
13
|
+
Puppet::Util::FileLocking.should respond_to(:readlock)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should have a module method for getting a write lock on files" do
|
17
|
+
Puppet::Util::FileLocking.should respond_to(:writelock)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should have an instance method for getting a read lock on files" do
|
21
|
+
FileLocker.new.private_methods.should be_include("readlock")
|
22
|
+
end
|
23
|
+
|
24
|
+
it "should have an instance method for getting a write lock on files" do
|
25
|
+
FileLocker.new.private_methods.should be_include("writelock")
|
26
|
+
end
|
27
|
+
|
28
|
+
describe "when acquiring a read lock" do
|
29
|
+
it "should use a global shared mutex" do
|
30
|
+
sync = mock 'sync'
|
31
|
+
sync.expects(:synchronize).with(Sync::SH)
|
32
|
+
Puppet::Util.expects(:sync).with("/file").returns sync
|
33
|
+
|
34
|
+
Puppet::Util::FileLocking.readlock '/file'
|
35
|
+
end
|
36
|
+
|
37
|
+
it "should use a shared lock on the file" do
|
38
|
+
sync = mock 'sync'
|
39
|
+
sync.expects(:synchronize).yields
|
40
|
+
Puppet::Util.expects(:sync).with("/file").returns sync
|
41
|
+
|
42
|
+
fh = mock 'filehandle'
|
43
|
+
File.expects(:open).with("/file").yields fh
|
44
|
+
fh.expects(:lock_shared).yields "locked_fh"
|
45
|
+
|
46
|
+
result = nil
|
47
|
+
Puppet::Util::FileLocking.readlock('/file') { |l| result = l }
|
48
|
+
result.should == "locked_fh"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "when acquiring a write lock" do
|
53
|
+
before do
|
54
|
+
@sync = mock 'sync'
|
55
|
+
Puppet::Util.stubs(:sync).returns @sync
|
56
|
+
@sync.stubs(:synchronize).yields
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should fail if the parent directory does not exist" do
|
60
|
+
FileTest.expects(:directory?).with("/my/dir").returns false
|
61
|
+
|
62
|
+
lambda { Puppet::Util::FileLocking.writelock('/my/dir/file') }.should raise_error(Puppet::DevError)
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should use a global exclusive mutex" do
|
66
|
+
sync = mock 'sync'
|
67
|
+
sync.expects(:synchronize).with(Sync::EX)
|
68
|
+
Puppet::Util.expects(:sync).with("/file").returns sync
|
69
|
+
|
70
|
+
Puppet::Util::FileLocking.writelock '/file'
|
71
|
+
end
|
72
|
+
|
73
|
+
it "should use any specified mode when opening the file" do
|
74
|
+
File.expects(:open).with("/file", "w", :mymode)
|
75
|
+
|
76
|
+
Puppet::Util::FileLocking.writelock('/file', :mymode)
|
77
|
+
end
|
78
|
+
|
79
|
+
it "should use the mode of the existing file if no mode is specified" do
|
80
|
+
File.expects(:stat).with("/file").returns(mock("stat", :mode => 0755))
|
81
|
+
File.expects(:open).with("/file", "w", 0755)
|
82
|
+
|
83
|
+
Puppet::Util::FileLocking.writelock('/file')
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should use 0600 as the mode if no mode is specified and the file does not exist" do
|
87
|
+
File.expects(:stat).raises(Errno::ENOENT)
|
88
|
+
File.expects(:open).with("/file", "w", 0600)
|
89
|
+
|
90
|
+
Puppet::Util::FileLocking.writelock('/file')
|
91
|
+
end
|
92
|
+
|
93
|
+
it "should create an exclusive file lock" do
|
94
|
+
fh = mock 'fh'
|
95
|
+
File.expects(:open).yields fh
|
96
|
+
fh.expects(:lock_exclusive)
|
97
|
+
|
98
|
+
Puppet::Util::FileLocking.writelock('/file')
|
99
|
+
end
|
100
|
+
|
101
|
+
it "should allow the caller to write to the locked file" do
|
102
|
+
fh = mock 'fh'
|
103
|
+
File.expects(:open).yields fh
|
104
|
+
|
105
|
+
lfh = mock 'locked_filehandle'
|
106
|
+
fh.expects(:lock_exclusive).yields(lfh)
|
107
|
+
|
108
|
+
lfh.expects(:print).with "foo"
|
109
|
+
|
110
|
+
Puppet::Util::FileLocking.writelock('/file') do |f|
|
111
|
+
f.print "foo"
|
112
|
+
end
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
@@ -0,0 +1,169 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-3-19.
|
4
|
+
# Copyright (c) 2006. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/util/ldap/connection'
|
9
|
+
|
10
|
+
# So our mocks and such all work, even when ldap isn't available.
|
11
|
+
unless defined?(LDAP::Conn)
|
12
|
+
class LDAP
|
13
|
+
class Conn
|
14
|
+
def initialize(*args)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
class SSLConn < Conn; end
|
18
|
+
|
19
|
+
LDAP_OPT_PROTOCOL_VERSION = 1
|
20
|
+
LDAP_OPT_REFERRALS = 2
|
21
|
+
LDAP_OPT_ON = 3
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe Puppet::Util::Ldap::Connection do
|
26
|
+
before do
|
27
|
+
Puppet.features.stubs(:ldap?).returns true
|
28
|
+
|
29
|
+
@ldapconn = mock 'ldap'
|
30
|
+
LDAP::Conn.stubs(:new).returns(@ldapconn)
|
31
|
+
LDAP::SSLConn.stubs(:new).returns(@ldapconn)
|
32
|
+
|
33
|
+
@ldapconn.stub_everything
|
34
|
+
|
35
|
+
@connection = Puppet::Util::Ldap::Connection.new("host", "port")
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
describe "when creating connections" do
|
40
|
+
it "should require the host and port" do
|
41
|
+
lambda { Puppet::Util::Ldap::Connection.new("myhost") }.should raise_error(ArgumentError)
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should allow specification of a user and password" do
|
45
|
+
lambda { Puppet::Util::Ldap::Connection.new("myhost", "myport", :user => "blah", :password => "boo") }.should_not raise_error
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should allow specification of ssl" do
|
49
|
+
lambda { Puppet::Util::Ldap::Connection.new("myhost", "myport", :ssl => :tsl) }.should_not raise_error
|
50
|
+
end
|
51
|
+
|
52
|
+
it "should support requiring a new connection" do
|
53
|
+
lambda { Puppet::Util::Ldap::Connection.new("myhost", "myport", :reset => true) }.should_not raise_error
|
54
|
+
end
|
55
|
+
|
56
|
+
it "should fail if ldap is unavailable" do
|
57
|
+
Puppet.features.expects(:ldap?).returns(false)
|
58
|
+
|
59
|
+
lambda { Puppet::Util::Ldap::Connection.new("host", "port") }.should raise_error(Puppet::Error)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should use neither ssl nor tls by default" do
|
63
|
+
LDAP::Conn.expects(:new).with("host", "port").returns(@ldapconn)
|
64
|
+
|
65
|
+
@connection.start
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should use LDAP::SSLConn if ssl is requested" do
|
69
|
+
LDAP::SSLConn.expects(:new).with("host", "port").returns(@ldapconn)
|
70
|
+
|
71
|
+
@connection.ssl = true
|
72
|
+
|
73
|
+
@connection.start
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should use LDAP::SSLConn and tls if tls is requested" do
|
77
|
+
LDAP::SSLConn.expects(:new).with("host", "port", true).returns(@ldapconn)
|
78
|
+
|
79
|
+
@connection.ssl = :tls
|
80
|
+
|
81
|
+
@connection.start
|
82
|
+
end
|
83
|
+
|
84
|
+
it "should set the protocol version to 3 and enable referrals" do
|
85
|
+
@ldapconn.expects(:set_option).with(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
|
86
|
+
@ldapconn.expects(:set_option).with(LDAP::LDAP_OPT_REFERRALS, LDAP::LDAP_OPT_ON)
|
87
|
+
@connection.start
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should bind with the provided user and password" do
|
91
|
+
@connection.user = "myuser"
|
92
|
+
@connection.password = "mypassword"
|
93
|
+
@ldapconn.expects(:simple_bind).with("myuser", "mypassword")
|
94
|
+
|
95
|
+
@connection.start
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should bind with no user and password if none has been provided" do
|
99
|
+
@ldapconn.expects(:simple_bind).with(nil, nil)
|
100
|
+
@connection.start
|
101
|
+
end
|
102
|
+
end
|
103
|
+
|
104
|
+
describe "when closing connections" do
|
105
|
+
it "should not close connections that are not open" do
|
106
|
+
@connection.stubs(:connection).returns(@ldapconn)
|
107
|
+
|
108
|
+
@ldapconn.expects(:bound?).returns false
|
109
|
+
@ldapconn.expects(:unbind).never
|
110
|
+
|
111
|
+
@connection.close
|
112
|
+
end
|
113
|
+
end
|
114
|
+
|
115
|
+
it "should have a class-level method for creating a default connection" do
|
116
|
+
Puppet::Util::Ldap::Connection.should respond_to(:instance)
|
117
|
+
end
|
118
|
+
|
119
|
+
describe "when creating a default connection" do
|
120
|
+
before do
|
121
|
+
Puppet.settings.stubs(:value).returns "whatever"
|
122
|
+
end
|
123
|
+
|
124
|
+
it "should use the :ldapserver setting to determine the host" do
|
125
|
+
Puppet.settings.expects(:value).with(:ldapserver).returns "myserv"
|
126
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| host == "myserv" }
|
127
|
+
Puppet::Util::Ldap::Connection.instance
|
128
|
+
end
|
129
|
+
|
130
|
+
it "should use the :ldapport setting to determine the port" do
|
131
|
+
Puppet.settings.expects(:value).with(:ldapport).returns "456"
|
132
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| port == "456" }
|
133
|
+
Puppet::Util::Ldap::Connection.instance
|
134
|
+
end
|
135
|
+
|
136
|
+
it "should set ssl to :tls if tls is enabled" do
|
137
|
+
Puppet.settings.expects(:value).with(:ldaptls).returns true
|
138
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:ssl] == :tls }
|
139
|
+
Puppet::Util::Ldap::Connection.instance
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should set ssl to 'true' if ssl is enabled and tls is not" do
|
143
|
+
Puppet.settings.expects(:value).with(:ldaptls).returns false
|
144
|
+
Puppet.settings.expects(:value).with(:ldapssl).returns true
|
145
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:ssl] == true }
|
146
|
+
Puppet::Util::Ldap::Connection.instance
|
147
|
+
end
|
148
|
+
|
149
|
+
it "should set ssl to false if neither ssl nor tls are enabled" do
|
150
|
+
Puppet.settings.expects(:value).with(:ldaptls).returns false
|
151
|
+
Puppet.settings.expects(:value).with(:ldapssl).returns false
|
152
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:ssl] == false }
|
153
|
+
Puppet::Util::Ldap::Connection.instance
|
154
|
+
end
|
155
|
+
|
156
|
+
it "should set the ldapuser if one is set" do
|
157
|
+
Puppet.settings.expects(:value).with(:ldapuser).returns "foo"
|
158
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" }
|
159
|
+
Puppet::Util::Ldap::Connection.instance
|
160
|
+
end
|
161
|
+
|
162
|
+
it "should set the ldapuser and ldappassword if both is set" do
|
163
|
+
Puppet.settings.expects(:value).with(:ldapuser).returns "foo"
|
164
|
+
Puppet.settings.expects(:value).with(:ldappassword).returns "bar"
|
165
|
+
Puppet::Util::Ldap::Connection.expects(:new).with { |host, port, options| options[:user] == "foo" and options[:password] == "bar" }
|
166
|
+
Puppet::Util::Ldap::Connection.instance
|
167
|
+
end
|
168
|
+
end
|
169
|
+
end
|