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,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
require 'puppet/network/server'
|
5
|
+
require 'socket'
|
6
|
+
|
7
|
+
describe Puppet::Network::Server do
|
8
|
+
describe "when using mongrel" do
|
9
|
+
confine "Mongrel is not available" => Puppet.features.mongrel?
|
10
|
+
|
11
|
+
before :each do
|
12
|
+
Puppet[:servertype] = 'mongrel'
|
13
|
+
@params = { :address => "127.0.0.1", :port => 34346, :handlers => [ :node ] }
|
14
|
+
@server = Puppet::Network::Server.new(@params)
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "before listening" do
|
18
|
+
it "should not be reachable at the specified address and port" do
|
19
|
+
lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "when listening" do
|
24
|
+
it "should be reachable on the specified address and port" do
|
25
|
+
@server.listen
|
26
|
+
lambda { TCPSocket.new('127.0.0.1', 34346) }.should_not raise_error
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should not allow multiple servers to listen on the same address and port" do
|
30
|
+
@server.listen
|
31
|
+
@server2 = Puppet::Network::Server.new(@params)
|
32
|
+
lambda { @server2.listen }.should raise_error
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "after unlistening" do
|
37
|
+
it "should not be reachable on the port and address assigned" do
|
38
|
+
@server.listen
|
39
|
+
@server.unlisten
|
40
|
+
lambda { TCPSocket.new('127.0.0.1', 34346) }.should raise_error(Errno::ECONNREFUSED)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
after :each do
|
45
|
+
@server.unlisten if @server.listening?
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../../spec_helper'
|
4
|
+
require 'puppet/network/server'
|
5
|
+
require 'socket'
|
6
|
+
|
7
|
+
describe Puppet::Network::Server do
|
8
|
+
describe "when using webrick" do
|
9
|
+
before :each do
|
10
|
+
Puppet[:servertype] = 'webrick'
|
11
|
+
@params = { :address => "127.0.0.1", :port => 34343, :handlers => [ :node ] }
|
12
|
+
end
|
13
|
+
|
14
|
+
describe "before listening" do
|
15
|
+
it "should not be reachable at the specified address and port" do
|
16
|
+
lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "when listening" do
|
21
|
+
it "should be reachable on the specified address and port" do
|
22
|
+
@server = Puppet::Network::Server.new(@params.merge(:port => 34343))
|
23
|
+
@server.listen
|
24
|
+
lambda { TCPSocket.new('127.0.0.1', 34343) }.should_not raise_error
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should not allow multiple servers to listen on the same address and port" do
|
28
|
+
@server = Puppet::Network::Server.new(@params.merge(:port => 34343))
|
29
|
+
@server.listen
|
30
|
+
@server2 = Puppet::Network::Server.new(@params.merge(:port => 34343))
|
31
|
+
lambda { @server2.listen }.should raise_error
|
32
|
+
end
|
33
|
+
|
34
|
+
after :each do
|
35
|
+
@server.unlisten if @server.listening?
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
describe "after unlistening" do
|
40
|
+
it "should not be reachable on the port and address assigned" do
|
41
|
+
@server = Puppet::Network::Server.new(@params.merge(:port => 34343))
|
42
|
+
@server.listen
|
43
|
+
@server.unlisten
|
44
|
+
lambda { TCPSocket.new('127.0.0.1', 34343) }.should raise_error(Errno::ECONNREFUSED)
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,93 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-9-23.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/node'
|
9
|
+
|
10
|
+
describe Puppet::Node do
|
11
|
+
describe "when delegating indirection calls" do
|
12
|
+
before do
|
13
|
+
@name = "me"
|
14
|
+
@node = Puppet::Node.new(@name)
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should be able to use the exec terminus" do
|
18
|
+
Puppet::Node.indirection.stubs(:terminus_class).returns :exec
|
19
|
+
|
20
|
+
# Load now so we can stub
|
21
|
+
terminus = Puppet::Node.indirection.terminus(:exec)
|
22
|
+
|
23
|
+
terminus.expects(:query).with(@name).returns "myresults"
|
24
|
+
terminus.expects(:translate).with(@name, "myresults").returns "translated_results"
|
25
|
+
terminus.expects(:create_node).with(@name, "translated_results").returns @node
|
26
|
+
|
27
|
+
Puppet::Node.find(@name).should equal(@node)
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should be able to use the yaml terminus" do
|
31
|
+
Puppet::Node.indirection.stubs(:terminus_class).returns :yaml
|
32
|
+
|
33
|
+
# Load now, before we stub the exists? method.
|
34
|
+
terminus = Puppet::Node.indirection.terminus(:yaml)
|
35
|
+
|
36
|
+
terminus.expects(:path).with(@name).returns "/my/yaml/file"
|
37
|
+
|
38
|
+
FileTest.expects(:exist?).with("/my/yaml/file").returns false
|
39
|
+
Puppet::Node.find(@name).should be_nil
|
40
|
+
end
|
41
|
+
|
42
|
+
it "should have an ldap terminus" do
|
43
|
+
Puppet::Node.indirection.terminus(:ldap).should_not be_nil
|
44
|
+
end
|
45
|
+
|
46
|
+
it "should be able to use the plain terminus" do
|
47
|
+
Puppet::Node.indirection.stubs(:terminus_class).returns :plain
|
48
|
+
|
49
|
+
# Load now, before we stub the exists? method.
|
50
|
+
Puppet::Node.indirection.terminus(:plain)
|
51
|
+
|
52
|
+
Puppet::Node.expects(:new).with(@name).returns @node
|
53
|
+
|
54
|
+
Puppet::Node.find(@name).should equal(@node)
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "and using the memory terminus" do
|
58
|
+
before do
|
59
|
+
@name = "me"
|
60
|
+
@old_terminus = Puppet::Node.indirection.terminus_class
|
61
|
+
@terminus = Puppet::Node.indirection.terminus(:memory)
|
62
|
+
Puppet::Node.indirection.stubs(:terminus).returns @terminus
|
63
|
+
@node = Puppet::Node.new(@name)
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should find no nodes by default" do
|
67
|
+
Puppet::Node.find(@name).should be_nil
|
68
|
+
end
|
69
|
+
|
70
|
+
it "should be able to find nodes that were previously saved" do
|
71
|
+
@node.save
|
72
|
+
Puppet::Node.find(@name).should equal(@node)
|
73
|
+
end
|
74
|
+
|
75
|
+
it "should replace existing saved nodes when a new node with the same name is saved" do
|
76
|
+
@node.save
|
77
|
+
two = Puppet::Node.new(@name)
|
78
|
+
two.save
|
79
|
+
Puppet::Node.find(@name).should equal(two)
|
80
|
+
end
|
81
|
+
|
82
|
+
it "should be able to remove previously saved nodes" do
|
83
|
+
@node.save
|
84
|
+
Puppet::Node.destroy(@node.name)
|
85
|
+
Puppet::Node.find(@name).should be_nil
|
86
|
+
end
|
87
|
+
|
88
|
+
it "should fail when asked to destroy a node that does not exist" do
|
89
|
+
proc { Puppet::Node.destroy(@node) }.should raise_error(ArgumentError)
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-4-8.
|
4
|
+
# Copyright (c) 2008. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
describe Puppet::Node::Catalog do
|
9
|
+
describe "when using the indirector" do
|
10
|
+
before do
|
11
|
+
# This is so the tests work w/out networking.
|
12
|
+
Facter.stubs(:to_hash).returns({"hostname" => "foo.domain.com"})
|
13
|
+
Facter.stubs(:value).returns("eh")
|
14
|
+
end
|
15
|
+
|
16
|
+
after { Puppet::Node::Catalog.indirection.clear_cache }
|
17
|
+
|
18
|
+
it "should be able to delegate to the :yaml terminus" do
|
19
|
+
Puppet::Node::Catalog.indirection.stubs(:terminus_class).returns :yaml
|
20
|
+
|
21
|
+
# Load now, before we stub the exists? method.
|
22
|
+
terminus = Puppet::Node::Catalog.indirection.terminus(:yaml)
|
23
|
+
terminus.expects(:path).with("me").returns "/my/yaml/file"
|
24
|
+
|
25
|
+
FileTest.expects(:exist?).with("/my/yaml/file").returns false
|
26
|
+
Puppet::Node::Catalog.find("me").should be_nil
|
27
|
+
end
|
28
|
+
|
29
|
+
it "should be able to delegate to the :compiler terminus" do
|
30
|
+
Puppet::Node::Catalog.indirection.stubs(:terminus_class).returns :compiler
|
31
|
+
|
32
|
+
# Load now, before we stub the exists? method.
|
33
|
+
compiler = Puppet::Node::Catalog.indirection.terminus(:compiler)
|
34
|
+
|
35
|
+
node = mock 'node'
|
36
|
+
node.stub_everything
|
37
|
+
|
38
|
+
Puppet::Node.expects(:find).returns(node)
|
39
|
+
compiler.expects(:compile).with(node).returns nil
|
40
|
+
|
41
|
+
Puppet::Node::Catalog.find("me").should be_nil
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should pass provided node information directly to the terminus" do
|
45
|
+
terminus = mock 'terminus'
|
46
|
+
|
47
|
+
Puppet::Node::Catalog.indirection.stubs(:terminus).returns terminus
|
48
|
+
|
49
|
+
node = mock 'node'
|
50
|
+
terminus.expects(:find).with { |request| request.options[:use_node] == node }
|
51
|
+
Puppet::Node::Catalog.find("me", :use_node => node)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-4-8.
|
4
|
+
# Copyright (c) 2008. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
describe Puppet::Node::Facts do
|
9
|
+
describe "when using the indirector" do
|
10
|
+
after { Puppet::Node::Facts.indirection.clear_cache }
|
11
|
+
|
12
|
+
it "should expire any cached node instances when it is saved" do
|
13
|
+
Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :yaml
|
14
|
+
terminus = Puppet::Node::Facts.indirection.terminus(:yaml)
|
15
|
+
|
16
|
+
terminus.expects(:save)
|
17
|
+
Puppet::Node.expects(:expire).with("me")
|
18
|
+
|
19
|
+
facts = Puppet::Node::Facts.new("me")
|
20
|
+
facts.save
|
21
|
+
end
|
22
|
+
|
23
|
+
it "should be able to delegate to the :yaml terminus" do
|
24
|
+
Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :yaml
|
25
|
+
|
26
|
+
# Load now, before we stub the exists? method.
|
27
|
+
terminus = Puppet::Node::Facts.indirection.terminus(:yaml)
|
28
|
+
|
29
|
+
terminus.expects(:path).with("me").returns "/my/yaml/file"
|
30
|
+
FileTest.expects(:exist?).with("/my/yaml/file").returns false
|
31
|
+
|
32
|
+
Puppet::Node::Facts.find("me").should be_nil
|
33
|
+
end
|
34
|
+
|
35
|
+
it "should be able to delegate to the :facter terminus" do
|
36
|
+
Puppet::Node::Facts.indirection.stubs(:terminus_class).returns :facter
|
37
|
+
|
38
|
+
Facter.expects(:to_hash).returns "facter_hash"
|
39
|
+
facts = Puppet::Node::Facts.new("me")
|
40
|
+
Puppet::Node::Facts.expects(:new).with("me", "facter_hash").returns facts
|
41
|
+
|
42
|
+
Puppet::Node::Facts.find("me").should equal(facts)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,26 @@
|
|
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
|
+
describe "Package Provider" do
|
6
|
+
Puppet::Type.type(:package).providers.each do |name|
|
7
|
+
provider = Puppet::Type.type(:package).provider(name)
|
8
|
+
|
9
|
+
describe name do
|
10
|
+
confine "Provider %s is not suitable" % name => provider.suitable?
|
11
|
+
|
12
|
+
it "should fail when asked to install an invalid package" do
|
13
|
+
pending("This test hangs forever with recent versions of RubyGems") if provider.name == :gem
|
14
|
+
pkg = Puppet::Type.newpackage :name => "nosuch%s" % provider.name.to_s, :provider => provider.name
|
15
|
+
lambda { pkg.provider.install }.should raise_error
|
16
|
+
end
|
17
|
+
|
18
|
+
it "should be able to get a list of existing packages" do
|
19
|
+
provider.instances.each do |package|
|
20
|
+
package.should be_instance_of(provider)
|
21
|
+
package.properties[:provider].should == provider.name
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
# Find and load the spec file.
|
4
|
+
Dir.chdir(File.dirname(__FILE__)) { (s = lambda { |f| File.exist?(f) ? require(f) : Dir.chdir("..") { s.call(f) } }).call("spec/spec_helper.rb") }
|
5
|
+
|
6
|
+
provider = Puppet::Type.type(:service).provider(:init)
|
7
|
+
|
8
|
+
describe provider do
|
9
|
+
describe "when running on FreeBSD" do
|
10
|
+
confine "Not running on FreeBSD" => (Facter.value(:operatingsystem) == "FreeBSD")
|
11
|
+
|
12
|
+
it "should set its default path to include /etc/init.d and /usr/local/etc/init.d" do
|
13
|
+
provider.defpath.should == ["/etc/rc.d", "/usr/local/etc/rc.d"]
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "when running on HP-UX" do
|
18
|
+
confine "Not running on HP-UX" => (Facter.value(:operatingsystem) == "HP-UX")
|
19
|
+
|
20
|
+
it "should set its default path to include /sbin/init.d" do
|
21
|
+
provider.defpath.should == "/sbin/init.d"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
describe "when not running on FreeBSD or HP-UX" do
|
26
|
+
confine "Running on HP-UX or FreeBSD" => (! %w{HP-UX FreeBSD}.include?(Facter.value(:operatingsystem)))
|
27
|
+
|
28
|
+
it "should set its default path to include /etc/init.d" do
|
29
|
+
provider.defpath.should == "/etc/init.d"
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,17 @@
|
|
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/reference'
|
6
|
+
|
7
|
+
reference = Puppet::Util::Reference.reference(:providers)
|
8
|
+
|
9
|
+
describe reference do
|
10
|
+
it "should exist" do
|
11
|
+
reference.should_not be_nil
|
12
|
+
end
|
13
|
+
|
14
|
+
it "should be able to be rendered as text" do
|
15
|
+
lambda { reference.to_text }.should_not raise_error
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2007-10-12.
|
4
|
+
# Copyright (c) 2007. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
7
|
+
|
8
|
+
require 'puppet/reports'
|
9
|
+
|
10
|
+
describe Puppet::Reports, " when using report types" do
|
11
|
+
it "should load report types as modules" do
|
12
|
+
Puppet::Reports.report(:store).should be_instance_of(Module)
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
#
|
3
|
+
# Created by Luke Kanies on 2008-4-8.
|
4
|
+
# Copyright (c) 2008. All rights reserved.
|
5
|
+
|
6
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
|
+
|
8
|
+
describe Puppet::Transaction::Report do
|
9
|
+
describe "when using the indirector" do
|
10
|
+
after { Puppet::Transaction::Report.indirection.clear_cache }
|
11
|
+
|
12
|
+
it "should be able to delegate to the :processor terminus" do
|
13
|
+
Puppet::Transaction::Report.indirection.stubs(:terminus_class).returns :processor
|
14
|
+
|
15
|
+
terminus = Puppet::Transaction::Report.indirection.terminus(:processor)
|
16
|
+
|
17
|
+
Facter.stubs(:value).returns "host.domain.com"
|
18
|
+
|
19
|
+
report = Puppet::Transaction::Report.new
|
20
|
+
|
21
|
+
terminus.expects(:process).with(report)
|
22
|
+
|
23
|
+
report.save
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/../../spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:package), "when choosing a default package provider" do
|
6
|
+
before do
|
7
|
+
# the default provider is cached.
|
8
|
+
Puppet::Type.type(:package).defaultprovider = nil
|
9
|
+
end
|
10
|
+
|
11
|
+
def provider_name(os)
|
12
|
+
{"Debian" => :apt, "Darwin" => :apple, "RedHat" => :up2date, "Fedora" => :yum, "FreeBSD" => :ports, "OpenBSD" => :openbsd, "Solaris" => :sun}[os]
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should have a default provider" do
|
16
|
+
Puppet::Type.type(:package).defaultprovider.should_not be_nil
|
17
|
+
end
|
18
|
+
|
19
|
+
it "should choose the correct provider each platform" do
|
20
|
+
Puppet::Type.type(:package).defaultprovider.name.should == provider_name(Facter.value(:operatingsystem))
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,36 @@
|
|
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
|
+
describe Puppet::Util::FileLocking do
|
8
|
+
it "should be able to keep file corruption from happening when there are multiple writers" do
|
9
|
+
file = Tempfile.new("puppetspec")
|
10
|
+
file.close!()
|
11
|
+
file = file.path
|
12
|
+
data = {:a => :b, :c => "A string", :d => "another string", :e => %w{an array of strings}}
|
13
|
+
File.open(file, "w") { |f| f.puts YAML.dump(data) }
|
14
|
+
|
15
|
+
threads = []
|
16
|
+
sync = Sync.new
|
17
|
+
9.times { |a|
|
18
|
+
threads << Thread.new {
|
19
|
+
9.times { |b|
|
20
|
+
sync.synchronize(Sync::SH) {
|
21
|
+
Puppet::Util::FileLocking.readlock(file) { |f|
|
22
|
+
YAML.load(f.read).should == data
|
23
|
+
}
|
24
|
+
}
|
25
|
+
sleep 0.01
|
26
|
+
sync.synchronize(Sync::EX) {
|
27
|
+
Puppet::Util::FileLocking.writelock(file) { |f|
|
28
|
+
f.puts YAML.dump(data)
|
29
|
+
}
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
threads.each { |th| th.join }
|
35
|
+
end
|
36
|
+
end
|