puppet 0.24.9 → 0.25.0
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 +18680 -1241
- data/CHANGELOG.old +1705 -0
- data/LICENSE +2 -2
- data/README +1 -1
- data/README.queueing +126 -0
- data/README.rst +4 -4
- data/Rakefile +62 -216
- data/bin/filebucket +6 -117
- data/bin/pi +50 -0
- data/bin/puppet +7 -188
- data/bin/puppetdoc +7 -198
- data/bin/ralsh +4 -191
- data/conf/auth.conf +94 -0
- data/conf/gentoo/init.d/puppetmaster +30 -30
- data/conf/osx/PackageInfo.plist +30 -30
- data/conf/osx/createpackage.sh +23 -18
- data/conf/osx/preflight +8 -0
- data/conf/puppet-queue.conf +10 -0
- data/conf/redhat/client.init +52 -41
- data/conf/redhat/logrotate +1 -0
- data/conf/redhat/puppet.spec +74 -36
- data/conf/redhat/rundir-perms.patch +28 -0
- data/conf/redhat/server.init +48 -43
- data/conf/redhat/server.sysconfig +4 -4
- data/conf/solaris/smf/puppetd.xml +53 -53
- data/conf/solaris/smf/puppetmasterd.xml +53 -53
- data/conf/solaris/smf/svc-puppetd +4 -4
- data/conf/solaris/smf/svc-puppetmasterd +3 -3
- data/conf/suse/client.init +4 -4
- data/conf/suse/puppet.spec +14 -14
- data/conf/suse/server.init +17 -17
- data/examples/etc/init.d/sleeper +8 -8
- data/examples/mac_dscl.pp +2 -2
- data/examples/mac_dscl_revert.pp +1 -1
- data/examples/mcx_dock_default.pp +108 -108
- data/examples/mcx_dock_full.pp +108 -108
- data/examples/mcx_nogroup.pp +108 -108
- data/examples/modules/sample-module/lib/puppet/parser/functions/hostname_to_dn.rb +5 -5
- data/examples/modules/sample-module/manifests/init.pp +2 -2
- data/examples/relationships +1 -1
- data/ext/autotest/config +6 -6
- data/ext/bin/sleeper +12 -12
- data/ext/dbfix.sql +21 -21
- data/ext/emacs/puppet-mode.el +42 -41
- data/ext/extlookup.rb +183 -0
- data/ext/ldap/puppet.schema +2 -1
- data/ext/logcheck/puppet +1 -1
- data/ext/module_puppet +7 -7
- data/ext/nagios/check_puppet.rb +83 -83
- data/ext/nagios/naggen +302 -0
- data/ext/puppet-test +61 -18
- data/ext/puppetlisten/puppetlisten.rb +76 -0
- data/ext/puppetlisten/puppetrun.rb +39 -0
- data/ext/puppetstoredconfigclean.rb +29 -29
- data/ext/rack/README +73 -0
- data/ext/rack/files/apache2.conf +38 -0
- data/ext/rack/files/config.ru +18 -0
- data/ext/rack/manifest.pp +59 -0
- data/ext/vim/syntax/puppet.vim +54 -35
- data/install.rb +37 -26
- data/lib/puppet.rb +15 -227
- data/lib/puppet/agent.rb +134 -0
- data/lib/puppet/agent/locker.rb +42 -0
- data/lib/puppet/agent/runner.rb +65 -0
- data/lib/puppet/application.rb +313 -0
- data/lib/puppet/application/filebucket.rb +87 -0
- data/lib/puppet/application/pi.rb +214 -0
- data/lib/puppet/application/puppet.rb +177 -0
- data/lib/puppet/application/puppetca.rb +71 -0
- data/lib/puppet/application/puppetd.rb +256 -0
- data/lib/puppet/application/puppetdoc.rb +222 -0
- data/lib/puppet/application/puppetmasterd.rb +168 -0
- data/lib/puppet/application/puppetqd.rb +96 -0
- data/lib/puppet/application/puppetrun.rb +219 -0
- data/lib/puppet/application/ralsh.rb +168 -0
- data/lib/puppet/configurer.rb +177 -0
- data/lib/puppet/configurer/downloader.rb +79 -0
- data/lib/puppet/configurer/fact_handler.rb +68 -0
- data/lib/puppet/configurer/plugin_handler.rb +26 -0
- data/lib/puppet/daemon.rb +78 -28
- data/lib/puppet/defaults.rb +239 -166
- data/lib/puppet/dsl.rb +7 -7
- data/lib/puppet/external/dot.rb +271 -271
- data/lib/puppet/external/event-loop/better-definers.rb +298 -298
- data/lib/puppet/external/event-loop/event-loop.rb +274 -274
- data/lib/puppet/external/event-loop/signal-system.rb +163 -163
- data/lib/puppet/external/lock.rb +1 -1
- data/lib/puppet/external/nagios.rb +20 -20
- data/lib/puppet/external/nagios/base.rb +3 -3
- data/lib/puppet/external/nagios/grammar.ry +185 -0
- data/lib/puppet/external/nagios/makefile +9 -0
- data/lib/puppet/external/nagios/parser.rb +1 -1
- data/lib/puppet/feature/json.rb +2 -0
- data/lib/puppet/feature/rack.rb +24 -0
- data/lib/puppet/feature/rails.rb +23 -33
- data/lib/puppet/feature/rubygems.rb +6 -0
- data/lib/puppet/feature/stomp.rb +6 -0
- data/lib/puppet/file_serving/{file_base.rb → base.rb} +10 -9
- data/lib/puppet/file_serving/configuration.rb +61 -61
- data/lib/puppet/file_serving/configuration/parser.rb +24 -29
- data/lib/puppet/file_serving/content.rb +26 -11
- data/lib/puppet/file_serving/fileset.rb +54 -19
- data/lib/puppet/file_serving/indirection_hooks.rb +12 -24
- data/lib/puppet/file_serving/metadata.rb +8 -8
- data/lib/puppet/file_serving/mount.rb +9 -151
- data/lib/puppet/file_serving/mount/file.rb +126 -0
- data/lib/puppet/file_serving/mount/modules.rb +25 -0
- data/lib/puppet/file_serving/mount/plugins.rb +27 -0
- data/lib/puppet/file_serving/terminus_helper.rb +9 -4
- data/lib/puppet/indirector.rb +6 -4
- data/lib/puppet/indirector/active_record.rb +28 -0
- data/lib/puppet/indirector/catalog/active_record.rb +36 -0
- data/lib/puppet/indirector/catalog/compiler.rb +50 -24
- data/lib/puppet/indirector/catalog/queue.rb +5 -0
- data/lib/puppet/indirector/catalog/rest.rb +6 -0
- data/lib/puppet/indirector/catalog/yaml.rb +2 -4
- data/lib/puppet/indirector/certificate/ca.rb +9 -0
- data/lib/puppet/indirector/certificate/file.rb +9 -0
- data/lib/puppet/indirector/certificate/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_request/ca.rb +14 -0
- data/lib/puppet/indirector/certificate_request/file.rb +8 -0
- data/lib/puppet/indirector/certificate_request/rest.rb +9 -0
- data/lib/puppet/indirector/certificate_revocation_list/ca.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/file.rb +8 -0
- data/lib/puppet/indirector/certificate_revocation_list/rest.rb +9 -0
- data/lib/puppet/indirector/direct_file_server.rb +4 -8
- data/lib/puppet/indirector/exec.rb +2 -6
- data/lib/puppet/indirector/facts/active_record.rb +36 -0
- data/lib/puppet/indirector/facts/facter.rb +30 -22
- data/lib/puppet/indirector/facts/rest.rb +6 -0
- data/lib/puppet/indirector/file.rb +1 -0
- data/lib/puppet/indirector/file_content/rest.rb +0 -1
- data/lib/puppet/indirector/file_metadata/file.rb +2 -2
- data/lib/puppet/indirector/file_metadata/rest.rb +0 -1
- data/lib/puppet/indirector/file_server.rb +31 -18
- data/lib/puppet/indirector/indirection.rb +46 -33
- data/lib/puppet/indirector/key/ca.rb +12 -0
- data/lib/puppet/indirector/key/file.rb +42 -0
- data/lib/puppet/indirector/node/active_record.rb +13 -0
- data/lib/puppet/indirector/node/ldap.rb +1 -1
- data/lib/puppet/indirector/queue.rb +83 -0
- data/lib/puppet/indirector/report/processor.rb +1 -1
- data/lib/puppet/indirector/report/rest.rb +7 -0
- data/lib/puppet/indirector/request.rb +158 -15
- data/lib/puppet/indirector/rest.rb +74 -36
- data/lib/puppet/indirector/runner/rest.rb +7 -0
- data/lib/puppet/indirector/ssl_file.rb +174 -0
- data/lib/puppet/indirector/terminus.rb +4 -4
- data/lib/puppet/indirector/yaml.rb +1 -1
- data/lib/puppet/metatype/manager.rb +3 -3
- data/lib/puppet/module.rb +99 -124
- data/lib/puppet/network/authconfig.rb +57 -42
- data/lib/puppet/network/authstore.rb +58 -10
- data/lib/puppet/network/client.rb +0 -2
- data/lib/puppet/network/client/ca.rb +1 -1
- data/lib/puppet/network/client/dipper.rb +7 -2
- data/lib/puppet/network/format.rb +123 -0
- data/lib/puppet/network/format_handler.rb +156 -0
- data/lib/puppet/network/formats.rb +123 -0
- data/lib/puppet/network/handler/filebucket.rb +1 -1
- data/lib/puppet/network/handler/fileserver.rb +43 -35
- data/lib/puppet/network/handler/master.rb +4 -4
- data/lib/puppet/network/handler/report.rb +1 -1
- data/lib/puppet/network/handler/resource.rb +16 -20
- data/lib/puppet/network/handler/runner.rb +9 -42
- data/lib/puppet/network/http.rb +4 -4
- data/lib/puppet/network/http/api.rb +4 -0
- data/lib/puppet/network/http/api/v1.rb +65 -0
- data/lib/puppet/network/http/handler.rb +163 -56
- data/lib/puppet/network/http/mongrel.rb +19 -15
- data/lib/puppet/network/http/mongrel/rest.rb +35 -17
- data/lib/puppet/network/http/rack.rb +62 -0
- data/lib/puppet/network/http/rack/httphandler.rb +34 -0
- data/lib/puppet/network/http/rack/rest.rb +79 -0
- data/lib/puppet/network/http/rack/xmlrpc.rb +65 -0
- data/lib/puppet/network/http/webrick.rb +89 -16
- data/lib/puppet/network/http/webrick/rest.rb +24 -11
- data/lib/puppet/network/http_pool.rb +28 -29
- data/lib/puppet/network/http_server/mongrel.rb +8 -10
- data/lib/puppet/network/http_server/webrick.rb +1 -3
- data/lib/puppet/network/rest_authconfig.rb +89 -0
- data/lib/puppet/network/rest_authorization.rb +25 -0
- data/lib/puppet/network/rights.rb +230 -27
- data/lib/puppet/network/server.rb +133 -31
- data/lib/puppet/network/xmlrpc/client.rb +5 -5
- data/lib/puppet/network/xmlrpc/webrick_servlet.rb +6 -6
- data/lib/puppet/node.rb +28 -21
- data/lib/puppet/node/environment.rb +48 -0
- data/lib/puppet/node/facts.rb +21 -0
- data/lib/puppet/parameter.rb +291 -219
- data/lib/puppet/parser/ast.rb +1 -0
- data/lib/puppet/parser/ast/astarray.rb +5 -1
- data/lib/puppet/parser/ast/boolean_operator.rb +3 -3
- data/lib/puppet/parser/ast/caseopt.rb +10 -0
- data/lib/puppet/parser/ast/casestatement.rb +12 -27
- data/lib/puppet/parser/ast/collection.rb +31 -0
- data/lib/puppet/parser/ast/collexpr.rb +18 -11
- data/lib/puppet/parser/ast/comparison_operator.rb +1 -1
- data/lib/puppet/parser/ast/definition.rb +6 -2
- data/lib/puppet/parser/ast/function.rb +7 -2
- data/lib/puppet/parser/ast/ifstatement.rb +11 -6
- data/lib/puppet/parser/ast/leaf.rb +106 -3
- data/lib/puppet/parser/ast/match_operator.rb +31 -0
- data/lib/puppet/parser/ast/node.rb +10 -6
- data/lib/puppet/parser/ast/resource_defaults.rb +2 -2
- data/lib/puppet/parser/ast/resource_override.rb +1 -1
- data/lib/puppet/parser/ast/resource_reference.rb +11 -3
- data/lib/puppet/parser/ast/selector.rb +14 -32
- data/lib/puppet/parser/ast/vardef.rb +1 -1
- data/lib/puppet/parser/collector.rb +67 -15
- data/lib/puppet/parser/compiler.rb +21 -53
- data/lib/puppet/parser/files.rb +92 -0
- data/lib/puppet/parser/functions.rb +3 -3
- data/lib/puppet/parser/functions/defined.rb +3 -3
- data/lib/puppet/parser/functions/fqdn_rand.rb +3 -3
- data/lib/puppet/parser/functions/inline_template.rb +4 -4
- data/lib/puppet/parser/functions/regsubst.rb +37 -35
- data/lib/puppet/parser/functions/require.rb +34 -0
- data/lib/puppet/parser/functions/shellquote.rb +41 -0
- data/lib/puppet/parser/functions/split.rb +29 -0
- data/lib/puppet/parser/functions/sprintf.rb +6 -6
- data/lib/puppet/parser/functions/template.rb +4 -4
- data/lib/puppet/parser/functions/versioncmp.rb +22 -1
- data/lib/puppet/parser/grammar.ra +812 -0
- data/lib/puppet/parser/interpreter.rb +4 -4
- data/lib/puppet/parser/lexer.rb +44 -15
- data/lib/puppet/parser/loaded_code.rb +115 -0
- data/lib/puppet/parser/makefile +8 -0
- data/lib/puppet/parser/parser.rb +1080 -928
- data/lib/puppet/parser/parser_support.rb +118 -96
- data/lib/puppet/parser/resource.rb +56 -126
- data/lib/puppet/parser/resource/param.rb +2 -76
- data/lib/puppet/parser/resource/reference.rb +15 -8
- data/lib/puppet/parser/scope.rb +68 -35
- data/lib/puppet/parser/templatewrapper.rb +8 -8
- data/lib/puppet/parser/yaml_trimmer.rb +11 -0
- data/lib/puppet/property.rb +69 -124
- data/lib/puppet/property/list.rb +3 -3
- data/lib/puppet/provider.rb +5 -5
- data/lib/puppet/provider/augeas/augeas.rb +119 -118
- data/lib/puppet/provider/computer/computer.rb +3 -3
- data/lib/puppet/provider/confine/variable.rb +1 -1
- data/lib/puppet/provider/cron/crontab.rb +8 -7
- data/lib/puppet/provider/group/directoryservice.rb +2 -2
- data/lib/puppet/provider/group/groupadd.rb +1 -1
- data/lib/puppet/provider/group/ldap.rb +3 -3
- data/lib/puppet/provider/group/pw.rb +1 -1
- data/lib/puppet/provider/host/parsed.rb +3 -3
- data/lib/puppet/provider/ldap.rb +1 -3
- data/lib/puppet/provider/macauthorization/macauthorization.rb +62 -55
- data/lib/puppet/provider/mailalias/aliases.rb +9 -1
- data/lib/puppet/provider/maillist/mailman.rb +8 -4
- data/lib/puppet/provider/mcx/mcxcontent.rb +11 -11
- data/lib/puppet/provider/mount/parsed.rb +2 -2
- data/lib/puppet/provider/nameservice.rb +6 -6
- data/lib/puppet/provider/nameservice/directoryservice.rb +83 -87
- data/lib/puppet/provider/package/appdmg.rb +10 -9
- data/lib/puppet/provider/package/apple.rb +1 -3
- data/lib/puppet/provider/package/apt.rb +5 -5
- data/lib/puppet/provider/package/aptitude.rb +1 -1
- data/lib/puppet/provider/package/aptrpm.rb +1 -1
- data/lib/puppet/provider/package/darwinport.rb +1 -1
- data/lib/puppet/provider/package/dpkg.rb +2 -2
- data/lib/puppet/provider/package/fink.rb +6 -6
- data/lib/puppet/provider/package/freebsd.rb +1 -1
- data/lib/puppet/provider/package/gem.rb +2 -2
- data/lib/puppet/provider/package/hpux.rb +5 -5
- data/lib/puppet/provider/package/pkgdmg.rb +30 -22
- data/lib/puppet/provider/package/portage.rb +1 -1
- data/lib/puppet/provider/package/ports.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +5 -5
- data/lib/puppet/provider/package/rug.rb +1 -1
- data/lib/puppet/provider/package/sun.rb +7 -7
- data/lib/puppet/provider/package/up2date.rb +1 -1
- data/lib/puppet/provider/package/yum.rb +2 -2
- data/lib/puppet/provider/package/yumhelper.py +2 -2
- data/lib/puppet/provider/port/parsed.rb +1 -1
- data/lib/puppet/provider/selmodule/semodule.rb +3 -3
- data/lib/puppet/provider/service/base.rb +21 -12
- data/lib/puppet/provider/service/daemontools.rb +86 -49
- data/lib/puppet/provider/service/debian.rb +20 -12
- data/lib/puppet/provider/service/freebsd.rb +5 -5
- data/lib/puppet/provider/service/gentoo.rb +2 -2
- data/lib/puppet/provider/service/init.rb +21 -33
- data/lib/puppet/provider/service/launchd.rb +120 -48
- data/lib/puppet/provider/service/redhat.rb +12 -21
- data/lib/puppet/provider/service/runit.rb +19 -9
- data/lib/puppet/provider/service/smf.rb +49 -34
- data/lib/puppet/provider/ssh_authorized_key/parsed.rb +34 -0
- data/lib/puppet/provider/sshkey/parsed.rb +2 -2
- data/lib/puppet/provider/user/directoryservice.rb +12 -29
- data/lib/puppet/provider/user/hpux.rb +3 -3
- data/lib/puppet/provider/user/ldap.rb +2 -2
- data/lib/puppet/provider/zfs/solaris.rb +1 -1
- data/lib/puppet/provider/zone/solaris.rb +4 -4
- data/lib/puppet/provider/zpool/solaris.rb +3 -3
- data/lib/puppet/rails.rb +9 -9
- data/lib/puppet/rails/benchmark.rb +69 -0
- data/lib/puppet/rails/database/001_add_created_at_to_all_tables.rb +5 -5
- data/lib/puppet/rails/database/002_remove_duplicated_index_on_all_tables.rb +2 -2
- data/lib/puppet/rails/database/003_add_environment_to_host.rb +1 -1
- data/lib/puppet/rails/database/schema.rb +8 -8
- data/lib/puppet/rails/fact_value.rb +1 -1
- data/lib/puppet/rails/host.rb +211 -93
- data/lib/puppet/rails/param_name.rb +5 -1
- data/lib/puppet/rails/param_value.rb +29 -2
- data/lib/puppet/rails/puppet_tag.rb +5 -0
- data/lib/puppet/rails/resource.rb +120 -20
- data/lib/puppet/rails/resource_tag.rb +1 -1
- data/lib/puppet/rails/source_file.rb +1 -1
- data/lib/puppet/reference/configuration.rb +14 -14
- data/lib/puppet/reference/function.rb +1 -1
- data/lib/puppet/reference/metaparameter.rb +48 -0
- data/lib/puppet/reference/providers.rb +6 -6
- data/lib/puppet/reference/type.rb +1 -37
- data/lib/puppet/relationship.rb +57 -30
- data/lib/puppet/reports/rrdgraph.rb +4 -4
- data/lib/puppet/reports/store.rb +3 -3
- data/lib/puppet/reports/tagmail.rb +15 -15
- data/lib/puppet/resource.rb +265 -0
- data/lib/puppet/{node → resource}/catalog.rb +188 -112
- data/lib/puppet/{resource_reference.rb → resource/reference.rb} +46 -24
- data/lib/puppet/simple_graph.rb +165 -27
- data/lib/puppet/ssl.rb +7 -0
- data/lib/puppet/ssl/base.rb +62 -0
- data/lib/puppet/ssl/certificate.rb +34 -0
- data/lib/puppet/ssl/certificate_authority.rb +298 -0
- data/lib/puppet/ssl/certificate_authority/interface.rb +118 -0
- data/lib/puppet/ssl/certificate_factory.rb +145 -0
- data/lib/puppet/ssl/certificate_request.rb +51 -0
- data/lib/puppet/ssl/certificate_revocation_list.rb +86 -0
- data/lib/puppet/ssl/host.rb +271 -0
- data/lib/puppet/ssl/inventory.rb +52 -0
- data/lib/puppet/ssl/key.rb +56 -0
- data/lib/puppet/sslcertificates.rb +6 -6
- data/lib/puppet/sslcertificates/ca.rb +15 -15
- data/lib/puppet/sslcertificates/certificate.rb +4 -4
- data/lib/puppet/sslcertificates/inventory.rb +3 -3
- data/lib/puppet/transaction.rb +113 -139
- data/lib/puppet/transaction/change.rb +6 -6
- data/lib/puppet/transaction/event.rb +1 -1
- data/lib/puppet/transaction/report.rb +7 -1
- data/lib/puppet/transportable.rb +28 -28
- data/lib/puppet/type.rb +263 -688
- data/lib/puppet/type/augeas.rb +3 -2
- data/lib/puppet/type/component.rb +28 -95
- data/lib/puppet/type/computer.rb +10 -10
- data/lib/puppet/type/cron.rb +19 -14
- data/lib/puppet/type/exec.rb +21 -20
- data/lib/puppet/type/file.rb +306 -633
- data/lib/puppet/type/file/checksum.rb +10 -11
- data/lib/puppet/type/file/content.rb +83 -22
- data/lib/puppet/type/file/ensure.rb +15 -9
- data/lib/puppet/type/file/group.rb +7 -1
- data/lib/puppet/type/file/mode.rb +1 -1
- data/lib/puppet/type/file/owner.rb +9 -3
- data/lib/puppet/type/file/selcontext.rb +4 -4
- data/lib/puppet/type/file/source.rb +78 -179
- data/lib/puppet/type/file/target.rb +3 -3
- data/lib/puppet/type/file/type.rb +2 -2
- data/lib/puppet/type/filebucket.rb +33 -54
- data/lib/puppet/type/group.rb +8 -8
- data/lib/puppet/type/host.rb +7 -7
- data/lib/puppet/type/k5login.rb +2 -2
- data/lib/puppet/type/macauthorization.rb +77 -52
- data/lib/puppet/type/mailalias.rb +2 -2
- data/lib/puppet/type/maillist.rb +2 -2
- data/lib/puppet/type/mcx.rb +3 -3
- data/lib/puppet/type/mount.rb +16 -11
- data/lib/puppet/type/notify.rb +4 -4
- data/lib/puppet/type/package.rb +6 -28
- data/lib/puppet/type/port.rb +1 -1
- data/lib/puppet/type/resources.rb +19 -19
- data/lib/puppet/type/schedule.rb +18 -20
- data/lib/puppet/type/selmodule.rb +1 -1
- data/lib/puppet/type/service.rb +11 -7
- data/lib/puppet/type/ssh_authorized_key.rb +26 -9
- data/lib/puppet/type/sshkey.rb +2 -2
- data/lib/puppet/type/tidy.rb +285 -289
- data/lib/puppet/type/user.rb +9 -7
- data/lib/puppet/type/yumrepo.rb +17 -16
- data/lib/puppet/type/zone.rb +8 -7
- data/lib/puppet/util.rb +11 -36
- data/lib/puppet/util/autoload.rb +31 -19
- data/lib/puppet/util/autoload/file_cache.rb +115 -0
- data/lib/puppet/util/backups.rb +86 -0
- data/lib/puppet/util/cacher.rb +135 -0
- data/lib/puppet/util/checksums.rb +11 -1
- data/lib/puppet/util/classgen.rb +1 -1
- data/lib/puppet/util/config_store.rb +2 -2
- data/lib/puppet/util/constant_inflector.rb +1 -1
- data/lib/puppet/util/diff.rb +2 -2
- data/lib/puppet/util/docs.rb +9 -3
- data/lib/puppet/util/execution.rb +1 -1
- data/lib/puppet/util/feature.rb +27 -20
- data/lib/puppet/util/fileparsing.rb +3 -3
- data/lib/puppet/util/filetype.rb +8 -6
- data/lib/puppet/util/graph.rb +5 -5
- data/lib/puppet/util/inifile.rb +5 -5
- data/lib/puppet/util/json.rb +13 -0
- data/lib/puppet/util/ldap/connection.rb +2 -2
- data/lib/puppet/util/log.rb +48 -31
- data/lib/puppet/util/metric.rb +4 -4
- data/lib/puppet/util/monkey_patches.rb +43 -0
- data/lib/puppet/util/nagios_maker.rb +1 -1
- data/lib/puppet/util/package.rb +4 -4
- data/lib/puppet/util/pidlock.rb +59 -59
- data/lib/puppet/util/posix.rb +13 -52
- data/lib/puppet/util/provider_features.rb +3 -3
- data/lib/puppet/util/queue.rb +96 -0
- data/lib/puppet/util/queue/stomp.rb +47 -0
- data/lib/puppet/util/rails/cache_accumulator.rb +65 -0
- data/lib/puppet/util/rails/collection_merger.rb +0 -39
- data/lib/puppet/util/rails/reference_serializer.rb +17 -3
- data/lib/puppet/util/rdoc.rb +1 -0
- data/lib/puppet/util/rdoc/code_objects.rb +5 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +5 -5
- data/lib/puppet/util/rdoc/generators/template/puppet/puppet.rb +13 -13
- data/lib/puppet/util/rdoc/parser.rb +28 -32
- data/lib/puppet/util/reference.rb +29 -8
- data/lib/puppet/util/resource_template.rb +1 -1
- data/lib/puppet/util/selinux.rb +12 -6
- data/lib/puppet/util/settings.rb +203 -578
- data/lib/puppet/util/settings/boolean_setting.rb +33 -0
- data/lib/puppet/util/settings/file_setting.rb +119 -0
- data/lib/puppet/util/settings/setting.rb +110 -0
- data/lib/puppet/util/subclass_loader.rb +1 -1
- data/lib/puppet/util/suidmanager.rb +2 -2
- data/lib/puppet/util/tagging.rb +1 -1
- data/lib/puppet/util/warnings.rb +17 -9
- data/man/man8/filebucket.8 +2 -2
- data/man/man8/pi.8 +2 -2
- data/man/man8/puppet.8 +3 -4
- data/man/man8/puppet.conf.8 +63 -63
- data/man/man8/puppetca.8 +2 -2
- data/man/man8/puppetd.8 +2 -2
- data/man/man8/puppetdoc.8 +2 -2
- data/man/man8/puppetmasterd.8 +2 -2
- data/man/man8/puppetrun.8 +2 -2
- data/man/man8/ralsh.8 +3 -3
- data/sbin/puppetca +102 -0
- data/sbin/puppetd +159 -0
- data/sbin/puppetmasterd +66 -0
- data/sbin/puppetqd +53 -0
- data/sbin/puppetrun +130 -0
- data/spec/Rakefile +2 -2
- data/spec/integration/application/puppet.rb +33 -0
- data/spec/integration/bin/puppetmasterd.rb +110 -0
- data/spec/integration/configurer.rb +18 -0
- data/spec/integration/defaults.rb +158 -7
- data/spec/integration/file_serving/content.rb +2 -0
- data/spec/integration/file_serving/fileset.rb +14 -0
- data/spec/integration/file_serving/metadata.rb +2 -0
- data/spec/integration/file_serving/terminus_helper.rb +22 -0
- data/spec/integration/indirector/catalog/compiler.rb +67 -0
- data/spec/integration/indirector/catalog/queue.rb +61 -0
- data/spec/integration/indirector/certificate/rest.rb +69 -0
- data/spec/integration/indirector/certificate_request/rest.rb +89 -0
- data/spec/integration/indirector/certificate_revocation_list/rest.rb +77 -0
- data/spec/integration/indirector/direct_file_server.rb +16 -23
- data/spec/integration/indirector/file_content/file_server.rb +75 -0
- data/spec/integration/indirector/report/rest.rb +95 -0
- data/spec/integration/indirector/rest.rb +207 -147
- data/spec/integration/network/client.rb +19 -0
- data/spec/integration/network/formats.rb +110 -0
- data/spec/integration/network/handler.rb +25 -0
- data/spec/integration/network/server/mongrel.rb +26 -8
- data/spec/integration/network/server/webrick.rb +49 -11
- data/spec/integration/node/environment.rb +58 -0
- data/spec/integration/node/facts.rb +4 -2
- data/spec/integration/parser/compiler.rb +29 -0
- data/spec/integration/parser/functions/require.rb +67 -0
- data/spec/integration/provider/mailalias/aliases.rb +25 -0
- data/spec/integration/{node → resource}/catalog.rb +17 -10
- data/spec/integration/ssl/certificate_authority.rb +135 -0
- data/spec/integration/ssl/certificate_request.rb +59 -0
- data/spec/integration/ssl/certificate_revocation_list.rb +42 -0
- data/spec/integration/ssl/host.rb +90 -0
- data/spec/integration/transaction.rb +66 -0
- data/spec/integration/transaction/report.rb +2 -5
- data/spec/integration/type.rb +22 -0
- data/spec/integration/type/file.rb +458 -0
- data/spec/integration/type/package.rb +1 -1
- data/spec/integration/type/tidy.rb +27 -0
- data/spec/integration/util/autoload.rb +114 -0
- data/spec/integration/util/feature.rb +54 -0
- data/spec/integration/util/file_locking.rb +2 -1
- data/spec/integration/util/settings.rb +27 -0
- data/spec/lib/puppet_spec/files.rb +9 -0
- data/spec/monkey_patches/add_confine_and_runnable_to_rspec_dsl.rb +1 -0
- data/spec/monkey_patches/alias_should_to_must.rb +1 -0
- data/spec/shared_behaviours/file_server_terminus.rb +14 -11
- data/spec/shared_behaviours/file_serving.rb +13 -17
- data/spec/spec_helper.rb +22 -5
- data/spec/unit/agent.rb +259 -0
- data/spec/unit/agent/locker.rb +100 -0
- data/spec/unit/agent/runner.rb +118 -0
- data/spec/unit/application.rb +420 -0
- data/spec/unit/application/filebucket.rb +220 -0
- data/spec/unit/application/pi.rb +84 -0
- data/spec/unit/application/puppet.rb +404 -0
- data/spec/unit/application/puppetca.rb +142 -0
- data/spec/unit/application/puppetd.rb +502 -0
- data/spec/unit/application/puppetdoc.rb +345 -0
- data/spec/unit/application/puppetmasterd.rb +456 -0
- data/spec/unit/application/puppetqd.rb +186 -0
- data/spec/unit/application/puppetrun.rb +279 -0
- data/spec/unit/application/ralsh.rb +237 -0
- data/spec/unit/configurer.rb +232 -0
- data/spec/unit/configurer/downloader.rb +188 -0
- data/spec/unit/configurer/fact_handler.rb +150 -0
- data/spec/unit/configurer/plugin_handler.rb +112 -0
- data/spec/unit/daemon.rb +287 -0
- data/spec/unit/file_serving/{file_base.rb → base.rb} +39 -31
- data/spec/unit/file_serving/configuration.rb +104 -93
- data/spec/unit/file_serving/configuration/parser.rb +64 -18
- data/spec/unit/file_serving/content.rb +65 -26
- data/spec/unit/file_serving/fileset.rb +116 -14
- data/spec/unit/file_serving/indirection_hooks.rb +34 -95
- data/spec/unit/file_serving/metadata.rb +27 -40
- data/spec/unit/file_serving/mount.rb +7 -118
- data/spec/unit/file_serving/mount/file.rb +188 -0
- data/spec/unit/file_serving/mount/modules.rb +63 -0
- data/spec/unit/file_serving/mount/plugins.rb +61 -0
- data/spec/unit/file_serving/terminus_helper.rb +39 -27
- data/spec/unit/indirector.rb +6 -1
- data/spec/unit/indirector/active_record.rb +76 -0
- data/spec/unit/indirector/catalog/active_record.rb +122 -0
- data/spec/unit/indirector/catalog/compiler.rb +222 -118
- data/spec/unit/indirector/catalog/queue.rb +20 -0
- data/spec/unit/indirector/catalog/rest.rb +11 -0
- data/spec/unit/indirector/catalog/yaml.rb +6 -6
- data/spec/unit/indirector/certificate/ca.rb +28 -0
- data/spec/unit/indirector/certificate/file.rb +28 -0
- data/spec/unit/indirector/certificate/rest.rb +23 -0
- data/spec/unit/indirector/certificate_request/ca.rb +19 -0
- data/spec/unit/indirector/certificate_request/file.rb +19 -0
- data/spec/unit/indirector/certificate_request/rest.rb +23 -0
- data/spec/unit/indirector/certificate_revocation_list/ca.rb +21 -0
- data/spec/unit/indirector/certificate_revocation_list/file.rb +20 -0
- data/spec/unit/indirector/certificate_revocation_list/rest.rb +23 -0
- data/spec/unit/indirector/direct_file_server.rb +3 -8
- data/spec/unit/indirector/exec.rb +6 -1
- data/spec/unit/indirector/facts/active_record.rb +104 -0
- data/spec/unit/indirector/facts/facter.rb +53 -12
- data/spec/unit/indirector/facts/rest.rb +11 -0
- data/spec/unit/indirector/file.rb +8 -1
- data/spec/unit/indirector/file_metadata/file.rb +5 -5
- data/spec/unit/indirector/file_server.rb +181 -98
- data/spec/unit/indirector/indirection.rb +102 -38
- data/spec/unit/indirector/key/ca.rb +28 -0
- data/spec/unit/indirector/key/file.rb +104 -0
- data/spec/unit/indirector/node/active_record.rb +34 -0
- data/spec/unit/indirector/node/ldap.rb +1 -1
- data/spec/unit/indirector/node/rest.rb +2 -2
- data/spec/unit/indirector/queue.rb +123 -0
- data/spec/unit/indirector/report/rest.rb +28 -0
- data/spec/unit/indirector/request.rb +221 -0
- data/spec/unit/indirector/rest.rb +343 -334
- data/spec/unit/indirector/runner/rest.rb +11 -0
- data/spec/unit/indirector/ssl_file.rb +280 -0
- data/spec/unit/module.rb +180 -180
- data/spec/unit/network/authconfig.rb +292 -0
- data/spec/unit/network/authstore.rb +94 -0
- data/spec/unit/network/client.rb +2 -2
- data/spec/unit/network/client/dipper.rb +16 -0
- data/spec/unit/network/format.rb +191 -0
- data/spec/unit/network/format_handler.rb +306 -0
- data/spec/unit/network/formats.rb +249 -0
- data/spec/unit/network/handler/fileserver.rb +2 -5
- data/spec/unit/network/http.rb +3 -3
- data/spec/unit/network/http/api/v1.rb +122 -0
- data/spec/unit/network/http/handler.rb +448 -0
- data/spec/unit/network/http/mongrel.rb +46 -32
- data/spec/unit/network/http/mongrel/rest.rb +174 -319
- data/spec/unit/network/http/rack.rb +102 -0
- data/spec/unit/network/http/rack/rest.rb +199 -0
- data/spec/unit/network/http/rack/xmlrpc.rb +157 -0
- data/spec/unit/network/http/webrick.rb +249 -37
- data/spec/unit/network/http/webrick/rest.rb +113 -279
- data/spec/unit/network/http_pool.rb +86 -110
- data/spec/unit/network/rest_authconfig.rb +146 -0
- data/spec/unit/network/rest_authorization.rb +43 -0
- data/spec/unit/network/rights.rb +519 -0
- data/spec/unit/network/server.rb +475 -257
- data/spec/unit/node.rb +43 -10
- data/spec/unit/node/environment.rb +143 -9
- data/spec/unit/node/facts.rb +77 -24
- data/spec/unit/other/selinux.rb +85 -0
- data/spec/unit/other/transbucket.rb +29 -13
- data/spec/unit/other/transobject.rb +35 -15
- data/spec/unit/parameter.rb +378 -5
- data/spec/unit/parser/ast.rb +1 -1
- data/spec/unit/parser/ast/arithmetic_operator.rb +17 -17
- data/spec/unit/parser/ast/astarray.rb +16 -10
- data/spec/unit/parser/ast/boolean_operator.rb +2 -2
- data/spec/unit/parser/ast/casestatement.rb +143 -0
- data/spec/unit/parser/ast/collection.rb +63 -0
- data/spec/unit/parser/ast/collexpr.rb +31 -8
- data/spec/unit/parser/ast/comparison_operator.rb +9 -9
- data/spec/unit/parser/ast/definition.rb +18 -0
- data/spec/unit/parser/ast/function.rb +6 -0
- data/spec/unit/parser/ast/ifstatement.rb +75 -0
- data/spec/unit/parser/ast/leaf.rb +261 -0
- data/spec/unit/parser/ast/match_operator.rb +50 -0
- data/spec/unit/parser/ast/minus.rb +1 -1
- data/spec/unit/parser/ast/node.rb +20 -0
- data/spec/unit/parser/ast/not.rb +1 -1
- data/spec/unit/parser/ast/resource_override.rb +5 -5
- data/spec/unit/parser/ast/resource_reference.rb +11 -5
- data/spec/unit/parser/ast/selector.rb +156 -0
- data/spec/unit/parser/ast/vardef.rb +11 -11
- data/spec/unit/parser/collector.rb +167 -48
- data/spec/unit/parser/compiler.rb +128 -104
- data/spec/unit/parser/files.rb +190 -0
- data/spec/unit/parser/functions/inline_template.rb +0 -0
- data/spec/unit/parser/functions/regsubst.rb +42 -42
- data/spec/unit/parser/functions/require.rb +36 -0
- data/spec/unit/parser/functions/shellquote.rb +92 -0
- data/spec/unit/parser/functions/split.rb +51 -0
- data/spec/unit/parser/functions/sprintf.rb +11 -11
- data/spec/unit/parser/functions/template.rb +0 -0
- data/spec/unit/parser/functions/versioncmp.rb +2 -2
- data/spec/unit/parser/interpreter.rb +16 -7
- data/spec/unit/parser/lexer.rb +72 -12
- data/spec/unit/parser/loaded_code.rb +198 -0
- data/spec/unit/parser/parser.rb +215 -28
- data/spec/unit/parser/resource.rb +131 -22
- data/spec/unit/parser/scope.rb +207 -12
- data/spec/unit/parser/templatewrapper.rb +8 -3
- data/spec/unit/property.rb +270 -16
- data/spec/unit/property/list.rb +12 -6
- data/spec/unit/provider.rb +31 -0
- data/spec/unit/provider/augeas/augeas.rb +61 -33
- data/spec/unit/provider/macauthorization.rb +29 -29
- data/spec/unit/provider/mcx/mcxcontent.rb +4 -4
- data/spec/unit/provider/mount/parsed.rb +5 -8
- data/spec/unit/provider/naginator.rb +0 -0
- data/spec/unit/provider/package/apt.rb +6 -6
- data/spec/unit/provider/package/pkgdmg.rb +73 -0
- data/spec/unit/provider/selboolean.rb +1 -1
- data/spec/unit/provider/selmodule.rb +2 -2
- data/spec/unit/provider/service/daemontools.rb +40 -15
- data/spec/unit/provider/service/debian.rb +89 -0
- data/spec/unit/provider/service/init.rb +106 -0
- data/spec/unit/provider/service/launchd.rb +71 -13
- data/spec/unit/provider/service/redhat.rb +94 -0
- data/spec/unit/provider/service/runit.rb +14 -2
- data/spec/unit/provider/ssh_authorized_key/parsed.rb +66 -2
- data/spec/unit/provider/user/ldap.rb +1 -1
- data/spec/unit/provider/user/user_role_add.rb +1 -1
- data/spec/unit/provider/zfs/solaris.rb +18 -6
- data/spec/unit/provider/zone/solaris.rb +1 -1
- data/spec/unit/rails.rb +16 -22
- data/spec/unit/rails/host.rb +163 -0
- data/spec/unit/rails/param_value.rb +49 -0
- data/spec/unit/rails/resource.rb +87 -0
- data/spec/unit/relationship.rb +141 -29
- data/spec/unit/resource.rb +504 -0
- data/spec/unit/resource/catalog.rb +1061 -0
- data/spec/unit/resource/reference.rb +111 -0
- data/spec/unit/simple_graph.rb +448 -191
- data/spec/unit/ssl/certificate.rb +124 -0
- data/spec/unit/ssl/certificate_authority.rb +741 -0
- data/spec/unit/ssl/certificate_authority/interface.rb +269 -0
- data/spec/unit/ssl/certificate_factory.rb +107 -0
- data/spec/unit/ssl/certificate_request.rb +193 -0
- data/spec/unit/ssl/certificate_revocation_list.rb +180 -0
- data/spec/unit/ssl/host.rb +704 -0
- data/spec/unit/ssl/inventory.rb +180 -0
- data/spec/unit/ssl/key.rb +198 -0
- data/spec/unit/transaction.rb +65 -2
- data/spec/unit/transaction/change.rb +1 -1
- data/spec/unit/transaction/report.rb +1 -1
- data/spec/unit/type.rb +361 -8
- data/spec/unit/type/augeas.rb +30 -37
- data/spec/unit/type/component.rb +63 -0
- data/spec/unit/type/computer.rb +17 -21
- data/spec/unit/type/exec.rb +27 -2
- data/spec/unit/type/file.rb +704 -83
- data/spec/unit/type/file/content.rb +253 -15
- data/spec/unit/type/file/ensure.rb +65 -2
- data/spec/unit/type/file/group.rb +5 -0
- data/spec/unit/type/file/owner.rb +5 -0
- data/spec/unit/type/file/selinux.rb +12 -16
- data/spec/unit/type/file/source.rb +264 -0
- data/spec/unit/type/filebucket.rb +74 -0
- data/spec/unit/type/group.rb +1 -5
- data/spec/unit/type/macauthorization.rb +59 -26
- data/spec/unit/type/mcx.rb +8 -16
- data/spec/unit/type/mount.rb +8 -16
- data/spec/unit/type/noop_metaparam.rb +0 -2
- data/spec/unit/type/package.rb +13 -23
- data/spec/unit/type/resources.rb +4 -7
- data/spec/unit/type/schedule.rb +1 -7
- data/spec/unit/type/selboolean.rb +4 -6
- data/spec/unit/type/service.rb +23 -33
- data/spec/unit/type/ssh_authorized_key.rb +25 -14
- data/spec/unit/type/tidy.rb +329 -21
- data/spec/unit/type/user.rb +18 -10
- data/spec/unit/type/zfs.rb +6 -6
- data/spec/unit/util/autoload.rb +94 -3
- data/spec/unit/util/autoload/file_cache.rb +183 -0
- data/spec/unit/util/backups.rb +159 -0
- data/spec/unit/util/cache_accumulator.rb +69 -0
- data/spec/unit/util/cacher.rb +185 -0
- data/spec/unit/util/checksums.rb +9 -1
- data/spec/unit/util/feature.rb +72 -0
- data/spec/unit/util/filetype.rb +1 -11
- data/spec/unit/util/json.rb +21 -0
- data/spec/unit/util/log.rb +45 -0
- data/spec/unit/util/package.rb +2 -2
- data/spec/unit/util/queue.rb +88 -0
- data/spec/unit/util/queue/stomp.rb +140 -0
- data/spec/unit/util/reference_serializer.rb +52 -0
- data/spec/unit/util/selinux.rb +5 -3
- data/spec/unit/util/settings.rb +413 -264
- data/spec/unit/util/settings/file_setting.rb +223 -0
- data/spec/unit/util/storage.rb +11 -11
- data/spec/unit/util/warnings.rb +21 -17
- data/test/Rakefile +6 -5
- data/test/certmgr/ca.rb +5 -5
- data/test/certmgr/certmgr.rb +4 -4
- data/test/data/providers/cron/crontab.allthree +2 -2
- data/test/data/providers/cron/crontab.envNcomment +1 -1
- data/test/data/providers/cron/crontab.envNname +1 -1
- data/test/data/providers/cron/crontab.multirecords +1 -1
- data/test/data/providers/cron/crontab_collections.yaml +14 -14
- data/test/data/providers/cron/crontab_multiple_with_env.yaml +6 -6
- data/test/data/providers/cron/crontab_sample_records.yaml +102 -102
- data/test/data/providers/mailalias/aliases/test1 +28 -0
- data/test/data/providers/package/testpackages.yaml +6 -6
- data/test/data/reports/1.yaml +17 -17
- data/test/data/reports/tagmail_passers.conf +2 -2
- data/test/data/snippets/append.pp +5 -5
- data/test/data/snippets/casestatement.pp +9 -2
- data/test/data/snippets/classincludes.pp +1 -1
- data/test/data/snippets/collection_override.pp +8 -0
- data/test/data/snippets/fqparents.pp +2 -2
- data/test/data/snippets/ifexpression.pp +12 -0
- data/test/data/snippets/multilinecomments.pp +5 -1
- data/test/data/snippets/selectorvalues.pp +7 -0
- data/test/data/types/hosts/1 +1 -1
- data/test/data/types/hosts/2 +3 -3
- data/test/data/types/hosts/solaris +2 -2
- data/test/data/types/mount/freebsd.fstab +7 -7
- data/test/data/types/mount/solaris.fstab +10 -10
- data/test/data/types/port/1 +472 -472
- data/test/data/types/port/darwin +4347 -4347
- data/test/language/ast.rb +3 -2
- data/test/language/ast/casestatement.rb +12 -12
- data/test/language/ast/resource.rb +4 -4
- data/test/language/ast/resource_reference.rb +5 -5
- data/test/language/ast/selector.rb +11 -11
- data/test/language/ast/variable.rb +4 -4
- data/test/language/functions.rb +16 -16
- data/test/language/parser.rb +89 -111
- data/test/language/resource.rb +3 -88
- data/test/language/scope.rb +14 -55
- data/test/language/snippets.rb +31 -31
- data/test/lib/puppettest.rb +12 -12
- data/test/lib/puppettest/certificates.rb +2 -2
- data/test/lib/puppettest/exetest.rb +0 -1
- data/test/lib/puppettest/fakes.rb +1 -1
- data/test/lib/puppettest/parsertesting.rb +9 -4
- data/test/lib/puppettest/railstesting.rb +3 -3
- data/test/lib/puppettest/servertest.rb +1 -1
- data/test/lib/puppettest/support/assertions.rb +2 -2
- data/test/lib/puppettest/support/collection.rb +1 -1
- data/test/lib/puppettest/support/resources.rb +7 -7
- data/test/lib/puppettest/support/utils.rb +10 -16
- data/test/lib/puppettest/testcase.rb +2 -1
- data/test/network/authconfig.rb +1 -1
- data/test/network/authorization.rb +1 -1
- data/test/network/authstore.rb +57 -14
- data/test/network/client/ca.rb +1 -0
- data/test/network/client/resource.rb +12 -50
- data/test/network/client_request.rb +1 -1
- data/test/network/handler/bucket.rb +2 -2
- data/test/network/handler/fileserver.rb +17 -21
- data/test/network/handler/master.rb +5 -5
- data/test/network/handler/report.rb +3 -3
- data/test/network/handler/resource.rb +29 -75
- data/test/network/handler/runner.rb +8 -58
- data/test/network/rights.rb +1 -1
- data/test/network/server/mongrel_test.rb +15 -1
- data/test/network/server/webrick.rb +0 -36
- data/test/network/xmlrpc/webrick_servlet.rb +5 -5
- data/test/other/dsl.rb +3 -3
- data/test/other/events.rb +15 -15
- data/test/other/puppet.rb +2 -32
- data/test/other/relationships.rb +21 -148
- data/test/other/report.rb +20 -23
- data/test/other/transactions.rb +110 -298
- data/test/puppet/defaults.rb +1 -1
- data/test/puppet/tc_suidmanager.rb +1 -1
- data/test/rails/railsparameter.rb +4 -4
- data/test/ral/manager/attributes.rb +12 -68
- data/test/ral/manager/instances.rb +3 -19
- data/test/ral/manager/manager.rb +7 -7
- data/test/ral/manager/provider.rb +7 -7
- data/test/ral/manager/type.rb +54 -349
- data/test/ral/providers/cron/crontab.rb +14 -14
- data/test/ral/providers/group.rb +5 -6
- data/test/ral/providers/host/parsed.rb +3 -3
- data/test/ral/providers/mailalias/aliases.rb +4 -4
- data/test/ral/providers/package.rb +3 -3
- data/test/ral/providers/package/aptitude.rb +55 -55
- data/test/ral/providers/package/aptrpm.rb +7 -7
- data/test/ral/providers/parsedfile.rb +10 -14
- data/test/ral/providers/port/parsed.rb +6 -6
- data/test/ral/providers/provider.rb +10 -10
- data/test/ral/providers/service/base.rb +32 -32
- data/test/ral/providers/sshkey/parsed.rb +14 -14
- data/test/ral/providers/user.rb +16 -17
- data/test/ral/providers/user/useradd.rb +19 -22
- data/test/ral/type/cron.rb +21 -28
- data/test/ral/type/exec.rb +57 -60
- data/test/ral/type/file.rb +88 -862
- data/test/ral/type/file/target.rb +21 -70
- data/test/ral/type/fileignoresource.rb +37 -44
- data/test/ral/type/filesources.rb +43 -473
- data/test/ral/type/group.rb +6 -7
- data/test/ral/type/host.rb +14 -30
- data/test/ral/type/mailalias.rb +3 -3
- data/test/ral/type/port.rb +5 -5
- data/test/ral/type/resources.rb +37 -37
- data/test/ral/type/service.rb +3 -3
- data/test/ral/type/sshkey.rb +34 -39
- data/test/ral/type/user.rb +15 -14
- data/test/ral/type/yumrepo.rb +18 -17
- data/test/ral/type/zone.rb +4 -6
- data/test/test +9 -9
- data/test/util/fileparsing.rb +10 -10
- data/test/util/inifile.rb +6 -6
- data/test/util/instance_loader.rb +1 -1
- data/test/util/log.rb +2 -2
- data/test/util/metrics.rb +1 -6
- data/test/util/package.rb +1 -1
- data/test/util/pidlock.rb +116 -116
- data/test/util/settings.rb +40 -429
- data/test/util/storage.rb +5 -5
- data/test/util/subclass_loader.rb +0 -7
- data/test/util/utiltest.rb +10 -29
- metadata +1369 -941
- data/bin/puppetca +0 -363
- data/bin/puppetd +0 -439
- data/bin/puppetmasterd +0 -289
- data/bin/puppetrun +0 -369
- data/conf/redhat/lsb-config.patch +0 -51
- data/conf/redhat/no-chuser-0.15.1.patch +0 -38
- data/conf/redhat/no-lockdir.patch +0 -13
- data/examples/mac_netinfo.pp +0 -5
- data/ext/passenger/README +0 -63
- data/ext/passenger/apache2.conf +0 -29
- data/ext/passenger/config.ru +0 -40
- data/lib/puppet/config_stores/rest.rb +0 -60
- data/lib/puppet/executables/client/certhandler.rb +0 -82
- data/lib/puppet/indirector/file_content/modules.rb +0 -11
- data/lib/puppet/indirector/file_metadata/modules.rb +0 -17
- data/lib/puppet/indirector/module_files.rb +0 -82
- data/lib/puppet/indirector/ssl_rsa.rb +0 -5
- data/lib/puppet/indirector/ssl_rsa/file.rb +0 -33
- data/lib/puppet/network/client/master.rb +0 -524
- data/lib/puppet/network/http_server/rack.rb +0 -148
- data/lib/puppet/pgraph.rb +0 -121
- data/lib/puppet/provider/group/netinfo.rb +0 -15
- data/lib/puppet/provider/host/netinfo.rb +0 -19
- data/lib/puppet/provider/mount/netinfo.rb +0 -37
- data/lib/puppet/provider/nameservice/netinfo.rb +0 -224
- data/lib/puppet/provider/user/netinfo.rb +0 -111
- data/lib/puppet/util/fact_store.rb +0 -59
- data/lib/puppet/util/uri_helper.rb +0 -22
- data/spec/integration/file_serving/configuration.rb +0 -43
- data/spec/integration/indirector/module_files.rb +0 -57
- data/spec/unit/executables/client/certhandler.rb +0 -135
- data/spec/unit/indirector/file_content/modules.rb +0 -18
- data/spec/unit/indirector/file_metadata/modules.rb +0 -42
- data/spec/unit/indirector/module_files.rb +0 -259
- data/spec/unit/indirector/ssl_rsa/file.rb +0 -121
- data/spec/unit/network/client/master.rb +0 -442
- data/spec/unit/node/catalog.rb +0 -865
- data/spec/unit/other/pgraph.rb +0 -210
- data/spec/unit/resource_reference.rb +0 -73
- data/spec/unit/util/uri_helper.rb +0 -41
- data/test/data/snippets/ifexpression.rb +0 -6
- data/test/executables/filebucket.rb +0 -51
- data/test/executables/puppetbin.rb +0 -104
- data/test/executables/puppetca.rb +0 -115
- data/test/executables/puppetd.rb +0 -55
- data/test/executables/puppetmasterd.rb +0 -147
- data/test/network/client/client.rb +0 -195
- data/test/network/client/master.rb +0 -490
- data/test/network/daemon.rb +0 -70
- data/test/network/handler/handler.rb +0 -63
- data/test/other/overrides.rb +0 -107
- data/test/puppet/conffiles.rb +0 -107
- data/test/rails/ast.rb +0 -73
- data/test/rails/configuration.rb +0 -71
- data/test/rails/host.rb +0 -154
- data/test/rails/railsresource.rb +0 -251
- data/test/ral/providers/host/netinfo.rb +0 -56
- data/test/ral/providers/mount/netinfo.rb +0 -79
- data/test/ral/type/basic.rb +0 -85
- data/test/ral/type/filebucket.rb +0 -157
- data/test/ral/type/parameter.rb +0 -174
- data/test/ral/type/property.rb +0 -388
- data/test/ral/type/tidy.rb +0 -291
- data/test/util/autoload.rb +0 -145
- data/test/util/features.rb +0 -95
data/spec/unit/network/server.rb
CHANGED
@@ -6,311 +6,529 @@
|
|
6
6
|
require File.dirname(__FILE__) + '/../../spec_helper'
|
7
7
|
require 'puppet/network/server'
|
8
8
|
|
9
|
-
describe Puppet::Network::Server
|
9
|
+
describe Puppet::Network::Server do
|
10
10
|
before do
|
11
11
|
@mock_http_server_class = mock('http server class')
|
12
|
-
Puppet.stubs(:
|
12
|
+
Puppet.settings.stubs(:use)
|
13
|
+
Puppet.settings.stubs(:value).with(:name).returns("me")
|
14
|
+
Puppet.settings.stubs(:value).with(:servertype).returns(:suparserver)
|
15
|
+
Puppet.settings.stubs(:value).with(:bindaddress).returns("")
|
16
|
+
Puppet.settings.stubs(:value).with(:masterport).returns(8140)
|
13
17
|
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
|
14
|
-
|
15
|
-
|
16
|
-
it "should allow specifying a listening address" do
|
17
|
-
Puppet.stubs(:[]).with(:masterport).returns('')
|
18
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1")
|
19
|
-
@server.address.should == "127.0.0.1"
|
20
|
-
end
|
21
|
-
|
22
|
-
it "should allow specifying a listening port" do
|
23
|
-
Puppet.stubs(:[]).with(:bindaddress).returns('')
|
18
|
+
Puppet.settings.stubs(:value).with(:servertype).returns(:suparserver)
|
24
19
|
@server = Puppet::Network::Server.new(:port => 31337)
|
25
|
-
@server.port.should == 31337
|
26
|
-
end
|
27
|
-
|
28
|
-
it "should use the Puppet configurator to find a default listening address" do
|
29
|
-
Puppet.stubs(:[]).with(:masterport).returns('')
|
30
|
-
Puppet.expects(:[]).with(:bindaddress).returns("10.0.0.1")
|
31
|
-
@server = Puppet::Network::Server.new
|
32
|
-
@server.address.should == "10.0.0.1"
|
33
20
|
end
|
34
21
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
22
|
+
describe "when initializing" do
|
23
|
+
before do
|
24
|
+
Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
|
25
|
+
Puppet::Network::Handler.stubs(:handler).returns mock('xmlrpc_handler')
|
26
|
+
Puppet.settings.stubs(:value).with(:bindaddress).returns("")
|
27
|
+
Puppet.settings.stubs(:value).with(:masterport).returns('')
|
28
|
+
end
|
41
29
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
Proc.new { Puppet::Network::Server.new }.should raise_error(ArgumentError)
|
46
|
-
end
|
47
|
-
|
48
|
-
it "should fail to initialize if no listening port can be found" do
|
49
|
-
Puppet.stubs(:[]).with(:bindaddress).returns("127.0.0.1")
|
50
|
-
Puppet.stubs(:[]).with(:masterport).returns(nil)
|
51
|
-
Proc.new { Puppet::Network::Server.new }.should raise_error(ArgumentError)
|
52
|
-
end
|
30
|
+
it 'should fail if an unknown option is provided' do
|
31
|
+
lambda { Puppet::Network::Server.new(:foo => 31337) }.should raise_error(ArgumentError)
|
32
|
+
end
|
53
33
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
it "should fail to initialize if there is no HTTP server known to the Puppet configurator" do
|
61
|
-
Puppet.expects(:[]).with(:servertype).returns(nil)
|
62
|
-
Proc.new { Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337) }.should raise_error
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should ask the Puppet::Network::HTTP class to fetch the proper HTTP server class" do
|
66
|
-
Puppet::Network::HTTP.expects(:server_class_by_type).with(:suparserver).returns(@mock_http_server_class)
|
67
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should fail if the HTTP server class is unknown" do
|
71
|
-
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(nil)
|
72
|
-
Proc.new { Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337) }.should raise_error(ArgumentError)
|
73
|
-
end
|
74
|
-
|
75
|
-
it "should allow registering indirections" do
|
76
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337, :handlers => [ :foo, :bar, :baz])
|
77
|
-
Proc.new { @server.unregister(:foo, :bar, :baz) }.should_not raise_error
|
78
|
-
end
|
79
|
-
|
80
|
-
it "should not be listening after initialization" do
|
81
|
-
Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337).should_not be_listening
|
82
|
-
end
|
83
|
-
end
|
34
|
+
it "should allow specifying a listening port" do
|
35
|
+
Puppet.settings.stubs(:value).with(:bindaddress).returns('')
|
36
|
+
@server = Puppet::Network::Server.new(:port => 31337)
|
37
|
+
@server.port.should == 31337
|
38
|
+
end
|
84
39
|
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
40
|
+
it "should use the :bindaddress setting to determine the default listening address" do
|
41
|
+
Puppet.settings.stubs(:value).with(:masterport).returns('')
|
42
|
+
Puppet.settings.expects(:value).with(:bindaddress).returns("10.0.0.1")
|
43
|
+
@server = Puppet::Network::Server.new
|
44
|
+
@server.address.should == "10.0.0.1"
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should set the bind address to '127.0.0.1' if the default address is an empty string and the server type is mongrel" do
|
48
|
+
Puppet.settings.stubs(:value).with(:servertype).returns("mongrel")
|
49
|
+
Puppet.settings.expects(:value).with(:bindaddress).returns("")
|
50
|
+
@server = Puppet::Network::Server.new
|
51
|
+
@server.address.should == '127.0.0.1'
|
52
|
+
end
|
53
|
+
|
54
|
+
it "should set the bind address to '0.0.0.0' if the default address is an empty string and the server type is webrick" do
|
55
|
+
Puppet.settings.stubs(:value).with(:servertype).returns("webrick")
|
56
|
+
Puppet.settings.expects(:value).with(:bindaddress).returns("")
|
57
|
+
@server = Puppet::Network::Server.new
|
58
|
+
@server.address.should == '0.0.0.0'
|
59
|
+
end
|
60
|
+
|
61
|
+
it "should use the Puppet configurator to find a default listening port" do
|
62
|
+
Puppet.settings.stubs(:value).with(:bindaddress).returns('')
|
63
|
+
Puppet.settings.expects(:value).with(:masterport).returns(6667)
|
64
|
+
@server = Puppet::Network::Server.new
|
65
|
+
@server.port.should == 6667
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should fail to initialize if no listening port can be found" do
|
69
|
+
Puppet.settings.stubs(:value).with(:bindaddress).returns("127.0.0.1")
|
70
|
+
Puppet.settings.stubs(:value).with(:masterport).returns(nil)
|
71
|
+
lambda { Puppet::Network::Server.new }.should raise_error(ArgumentError)
|
72
|
+
end
|
73
|
+
|
74
|
+
it "should use the Puppet configurator to determine which HTTP server will be used to provide access to clients" do
|
75
|
+
Puppet.settings.expects(:value).with(:servertype).returns(:suparserver)
|
76
|
+
@server = Puppet::Network::Server.new(:port => 31337)
|
77
|
+
@server.server_type.should == :suparserver
|
78
|
+
end
|
79
|
+
|
80
|
+
it "should fail to initialize if there is no HTTP server known to the Puppet configurator" do
|
81
|
+
Puppet.settings.expects(:value).with(:servertype).returns(nil)
|
82
|
+
lambda { Puppet::Network::Server.new(:port => 31337) }.should raise_error
|
83
|
+
end
|
84
|
+
|
85
|
+
it "should ask the Puppet::Network::HTTP class to fetch the proper HTTP server class" do
|
86
|
+
Puppet::Network::HTTP.expects(:server_class_by_type).with(:suparserver).returns(@mock_http_server_class)
|
87
|
+
@server = Puppet::Network::Server.new(:port => 31337)
|
88
|
+
end
|
89
|
+
|
90
|
+
it "should fail if the HTTP server class is unknown" do
|
91
|
+
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(nil)
|
92
|
+
lambda { Puppet::Network::Server.new(:port => 31337) }.should raise_error(ArgumentError)
|
93
|
+
end
|
104
94
|
|
105
|
-
|
106
|
-
|
107
|
-
|
95
|
+
it "should allow registering REST handlers" do
|
96
|
+
@server = Puppet::Network::Server.new(:port => 31337, :handlers => [ :foo, :bar, :baz])
|
97
|
+
lambda { @server.unregister(:foo, :bar, :baz) }.should_not raise_error
|
98
|
+
end
|
99
|
+
|
100
|
+
it "should allow registering XMLRPC handlers" do
|
101
|
+
@server = Puppet::Network::Server.new(:port => 31337, :xmlrpc_handlers => [ :foo, :bar, :baz])
|
102
|
+
lambda { @server.unregister_xmlrpc(:foo, :bar, :baz) }.should_not raise_error
|
103
|
+
end
|
104
|
+
|
105
|
+
it "should not be listening after initialization" do
|
106
|
+
Puppet::Network::Server.new(:port => 31337).should_not be_listening
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should use the :main setting section" do
|
110
|
+
Puppet.settings.expects(:use).with { |*args| args.include?(:main) }
|
111
|
+
@server = Puppet::Network::Server.new(:port => 31337, :xmlrpc_handlers => [ :foo, :bar, :baz])
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should use the Puppet[:name] setting section" do
|
115
|
+
Puppet.settings.expects(:value).with(:name).returns "me"
|
116
|
+
Puppet.settings.expects(:use).with { |*args| args.include?("me") }
|
117
|
+
|
118
|
+
@server = Puppet::Network::Server.new(:port => 31337, :xmlrpc_handlers => [ :foo, :bar, :baz])
|
119
|
+
end
|
108
120
|
end
|
109
121
|
|
110
|
-
|
111
|
-
|
112
|
-
@server.
|
113
|
-
Proc.new { @server.unregister(:bar)}.should_not raise_error
|
122
|
+
# We don't test the method, because it's too much of a Unix-y pain.
|
123
|
+
it "should be able to daemonize" do
|
124
|
+
@server.should respond_to(:daemonize)
|
114
125
|
end
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
126
|
+
|
127
|
+
describe "when being started" do
|
128
|
+
before do
|
129
|
+
@server.stubs(:listen)
|
130
|
+
@server.stubs(:create_pidfile)
|
131
|
+
end
|
132
|
+
|
133
|
+
it "should listen" do
|
134
|
+
@server.expects(:listen)
|
135
|
+
@server.start
|
136
|
+
end
|
137
|
+
|
138
|
+
it "should create its PID file" do
|
139
|
+
@server.expects(:create_pidfile)
|
140
|
+
@server.start
|
141
|
+
end
|
119
142
|
end
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
143
|
+
|
144
|
+
describe "when being stopped" do
|
145
|
+
before do
|
146
|
+
@server.stubs(:unlisten)
|
147
|
+
@server.stubs(:remove_pidfile)
|
148
|
+
end
|
149
|
+
|
150
|
+
it "should unlisten" do
|
151
|
+
@server.expects(:unlisten)
|
152
|
+
@server.stop
|
153
|
+
end
|
154
|
+
|
155
|
+
it "should remove its PID file" do
|
156
|
+
@server.expects(:remove_pidfile)
|
157
|
+
@server.stop
|
158
|
+
end
|
125
159
|
end
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
160
|
+
|
161
|
+
describe "when creating its pidfile" do
|
162
|
+
it "should use an exclusive mutex" do
|
163
|
+
Puppet.settings.expects(:value).with(:name).returns "me"
|
164
|
+
|
165
|
+
sync = mock 'sync'
|
166
|
+
Puppet::Util.expects(:sync).with("me").returns sync
|
167
|
+
|
168
|
+
sync.expects(:synchronize).with(Sync::EX)
|
169
|
+
@server.create_pidfile
|
170
|
+
end
|
171
|
+
|
172
|
+
it "should lock the pidfile using the Pidlock class" do
|
173
|
+
pidfile = mock 'pidfile'
|
174
|
+
|
175
|
+
Puppet.settings.stubs(:value).with(:name).returns "eh"
|
176
|
+
Puppet.settings.expects(:value).with(:pidfile).returns "/my/file"
|
177
|
+
|
178
|
+
Puppet::Util::Pidlock.expects(:new).with("/my/file").returns pidfile
|
179
|
+
|
180
|
+
pidfile.expects(:lock).returns true
|
181
|
+
@server.create_pidfile
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should fail if it cannot lock" do
|
185
|
+
pidfile = mock 'pidfile'
|
186
|
+
|
187
|
+
Puppet.settings.stubs(:value).with(:name).returns "eh"
|
188
|
+
Puppet.settings.stubs(:value).with(:pidfile).returns "/my/file"
|
189
|
+
|
190
|
+
Puppet::Util::Pidlock.expects(:new).with("/my/file").returns pidfile
|
191
|
+
|
192
|
+
pidfile.expects(:lock).returns false
|
193
|
+
|
194
|
+
lambda { @server.create_pidfile }.should raise_error
|
195
|
+
end
|
130
196
|
end
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
197
|
+
|
198
|
+
describe "when removing its pidfile" do
|
199
|
+
it "should use an exclusive mutex" do
|
200
|
+
Puppet.settings.expects(:value).with(:name).returns "me"
|
201
|
+
|
202
|
+
sync = mock 'sync'
|
203
|
+
Puppet::Util.expects(:sync).with("me").returns sync
|
204
|
+
|
205
|
+
sync.expects(:synchronize).with(Sync::EX)
|
206
|
+
@server.remove_pidfile
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should do nothing if the pidfile is not present" do
|
210
|
+
pidfile = mock 'pidfile', :locked? => false
|
211
|
+
Puppet::Util::Pidlock.expects(:new).with("/my/file").returns pidfile
|
212
|
+
|
213
|
+
Puppet.settings.stubs(:value).with(:name).returns "eh"
|
214
|
+
Puppet.settings.stubs(:value).with(:pidfile).returns "/my/file"
|
215
|
+
|
216
|
+
pidfile.expects(:unlock).never
|
217
|
+
@server.remove_pidfile
|
218
|
+
end
|
219
|
+
|
220
|
+
it "should unlock the pidfile using the Pidlock class" do
|
221
|
+
pidfile = mock 'pidfile', :locked? => true
|
222
|
+
Puppet::Util::Pidlock.expects(:new).with("/my/file").returns pidfile
|
223
|
+
pidfile.expects(:unlock).returns true
|
224
|
+
|
225
|
+
Puppet.settings.stubs(:value).with(:name).returns "eh"
|
226
|
+
Puppet.settings.stubs(:value).with(:pidfile).returns "/my/file"
|
227
|
+
|
228
|
+
@server.remove_pidfile
|
229
|
+
end
|
230
|
+
|
231
|
+
it "should warn if it cannot remove the pidfile" do
|
232
|
+
pidfile = mock 'pidfile', :locked? => true
|
233
|
+
Puppet::Util::Pidlock.expects(:new).with("/my/file").returns pidfile
|
234
|
+
pidfile.expects(:unlock).returns false
|
235
|
+
|
236
|
+
Puppet.settings.stubs(:value).with(:name).returns "eh"
|
237
|
+
Puppet.settings.stubs(:value).with(:pidfile).returns "/my/file"
|
238
|
+
|
239
|
+
Puppet.expects :err
|
240
|
+
@server.remove_pidfile
|
241
|
+
end
|
136
242
|
end
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
243
|
+
|
244
|
+
describe "when managing indirection registrations" do
|
245
|
+
before do
|
246
|
+
Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
|
247
|
+
end
|
248
|
+
|
249
|
+
it "should allow registering an indirection for client access by specifying its indirection name" do
|
250
|
+
lambda { @server.register(:foo) }.should_not raise_error
|
251
|
+
end
|
252
|
+
|
253
|
+
it "should require that the indirection be valid" do
|
254
|
+
Puppet::Indirector::Indirection.expects(:model).with(:foo).returns nil
|
255
|
+
lambda { @server.register(:foo) }.should raise_error(ArgumentError)
|
256
|
+
end
|
257
|
+
|
258
|
+
it "should require at least one indirection name when registering indirections for client access" do
|
259
|
+
lambda { @server.register }.should raise_error(ArgumentError)
|
260
|
+
end
|
261
|
+
|
262
|
+
it "should allow for numerous indirections to be registered at once for client access" do
|
263
|
+
lambda { @server.register(:foo, :bar, :baz) }.should_not raise_error
|
264
|
+
end
|
265
|
+
|
266
|
+
it "should allow the use of indirection names to specify which indirections are to be no longer accessible to clients" do
|
267
|
+
@server.register(:foo)
|
268
|
+
lambda { @server.unregister(:foo) }.should_not raise_error
|
269
|
+
end
|
270
|
+
|
271
|
+
it "should leave other indirections accessible to clients when turning off indirections" do
|
272
|
+
@server.register(:foo, :bar)
|
273
|
+
@server.unregister(:foo)
|
274
|
+
lambda { @server.unregister(:bar)}.should_not raise_error
|
275
|
+
end
|
276
|
+
|
277
|
+
it "should allow specifying numerous indirections which are to be no longer accessible to clients" do
|
278
|
+
@server.register(:foo, :bar)
|
279
|
+
lambda { @server.unregister(:foo, :bar) }.should_not raise_error
|
280
|
+
end
|
281
|
+
|
282
|
+
it "should not turn off any indirections if given unknown indirection names to turn off" do
|
283
|
+
@server.register(:foo, :bar)
|
284
|
+
lambda { @server.unregister(:foo, :bar, :baz) }.should raise_error(ArgumentError)
|
285
|
+
lambda { @server.unregister(:foo, :bar) }.should_not raise_error
|
286
|
+
end
|
287
|
+
|
288
|
+
it "should not allow turning off unknown indirection names" do
|
289
|
+
@server.register(:foo, :bar)
|
290
|
+
lambda { @server.unregister(:baz) }.should raise_error(ArgumentError)
|
291
|
+
end
|
292
|
+
|
293
|
+
it "should disable client access immediately when turning off indirections" do
|
294
|
+
@server.register(:foo, :bar)
|
295
|
+
@server.unregister(:foo)
|
296
|
+
lambda { @server.unregister(:foo) }.should raise_error(ArgumentError)
|
297
|
+
end
|
298
|
+
|
299
|
+
it "should allow turning off all indirections at once" do
|
300
|
+
@server.register(:foo, :bar)
|
301
|
+
@server.unregister
|
302
|
+
[ :foo, :bar, :baz].each do |indirection|
|
303
|
+
lambda { @server.unregister(indirection) }.should raise_error(ArgumentError)
|
304
|
+
end
|
143
305
|
end
|
144
306
|
end
|
145
|
-
|
307
|
+
|
146
308
|
it "should provide a means of determining whether it is listening" do
|
147
309
|
@server.should respond_to(:listening?)
|
148
310
|
end
|
149
|
-
|
311
|
+
|
150
312
|
it "should provide a means of determining which HTTP server will be used to provide access to clients" do
|
151
313
|
@server.server_type.should == :suparserver
|
152
314
|
end
|
153
|
-
|
154
|
-
it "should allow for multiple configurations, each handling different indirections" do
|
155
|
-
@server2 = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
|
156
|
-
@server.register(:foo, :bar)
|
157
|
-
@server2.register(:foo, :xyzzy)
|
158
|
-
@server.unregister(:foo, :bar)
|
159
|
-
@server2.unregister(:foo, :xyzzy)
|
160
|
-
Proc.new { @server.unregister(:xyzzy) }.should raise_error(ArgumentError)
|
161
|
-
Proc.new { @server2.unregister(:bar) }.should raise_error(ArgumentError)
|
162
|
-
end
|
163
315
|
|
164
316
|
it "should provide a means of determining which protocols are in use" do
|
165
317
|
@server.should respond_to(:protocols)
|
166
318
|
end
|
167
|
-
|
168
|
-
it "should
|
169
|
-
@server.protocols.should == [ :rest ]
|
319
|
+
|
320
|
+
it "should set the protocols to :rest and :xmlrpc" do
|
321
|
+
@server.protocols.should == [ :rest, :xmlrpc ]
|
170
322
|
end
|
171
|
-
|
323
|
+
|
172
324
|
it "should provide a means of determining the listening address" do
|
173
325
|
@server.address.should == "127.0.0.1"
|
174
326
|
end
|
175
|
-
|
327
|
+
|
176
328
|
it "should provide a means of determining the listening port" do
|
177
329
|
@server.port.should == 31337
|
178
330
|
end
|
179
|
-
end
|
180
331
|
|
181
|
-
|
182
|
-
|
183
|
-
@mock_http_server_class = mock('http server class')
|
184
|
-
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
|
185
|
-
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
|
186
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
|
187
|
-
@mock_http_server = mock('http server')
|
188
|
-
@mock_http_server.stubs(:listen)
|
189
|
-
@server.stubs(:http_server).returns(@mock_http_server)
|
190
|
-
end
|
332
|
+
it "should allow for multiple configurations, each handling different indirections" do
|
333
|
+
Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
|
191
334
|
|
192
|
-
|
193
|
-
@server.
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
it "should allow listening to be turned on" do
|
201
|
-
Proc.new { @server.listen }.should_not raise_error
|
335
|
+
@server2 = Puppet::Network::Server.new(:port => 31337)
|
336
|
+
@server.register(:foo, :bar)
|
337
|
+
@server2.register(:foo, :xyzzy)
|
338
|
+
@server.unregister(:foo, :bar)
|
339
|
+
@server2.unregister(:foo, :xyzzy)
|
340
|
+
lambda { @server.unregister(:xyzzy) }.should raise_error(ArgumentError)
|
341
|
+
lambda { @server2.unregister(:bar) }.should raise_error(ArgumentError)
|
202
342
|
end
|
203
|
-
|
204
|
-
end
|
205
343
|
|
206
|
-
describe
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
|
211
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337)
|
212
|
-
@mock_http_server = mock('http server')
|
213
|
-
@mock_http_server.stubs(:listen)
|
214
|
-
@mock_http_server.stubs(:unlisten)
|
215
|
-
@server.stubs(:http_server).returns(@mock_http_server)
|
216
|
-
@server.listen
|
217
|
-
end
|
218
|
-
|
219
|
-
it "should indicate that listening is turned off" do
|
220
|
-
@server.should be_listening
|
221
|
-
end
|
222
|
-
|
223
|
-
it "should not allow listening to be turned on" do
|
224
|
-
Proc.new { @server.listen }.should raise_error(RuntimeError)
|
225
|
-
end
|
226
|
-
|
227
|
-
it "should allow listening to be turned off" do
|
228
|
-
Proc.new { @server.unlisten }.should_not raise_error
|
229
|
-
end
|
230
|
-
end
|
231
|
-
|
232
|
-
describe Puppet::Network::Server, "when listening is being turned on" do
|
233
|
-
before do
|
234
|
-
@mock_http_server_class = mock('http server class')
|
235
|
-
Puppet::Network::HTTP.stubs(:server_class_by_type).returns(@mock_http_server_class)
|
236
|
-
Puppet.stubs(:[]).with(:servertype).returns(:suparserver)
|
237
|
-
@server = Puppet::Network::Server.new(:address => "127.0.0.1", :port => 31337, :handlers => [:node])
|
238
|
-
@mock_http_server = mock('http server')
|
239
|
-
@mock_http_server.stubs(:listen)
|
240
|
-
end
|
344
|
+
describe "when managing xmlrpc registrations" do
|
345
|
+
before do
|
346
|
+
Puppet::Network::Handler.stubs(:handler).returns mock('xmlrpc_handler')
|
347
|
+
end
|
241
348
|
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
@server.listen
|
246
|
-
end
|
349
|
+
it "should allow registering an xmlrpc handler by specifying its namespace" do
|
350
|
+
lambda { @server.register_xmlrpc(:foo) }.should_not raise_error
|
351
|
+
end
|
247
352
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
353
|
+
it "should require that the xmlrpc namespace be valid" do
|
354
|
+
Puppet::Network::Handler.stubs(:handler).returns nil
|
355
|
+
|
356
|
+
lambda { @server.register_xmlrpc(:foo) }.should raise_error(ArgumentError)
|
357
|
+
end
|
358
|
+
|
359
|
+
it "should require at least one namespace" do
|
360
|
+
lambda { @server.register_xmlrpc() }.should raise_error(ArgumentError)
|
361
|
+
end
|
362
|
+
|
363
|
+
it "should allow multiple namespaces to be registered at once" do
|
364
|
+
lambda { @server.register_xmlrpc(:foo, :bar) }.should_not raise_error
|
365
|
+
end
|
366
|
+
|
367
|
+
it "should allow the use of namespaces to specify which are no longer accessible to clients" do
|
368
|
+
@server.register_xmlrpc(:foo, :bar)
|
369
|
+
end
|
370
|
+
|
371
|
+
it "should leave other namespaces accessible to clients when turning off xmlrpc namespaces" do
|
372
|
+
@server.register_xmlrpc(:foo, :bar)
|
373
|
+
@server.unregister_xmlrpc(:foo)
|
374
|
+
lambda { @server.unregister_xmlrpc(:bar)}.should_not raise_error
|
375
|
+
end
|
376
|
+
|
377
|
+
it "should allow specifying numerous namespaces which are to be no longer accessible to clients" do
|
378
|
+
@server.register_xmlrpc(:foo, :bar)
|
379
|
+
lambda { @server.unregister_xmlrpc(:foo, :bar) }.should_not raise_error
|
380
|
+
end
|
381
|
+
|
382
|
+
it "should not turn off any indirections if given unknown namespaces to turn off" do
|
383
|
+
@server.register_xmlrpc(:foo, :bar)
|
384
|
+
lambda { @server.unregister_xmlrpc(:foo, :bar, :baz) }.should raise_error(ArgumentError)
|
385
|
+
lambda { @server.unregister_xmlrpc(:foo, :bar) }.should_not raise_error
|
386
|
+
end
|
387
|
+
|
388
|
+
it "should not allow turning off unknown namespaces" do
|
389
|
+
@server.register_xmlrpc(:foo, :bar)
|
390
|
+
lambda { @server.unregister_xmlrpc(:baz) }.should raise_error(ArgumentError)
|
391
|
+
end
|
392
|
+
|
393
|
+
it "should disable client access immediately when turning off namespaces" do
|
394
|
+
@server.register_xmlrpc(:foo, :bar)
|
395
|
+
@server.unregister_xmlrpc(:foo)
|
396
|
+
lambda { @server.unregister_xmlrpc(:foo) }.should raise_error(ArgumentError)
|
397
|
+
end
|
398
|
+
|
399
|
+
it "should allow turning off all namespaces at once" do
|
400
|
+
@server.register_xmlrpc(:foo, :bar)
|
401
|
+
@server.unregister_xmlrpc
|
402
|
+
[ :foo, :bar, :baz].each do |indirection|
|
403
|
+
lambda { @server.unregister_xmlrpc(indirection) }.should raise_error(ArgumentError)
|
404
|
+
end
|
405
|
+
end
|
284
406
|
end
|
285
|
-
end
|
286
407
|
|
287
|
-
describe
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
408
|
+
describe "when listening is off" do
|
409
|
+
before do
|
410
|
+
@mock_http_server = mock('http server')
|
411
|
+
@mock_http_server.stubs(:listen)
|
412
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
413
|
+
end
|
414
|
+
|
415
|
+
it "should indicate that it is not listening" do
|
416
|
+
@server.should_not be_listening
|
417
|
+
end
|
418
|
+
|
419
|
+
it "should not allow listening to be turned off" do
|
420
|
+
lambda { @server.unlisten }.should raise_error(RuntimeError)
|
421
|
+
end
|
422
|
+
|
423
|
+
it "should allow listening to be turned on" do
|
424
|
+
lambda { @server.listen }.should_not raise_error
|
425
|
+
end
|
426
|
+
|
297
427
|
end
|
298
428
|
|
299
|
-
|
300
|
-
|
301
|
-
|
429
|
+
describe "when listening is on" do
|
430
|
+
before do
|
431
|
+
@mock_http_server = mock('http server')
|
432
|
+
@mock_http_server.stubs(:listen)
|
433
|
+
@mock_http_server.stubs(:unlisten)
|
434
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
435
|
+
@server.listen
|
436
|
+
end
|
437
|
+
|
438
|
+
it "should indicate that it is listening" do
|
439
|
+
@server.should be_listening
|
440
|
+
end
|
441
|
+
|
442
|
+
it "should not allow listening to be turned on" do
|
443
|
+
lambda { @server.listen }.should raise_error(RuntimeError)
|
444
|
+
end
|
445
|
+
|
446
|
+
it "should allow listening to be turned off" do
|
447
|
+
lambda { @server.unlisten }.should_not raise_error
|
448
|
+
end
|
302
449
|
end
|
303
450
|
|
304
|
-
|
305
|
-
|
306
|
-
|
451
|
+
describe "when listening is being turned on" do
|
452
|
+
before do
|
453
|
+
Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
|
454
|
+
Puppet::Network::Handler.stubs(:handler).returns mock('xmlrpc_handler')
|
455
|
+
|
456
|
+
@server = Puppet::Network::Server.new(:port => 31337, :handlers => [:node], :xmlrpc_handlers => [:master])
|
457
|
+
@mock_http_server = mock('http server')
|
458
|
+
@mock_http_server.stubs(:listen)
|
459
|
+
end
|
460
|
+
|
461
|
+
it "should fetch an instance of an HTTP server" do
|
462
|
+
@server.stubs(:http_server_class).returns(@mock_http_server_class)
|
463
|
+
@mock_http_server_class.expects(:new).returns(@mock_http_server)
|
464
|
+
@server.listen
|
465
|
+
end
|
466
|
+
|
467
|
+
it "should cause the HTTP server to listen" do
|
468
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
469
|
+
@mock_http_server.expects(:listen)
|
470
|
+
@server.listen
|
471
|
+
end
|
472
|
+
|
473
|
+
it "should pass the listening address to the HTTP server" do
|
474
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
475
|
+
@mock_http_server.expects(:listen).with do |args|
|
476
|
+
args[:address] == '127.0.0.1'
|
477
|
+
end
|
478
|
+
@server.listen
|
479
|
+
end
|
480
|
+
|
481
|
+
it "should pass the listening port to the HTTP server" do
|
482
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
483
|
+
@mock_http_server.expects(:listen).with do |args|
|
484
|
+
args[:port] == 31337
|
485
|
+
end
|
486
|
+
@server.listen
|
487
|
+
end
|
488
|
+
|
489
|
+
it "should pass a list of REST handlers to the HTTP server" do
|
490
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
491
|
+
@mock_http_server.expects(:listen).with do |args|
|
492
|
+
args[:handlers] == [ :node ]
|
493
|
+
end
|
494
|
+
@server.listen
|
495
|
+
end
|
496
|
+
|
497
|
+
it "should pass a list of XMLRPC handlers to the HTTP server" do
|
498
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
499
|
+
@mock_http_server.expects(:listen).with do |args|
|
500
|
+
args[:xmlrpc_handlers] == [ :master ]
|
501
|
+
end
|
502
|
+
@server.listen
|
503
|
+
end
|
504
|
+
|
505
|
+
it "should pass a list of protocols to the HTTP server" do
|
506
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
507
|
+
@mock_http_server.expects(:listen).with do |args|
|
508
|
+
args[:protocols] == [ :rest, :xmlrpc ]
|
509
|
+
end
|
510
|
+
@server.listen
|
511
|
+
end
|
307
512
|
end
|
308
|
-
end
|
309
513
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
514
|
+
describe "when listening is being turned off" do
|
515
|
+
before do
|
516
|
+
@mock_http_server = mock('http server')
|
517
|
+
@mock_http_server.stubs(:listen)
|
518
|
+
@server.stubs(:http_server).returns(@mock_http_server)
|
519
|
+
@server.listen
|
520
|
+
end
|
521
|
+
|
522
|
+
it "should cause the HTTP server to stop listening" do
|
523
|
+
@mock_http_server.expects(:unlisten)
|
524
|
+
@server.unlisten
|
525
|
+
end
|
526
|
+
|
527
|
+
it "should not allow for indirections to be turned off" do
|
528
|
+
Puppet::Indirector::Indirection.stubs(:model).returns mock('indirection')
|
529
|
+
|
530
|
+
@server.register(:foo)
|
531
|
+
lambda { @server.unregister(:foo) }.should raise_error(RuntimeError)
|
532
|
+
end
|
533
|
+
end
|
316
534
|
end
|